/
ctrl.go
63 lines (47 loc) · 1.55 KB
/
ctrl.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package jarviscore
import (
"context"
"github.com/zhs007/jarviscore/base"
pb "github.com/zhs007/jarviscore/proto"
"go.uber.org/zap"
)
// Ctrl -
type Ctrl interface {
Run(ctx context.Context, jarvisnode JarvisNode, srcAddr string, msgid int64, ci *pb.CtrlInfo) []*pb.JarvisMsg
}
// BuildReply2ForCtrl - build Reply2 for Ctrl
func BuildReply2ForCtrl(jarvisnode JarvisNode, srcAddr string, msgid int64,
replytype pb.REPLYTYPE, info string, msgs []*pb.JarvisMsg) []*pb.JarvisMsg {
msg, err1 := BuildReply2(jarvisnode,
jarvisnode.GetMyInfo().Addr,
srcAddr,
replytype,
info,
msgid)
if err1 != nil {
jarvisbase.Warn("BuildReply2ForCtrl", zap.Error(err1))
return msgs
}
return append(msgs, msg)
}
// BuildCtrlResultForCtrl - build CtrlResult for Ctrl
func BuildCtrlResultForCtrl(jarvisnode JarvisNode, srcAddr string, msgid int64,
str string, errInfo string, msgs []*pb.JarvisMsg) []*pb.JarvisMsg {
msg, err := BuildCtrlResult(jarvisnode, jarvisnode.GetMyInfo().Addr, srcAddr, msgid, str, errInfo)
if err != nil {
jarvisbase.Warn("BuildCtrlResultForCtrl", zap.Error(err))
return msgs
}
return append(msgs, msg)
}
// BuildReplyRequestFileForCtrl - build ReplyRequestFile for Ctrl
func BuildReplyRequestFileForCtrl(jarvisnode JarvisNode, srcAddr string, msgid int64,
fd *pb.FileData, msgs []*pb.JarvisMsg) []*pb.JarvisMsg {
msg, err := BuildReplyRequestFile(jarvisnode, jarvisnode.GetMyInfo().Addr, srcAddr,
fd, msgid)
if err != nil {
jarvisbase.Warn("BuildReplyRequestFileForCtrl", zap.Error(err))
return msgs
}
return append(msgs, msg)
}