forked from go-catupiry/msgbroker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathClientInterface.go
More file actions
41 lines (35 loc) · 1.06 KB
/
ClientInterface.go
File metadata and controls
41 lines (35 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package msgbroker
import (
"time"
"github.com/go-bolo/bolo"
)
type Client interface {
Init(app bolo.App) error
// Register a handler function to receive the new messages
// Now we support only one method for each queues
Subscribe(queueName string, handler MessageHandler) (string, error)
// Unsubscribe handler function with subscriberID
UnSubscribe(subscriberID string)
// Publish one message to queue
Publish(queueName string, data []byte) error
// Publish a list of messages to queue
MultiPublish(queueName string, dataList [][]byte) error
// Publish a message to queue with a delay
DeferredPublish(queueName string, delay time.Duration, data []byte) error
// Get queue by queueName
GetQueue(name string) Queue
// Set one queue in queue list
SetQueue(name string, queue Queue) error
}
type Queue interface {
GetName() string
SetName(name string) error
GetHandler() MessageHandler
SetHandler(handler MessageHandler) error
}
type MessageHandler interface {
HandleMessage(queueName string, message Message) error
}
type Message interface {
GetData() *[]byte
}