forked from kubeedge/kubeedge
-
Notifications
You must be signed in to change notification settings - Fork 0
/
context.go
41 lines (35 loc) · 1.19 KB
/
context.go
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 messagelayer
import (
"github.com/kubeedge/beehive/pkg/core/context"
"github.com/kubeedge/beehive/pkg/core/model"
"github.com/kubeedge/kubeedge/cloud/pkg/controller/config"
)
// ContextMessageLayer build on context
type ContextMessageLayer struct {
SendModuleName string
ReceiveModuleName string
ResponseModuleName string
Context *context.Context
}
// Send message
func (cml *ContextMessageLayer) Send(message model.Message) error {
cml.Context.Send(cml.SendModuleName, message)
return nil
}
// Receive message
func (cml *ContextMessageLayer) Receive() (model.Message, error) {
return cml.Context.Receive(cml.ReceiveModuleName)
}
// Response message
func (cml *ContextMessageLayer) Response(message model.Message) error {
if !config.EdgeSiteEnabled {
cml.Context.Send(cml.ResponseModuleName, message)
} else {
cml.Context.SendResp(message)
}
return nil
}
// NewContextMessageLayer create a ContextMessageLayer
func NewContextMessageLayer() (*ContextMessageLayer, error) {
return &ContextMessageLayer{SendModuleName: config.ContextSendModule, ReceiveModuleName: config.ContextReceiveModule, ResponseModuleName: config.ContextResponseModule, Context: config.Context}, nil
}