/
transporter.go
19 lines (17 loc) · 998 Bytes
/
transporter.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package raft
//------------------------------------------------------------------------------
//
// Typedefs
//
//------------------------------------------------------------------------------
// Transporter is the interface for allowing the host application to transport
// requests to other nodes.
type Transporter interface {
SendClusterJoinRequest(server Server, node string, req *DefaultJoinCommand) error
SendClusterLeaveRequest(server Server, node string, req *DefaultLeaveCommand) error
SendVoteRequest(server Server, peer *Peer, req *RequestVoteRequest) (*RequestVoteResponse, error)
SendNewVoteRequest(server Server, peer string, req *NewVoteRequest) (*NewVoteResponse, error)
SendAppendEntriesRequest(server Server, peer *Peer, req *AppendEntriesRequest) *AppendEntriesResponse
SendSnapshotRequest(server Server, peer *Peer, req *SnapshotRequest) *SnapshotResponse
SendSnapshotRecoveryRequest(server Server, peer *Peer, req *SnapshotRecoveryRequest) *SnapshotRecoveryResponse
}