/
message.go
55 lines (48 loc) · 1.34 KB
/
message.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
package boomer
const (
typeClientReady = "client_ready"
typeClientStopped = "client_stopped"
typeHeartbeat = "heartbeat"
typeSpawning = "spawning"
typeSpawningComplete = "spawning_complete"
typeQuit = "quit"
typeException = "exception"
)
type genericMessage struct {
Type string `json:"type,omitempty"`
Profile []byte `json:"profile,omitempty"`
Data map[string][]byte `json:"data,omitempty"`
NodeID string `json:"node_id,omitempty"`
Tasks []byte `json:"tasks,omitempty"`
}
type task struct {
Profile *Profile `json:"profile,omitempty"`
TestCasesBytes []byte `json:"testcases,omitempty"`
}
func newGenericMessage(t string, data map[string][]byte, nodeID string) (msg *genericMessage) {
return &genericMessage{
Type: t,
Data: data,
NodeID: nodeID,
}
}
func newQuitMessage(nodeID string) (msg *genericMessage) {
return &genericMessage{
Type: "quit",
NodeID: nodeID,
}
}
func newMessageToWorker(t string, profile []byte, data map[string][]byte, tasks []byte) (msg *genericMessage) {
return &genericMessage{
Type: t,
Profile: profile,
Data: data,
Tasks: tasks,
}
}
func newClientReadyMessageToMaster(nodeID string) (msg *genericMessage) {
return &genericMessage{
Type: "client_ready",
NodeID: nodeID,
}
}