/
electionFactory.go
88 lines (78 loc) · 2.62 KB
/
electionFactory.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
package electionMsgs
import (
"github.com/FactomProject/factomd/common/interfaces"
"github.com/FactomProject/factomd/state"
)
type ElectionsFactory struct{}
var _ interfaces.IElectionsFactory = (*ElectionsFactory)(nil)
//func (e *ElectionsFactory) NewElectionAdapter(el interfaces.IElections) interfaces.IElectionAdapter {
// return NewElectionAdapter(el.(*elections.Elections))
//}
func (e *ElectionsFactory) NewAddLeaderInternal(name string, dbheight uint32, serverID interfaces.IHash) interfaces.IMsg {
msg := new(AddLeaderInternal)
msg.NName = name
msg.DBHeight = dbheight
msg.ServerID = serverID
return msg
}
func (e *ElectionsFactory) NewAddAuditInternal(name string, dbheight uint32, serverID interfaces.IHash) interfaces.IMsg {
msg := new(AddAuditInternal)
msg.NName = name
msg.DBHeight = dbheight
msg.ServerID = serverID
return msg
}
func (e *ElectionsFactory) NewRemoveLeaderInternal(name string, dbheight uint32, serverID interfaces.IHash) interfaces.IMsg {
msg := new(RemoveLeaderInternal)
msg.NName = name
msg.DBHeight = dbheight
msg.ServerID = serverID
return msg
}
func (e *ElectionsFactory) NewRemoveAuditInternal(name string, dbheight uint32, serverID interfaces.IHash) interfaces.IMsg {
msg := new(RemoveAuditInternal)
msg.NName = name
msg.DBHeight = dbheight
msg.ServerID = serverID
return msg
}
func (e *ElectionsFactory) NewEomSigInternal(name string, dbheight uint32, minute uint32, vmIndex int, height uint32, serverID interfaces.IHash) interfaces.IMsg {
msg := new(EomSigInternal)
msg.SigType = true
msg.NName = name
msg.DBHeight = dbheight
msg.Minute = byte(minute)
msg.VMIndex = vmIndex
msg.ServerID = serverID
return msg
}
func (e *ElectionsFactory) NewDBSigSigInternal(name string, dbheight uint32, minute uint32, vmIndex int, height uint32, serverID interfaces.IHash) interfaces.IMsg {
msg := new(EomSigInternal)
msg.SigType = false
msg.NName = name
msg.DBHeight = dbheight
msg.Minute = byte(minute)
msg.VMIndex = vmIndex
msg.ServerID = serverID
return msg
}
func (e *ElectionsFactory) NewAuthorityListInternal(feds []interfaces.IServer, auds []interfaces.IServer, height uint32) interfaces.IMsg {
msg := new(AuthorityListInternal)
msg.DBHeight = height
msg.Federated = make([]interfaces.IServer, 0)
msg.Audit = make([]interfaces.IServer, 0)
copyServer := func(os interfaces.IServer) interfaces.IServer {
s := new(state.Server)
s.ChainID = os.GetChainID()
s.Name = os.GetName()
s.Online = os.IsOnline()
return s
}
for _, f := range feds {
msg.Federated = append(msg.Federated, copyServer(f))
}
for _, a := range auds {
msg.Audit = append(msg.Audit, copyServer(a))
}
return msg
}