api

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2022 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_raft_rpc_proto protoreflect.FileDescriptor
View Source
var RaftRpc_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "api.RaftRpc",
	HandlerType: (*RaftRpcServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "RequestVote",
			Handler:    _RaftRpc_RequestVote_Handler,
		},
		{
			MethodName: "AppendEntries",
			Handler:    _RaftRpc_AppendEntries_Handler,
		},
		{
			MethodName: "ExecCmd",
			Handler:    _RaftRpc_ExecCmd_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "raft_rpc.proto",
}

RaftRpc_ServiceDesc is the grpc.ServiceDesc for RaftRpc service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func MapToAppendEntriesReq

func MapToAppendEntriesReq(from *AppendEntriesArguments) (to *core.AppendEntriesReq)

func MapToAppendEntriesResp

func MapToAppendEntriesResp(from *AppendEntriesResults) (to *core.AppendEntriesResp)

func MapToCmdReq

func MapToCmdReq(from *CmdRequest) (to *core.CmdReq)

func MapToCmdResp

func MapToCmdResp(from *CmdResponse) (to *core.CmdResp)

func MapToRequestVoteReq

func MapToRequestVoteReq(from *RequestVoteArguments) (to *core.RequestVoteReq)

func MapToRequestVoteResp

func MapToRequestVoteResp(from *RequestVoteResults) (to *core.RequestVoteResp)

func RegisterRaftRpcServer

func RegisterRaftRpcServer(s grpc.ServiceRegistrar, srv RaftRpcServer)

Types

type AppendEntriesArguments

type AppendEntriesArguments struct {
	Term         int64    `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
	LeaderId     string   `protobuf:"bytes,2,opt,name=leader_id,json=leaderId,proto3" json:"leader_id,omitempty"`
	PrevLogIndex int64    `protobuf:"varint,3,opt,name=prev_log_index,json=prevLogIndex,proto3" json:"prev_log_index,omitempty"`
	PrevLogTerm  int64    `protobuf:"varint,4,opt,name=prev_log_term,json=prevLogTerm,proto3" json:"prev_log_term,omitempty"`
	Entries      []*Entry `protobuf:"bytes,5,rep,name=entries,proto3" json:"entries,omitempty"`
	LeaderCommit int64    `protobuf:"varint,6,opt,name=leader_commit,json=leaderCommit,proto3" json:"leader_commit,omitempty"`
	// contains filtered or unexported fields
}

func MapToAppendEntriesArguments

func MapToAppendEntriesArguments(from *core.AppendEntriesReq) (to *AppendEntriesArguments)

func (*AppendEntriesArguments) Descriptor deprecated

func (*AppendEntriesArguments) Descriptor() ([]byte, []int)

Deprecated: Use AppendEntriesArguments.ProtoReflect.Descriptor instead.

func (*AppendEntriesArguments) GetEntries

func (x *AppendEntriesArguments) GetEntries() []*Entry

func (*AppendEntriesArguments) GetLeaderCommit

func (x *AppendEntriesArguments) GetLeaderCommit() int64

func (*AppendEntriesArguments) GetLeaderId

func (x *AppendEntriesArguments) GetLeaderId() string

func (*AppendEntriesArguments) GetPrevLogIndex

func (x *AppendEntriesArguments) GetPrevLogIndex() int64

func (*AppendEntriesArguments) GetPrevLogTerm

func (x *AppendEntriesArguments) GetPrevLogTerm() int64

func (*AppendEntriesArguments) GetTerm

func (x *AppendEntriesArguments) GetTerm() int64

func (*AppendEntriesArguments) ProtoMessage

func (*AppendEntriesArguments) ProtoMessage()

func (*AppendEntriesArguments) ProtoReflect

func (x *AppendEntriesArguments) ProtoReflect() protoreflect.Message

func (*AppendEntriesArguments) Reset

func (x *AppendEntriesArguments) Reset()

func (*AppendEntriesArguments) String

func (x *AppendEntriesArguments) String() string

type AppendEntriesResults

type AppendEntriesResults struct {
	Term    int64 `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
	Success bool  `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"`
	// contains filtered or unexported fields
}

func MapToAppendEntriesResults

func MapToAppendEntriesResults(from *core.AppendEntriesResp) (to *AppendEntriesResults)

func (*AppendEntriesResults) Descriptor deprecated

func (*AppendEntriesResults) Descriptor() ([]byte, []int)

Deprecated: Use AppendEntriesResults.ProtoReflect.Descriptor instead.

func (*AppendEntriesResults) GetSuccess

func (x *AppendEntriesResults) GetSuccess() bool

func (*AppendEntriesResults) GetTerm

func (x *AppendEntriesResults) GetTerm() int64

func (*AppendEntriesResults) ProtoMessage

func (*AppendEntriesResults) ProtoMessage()

func (*AppendEntriesResults) ProtoReflect

func (x *AppendEntriesResults) ProtoReflect() protoreflect.Message

func (*AppendEntriesResults) Reset

func (x *AppendEntriesResults) Reset()

func (*AppendEntriesResults) String

func (x *AppendEntriesResults) String() string

type Caller

type Caller struct {
	// contains filtered or unexported fields
}

func NewCaller

func NewCaller(recv chan *mgr.Rpc, send chan *mgr.Rpc, mgr *mgr.RaftManager) (caller *Caller, done chan struct{})

func (*Caller) Run

func (c *Caller) Run()

type CmdRequest

type CmdRequest struct {
	Cmd string `protobuf:"bytes,1,opt,name=cmd,proto3" json:"cmd,omitempty"`
	// contains filtered or unexported fields
}

client command

func MapToCmdRequest

func MapToCmdRequest(from *core.CmdReq) (to *CmdRequest)

func (*CmdRequest) Descriptor deprecated

func (*CmdRequest) Descriptor() ([]byte, []int)

Deprecated: Use CmdRequest.ProtoReflect.Descriptor instead.

func (*CmdRequest) GetCmd

func (x *CmdRequest) GetCmd() string

func (*CmdRequest) ProtoMessage

func (*CmdRequest) ProtoMessage()

func (*CmdRequest) ProtoReflect

func (x *CmdRequest) ProtoReflect() protoreflect.Message

func (*CmdRequest) Reset

func (x *CmdRequest) Reset()

func (*CmdRequest) String

func (x *CmdRequest) String() string

type CmdResponse

type CmdResponse struct {
	Result  string `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
	Success bool   `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"`
	// contains filtered or unexported fields
}

func MapToCmdResponse

func MapToCmdResponse(from *core.CmdResp) (to *CmdResponse)

func (*CmdResponse) Descriptor deprecated

func (*CmdResponse) Descriptor() ([]byte, []int)

Deprecated: Use CmdResponse.ProtoReflect.Descriptor instead.

func (*CmdResponse) GetResult

func (x *CmdResponse) GetResult() string

func (*CmdResponse) GetSuccess

func (x *CmdResponse) GetSuccess() bool

func (*CmdResponse) ProtoMessage

func (*CmdResponse) ProtoMessage()

func (*CmdResponse) ProtoReflect

func (x *CmdResponse) ProtoReflect() protoreflect.Message

func (*CmdResponse) Reset

func (x *CmdResponse) Reset()

func (*CmdResponse) String

func (x *CmdResponse) String() string

type Entry

type Entry struct {
	Term int64  `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
	Idx  int64  `protobuf:"varint,2,opt,name=idx,proto3" json:"idx,omitempty"`
	Cmd  string `protobuf:"bytes,3,opt,name=cmd,proto3" json:"cmd,omitempty"`
	// contains filtered or unexported fields
}

func (*Entry) Descriptor deprecated

func (*Entry) Descriptor() ([]byte, []int)

Deprecated: Use Entry.ProtoReflect.Descriptor instead.

func (*Entry) GetCmd

func (x *Entry) GetCmd() string

func (*Entry) GetIdx

func (x *Entry) GetIdx() int64

func (*Entry) GetTerm

func (x *Entry) GetTerm() int64

func (*Entry) ProtoMessage

func (*Entry) ProtoMessage()

func (*Entry) ProtoReflect

func (x *Entry) ProtoReflect() protoreflect.Message

func (*Entry) Reset

func (x *Entry) Reset()

func (*Entry) String

func (x *Entry) String() string

type RaftRpcClient

type RaftRpcClient interface {
	RequestVote(ctx context.Context, in *RequestVoteArguments, opts ...grpc.CallOption) (*RequestVoteResults, error)
	AppendEntries(ctx context.Context, in *AppendEntriesArguments, opts ...grpc.CallOption) (*AppendEntriesResults, error)
	ExecCmd(ctx context.Context, in *CmdRequest, opts ...grpc.CallOption) (*CmdResponse, error)
}

RaftRpcClient is the client API for RaftRpc service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

func NewRaftRpcClient

func NewRaftRpcClient(cc grpc.ClientConnInterface) RaftRpcClient

type RaftRpcServer

type RaftRpcServer interface {
	RequestVote(context.Context, *RequestVoteArguments) (*RequestVoteResults, error)
	AppendEntries(context.Context, *AppendEntriesArguments) (*AppendEntriesResults, error)
	ExecCmd(context.Context, *CmdRequest) (*CmdResponse, error)
	// contains filtered or unexported methods
}

RaftRpcServer is the server API for RaftRpc service. All implementations must embed UnimplementedRaftRpcServer for forward compatibility

type RaftServer

type RaftServer struct {
	UnimplementedRaftRpcServer
	// contains filtered or unexported fields
}

func NewServer

func NewServer(inputCh chan *mgr.Rpc, mgr *mgr.RaftManager) *RaftServer

func (*RaftServer) AppendEntries

func (*RaftServer) ExecCmd

func (s *RaftServer) ExecCmd(ctx context.Context, in *CmdRequest) (*CmdResponse, error)

func (*RaftServer) RequestVote

type RequestVoteArguments

type RequestVoteArguments struct {
	Term         int64  `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
	CandidateId  string `protobuf:"bytes,2,opt,name=candidate_id,json=candidateId,proto3" json:"candidate_id,omitempty"`
	LastLogIndex int64  `protobuf:"varint,3,opt,name=last_log_index,json=lastLogIndex,proto3" json:"last_log_index,omitempty"`
	LastLogTerm  int64  `protobuf:"varint,4,opt,name=last_log_term,json=lastLogTerm,proto3" json:"last_log_term,omitempty"`
	// contains filtered or unexported fields
}

inner rpc

func MapToRequestVoteArguments

func MapToRequestVoteArguments(from *core.RequestVoteReq) (to *RequestVoteArguments)

func (*RequestVoteArguments) Descriptor deprecated

func (*RequestVoteArguments) Descriptor() ([]byte, []int)

Deprecated: Use RequestVoteArguments.ProtoReflect.Descriptor instead.

func (*RequestVoteArguments) GetCandidateId

func (x *RequestVoteArguments) GetCandidateId() string

func (*RequestVoteArguments) GetLastLogIndex

func (x *RequestVoteArguments) GetLastLogIndex() int64

func (*RequestVoteArguments) GetLastLogTerm

func (x *RequestVoteArguments) GetLastLogTerm() int64

func (*RequestVoteArguments) GetTerm

func (x *RequestVoteArguments) GetTerm() int64

func (*RequestVoteArguments) ProtoMessage

func (*RequestVoteArguments) ProtoMessage()

func (*RequestVoteArguments) ProtoReflect

func (x *RequestVoteArguments) ProtoReflect() protoreflect.Message

func (*RequestVoteArguments) Reset

func (x *RequestVoteArguments) Reset()

func (*RequestVoteArguments) String

func (x *RequestVoteArguments) String() string

type RequestVoteResults

type RequestVoteResults struct {
	Term        int64 `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
	VoteGranted bool  `protobuf:"varint,2,opt,name=vote_granted,json=voteGranted,proto3" json:"vote_granted,omitempty"`
	// contains filtered or unexported fields
}

func MapToRequestVoteResults

func MapToRequestVoteResults(from *core.RequestVoteResp) (to *RequestVoteResults)

func (*RequestVoteResults) Descriptor deprecated

func (*RequestVoteResults) Descriptor() ([]byte, []int)

Deprecated: Use RequestVoteResults.ProtoReflect.Descriptor instead.

func (*RequestVoteResults) GetTerm

func (x *RequestVoteResults) GetTerm() int64

func (*RequestVoteResults) GetVoteGranted

func (x *RequestVoteResults) GetVoteGranted() bool

func (*RequestVoteResults) ProtoMessage

func (*RequestVoteResults) ProtoMessage()

func (*RequestVoteResults) ProtoReflect

func (x *RequestVoteResults) ProtoReflect() protoreflect.Message

func (*RequestVoteResults) Reset

func (x *RequestVoteResults) Reset()

func (*RequestVoteResults) String

func (x *RequestVoteResults) String() string

type UnimplementedRaftRpcServer

type UnimplementedRaftRpcServer struct {
}

UnimplementedRaftRpcServer must be embedded to have forward compatible implementations.

func (UnimplementedRaftRpcServer) AppendEntries

func (UnimplementedRaftRpcServer) ExecCmd

func (UnimplementedRaftRpcServer) RequestVote

type UnsafeRaftRpcServer

type UnsafeRaftRpcServer interface {
	// contains filtered or unexported methods
}

UnsafeRaftRpcServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to RaftRpcServer will result in compilation errors.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL