/
helper.go
90 lines (79 loc) · 2.46 KB
/
helper.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package metathings_deviced_connection
import (
"fmt"
"github.com/golang/protobuf/proto"
"github.com/golang/protobuf/ptypes/wrappers"
log "github.com/sirupsen/logrus"
id_helper "github.com/nayotta/metathings/pkg/common/id"
session_helper "github.com/nayotta/metathings/pkg/common/session"
pb "github.com/nayotta/metathings/proto/deviced"
)
func parse_bridge_id(device string, session int64) string {
return id_helper.NewNamedId(fmt.Sprintf("device.%v.session.%08x", device, session))
}
func new_config_ack_request_message(sess int64) *pb.ConnectRequest {
return &pb.ConnectRequest{
SessionId: &wrappers.Int64Value{Value: sess},
Kind: pb.ConnectMessageKind_CONNECT_MESSAGE_KIND_USER,
Union: &pb.ConnectRequest_StreamCall{
StreamCall: &pb.OpStreamCallValue{
Union: &pb.OpStreamCallValue_ConfigAck{
ConfigAck: &pb.OpStreamCallConfigAck{},
},
},
},
}
}
func new_exit_request_message(sess int64) *pb.ConnectRequest {
return &pb.ConnectRequest{
SessionId: &wrappers.Int64Value{Value: sess},
Kind: pb.ConnectMessageKind_CONNECT_MESSAGE_KIND_USER,
Union: &pb.ConnectRequest_StreamCall{
StreamCall: &pb.OpStreamCallValue{
Union: &pb.OpStreamCallValue_Exit{
Exit: &pb.OpStreamCallExit{},
},
},
},
}
}
func new_exit_response_message(sess int64) *pb.ConnectResponse {
return &pb.ConnectResponse{
SessionId: sess,
Kind: pb.ConnectMessageKind_CONNECT_MESSAGE_KIND_USER,
Union: &pb.ConnectResponse_StreamCall{
StreamCall: &pb.StreamCallValue{
Union: &pb.StreamCallValue_Exit{
Exit: &pb.StreamCallExit{},
},
},
},
}
}
func new_config_ack_response_message_for_north(id string) *pb.StreamCallResponse {
return &pb.StreamCallResponse{
Device: &pb.Device{Id: id},
Value: &pb.StreamCallValue{
Union: &pb.StreamCallValue_ConfigAck{ConfigAck: &pb.StreamCallConfigAck{}},
},
}
}
func must_marshal_message(msg proto.Message) []byte {
buf, err := proto.Marshal(msg)
if err != nil {
panic(err)
}
return buf
}
func (self *connectionCenter) printSessionInfo(sess int64) {
startup := session_helper.GetStartupSession(sess)
conn := session_helper.GetConnectionSession(sess)
self.logger.WithFields(log.Fields{
"session": sess,
"startup-session": startup,
"connection-session": conn,
"is-temp": session_helper.IsTempSession(sess),
"is-major": session_helper.IsMajorSession(sess),
"is-minor": session_helper.IsMinorSession(sess),
}).Debugf("session info")
}