forked from go-distributed/epaxos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
propose.go
46 lines (38 loc) · 761 Bytes
/
propose.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
package message
import (
"fmt"
)
type Propose struct {
ReplicaId uint8
InstanceId uint64
Cmds Commands
Created chan struct{}
From uint8
}
func NewPropose(rid uint8, iid uint64, cmds Commands) *Propose {
return &Propose{
ReplicaId: rid,
InstanceId: iid,
Cmds: cmds,
Created: make(chan struct{}),
From: rid,
}
}
func (p *Propose) Sender() uint8 {
return p.From
}
func (p *Propose) Type() uint8 {
return ProposeMsg
}
func (p *Propose) Content() interface{} {
return p
}
func (p *Propose) Replica() uint8 {
return p.ReplicaId
}
func (p *Propose) Instance() uint64 {
return p.InstanceId
}
func (p *Propose) String() string {
return fmt.Sprintf("Propose, Instance[%v][%v]", p.ReplicaId, p.InstanceId)
}