|
|
@@ -11,14 +11,12 @@ type MsgQueue struct {
|
|
11
|
11
|
}
|
|
12
|
12
|
|
|
13
|
13
|
type QueueOperate interface {
|
|
14
|
|
- //queue 초기화
|
|
15
|
|
- queue_init() error
|
|
16
|
|
- //queue push
|
|
17
|
|
- push(msg Message) bool
|
|
18
|
|
- //pop message (wait -> busy waiting 여부 결정)
|
|
19
|
|
- pop(wait bool) (Message, error)
|
|
|
14
|
+ queue_init() error //Queue 초기화 멤버함수
|
|
|
15
|
+ push(msg Message) bool //Queue push 멤버함수
|
|
|
16
|
+ pop(wait bool) (Message, error) //Queue pop 멤버함수 (wait -> busy waiting 여부 결정)
|
|
20
|
17
|
}
|
|
21
|
18
|
|
|
|
19
|
+//Message Queue를 초기화 해주는 함수
|
|
22
|
20
|
func (mq *MsgQueue) queue_init() error {
|
|
23
|
21
|
if mq.queue != nil && len(mq.queue) != 0 {
|
|
24
|
22
|
return errors.New("Queue Hadlerer Error: Already initialized.")
|
|
|
@@ -34,11 +32,13 @@ func (mq *MsgQueue) queue_init() error {
|
|
34
|
32
|
}
|
|
35
|
33
|
}
|
|
36
|
34
|
|
|
|
35
|
+//push 함수
|
|
37
|
36
|
func (mq *MsgQueue) push(msg MsgUnit) bool {
|
|
38
|
37
|
mq.queue <- msg
|
|
39
|
38
|
return true
|
|
40
|
39
|
}
|
|
41
|
40
|
|
|
|
41
|
+//pop 함수
|
|
42
|
42
|
func (mq *MsgQueue) pop(block bool) MsgUnit {
|
|
43
|
43
|
if block == false {
|
|
44
|
44
|
if len(mq.queue) == 0 {
|