dev

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_zorums_proto protoreflect.FileDescriptor

Functions

func RegisterZorumsServiceServer

func RegisterZorumsServiceServer(srv *gorums.Server, impl ZorumsService)

Types

type AsyncEmpty added in v0.3.0

type AsyncEmpty struct {
	*gorums.Async
}

AsyncEmpty is a async object for processing replies.

func (*AsyncEmpty) Get added in v0.3.0

func (f *AsyncEmpty) Get() (*emptypb.Empty, error)

Get returns the reply and any error associated with the called method. The method blocks until a reply or error is available.

type AsyncMyResponse added in v0.3.0

type AsyncMyResponse struct {
	*gorums.Async
}

AsyncMyResponse is a async object for processing replies.

func (*AsyncMyResponse) Get added in v0.3.0

func (f *AsyncMyResponse) Get() (*MyResponse, error)

Get returns the reply and any error associated with the called method. The method blocks until a reply or error is available.

type AsyncResponse added in v0.3.0

type AsyncResponse struct {
	*gorums.Async
}

AsyncResponse is a async object for processing replies.

func (*AsyncResponse) Get added in v0.3.0

func (f *AsyncResponse) Get() (*Response, error)

Get returns the reply and any error associated with the called method. The method blocks until a reply or error is available.

type Configuration

type Configuration struct {
	gorums.RawConfiguration
	// contains filtered or unexported fields
}

A Configuration represents a static set of nodes on which quorum remote procedure calls may be invoked.

func ConfigurationFromRaw added in v0.7.0

func ConfigurationFromRaw(rawCfg gorums.RawConfiguration, qspec QuorumSpec) *Configuration

ConfigurationFromRaw returns a new Configuration from the given raw configuration and QuorumSpec.

This function may for example be used to "clone" a configuration but install a different QuorumSpec:

cfg1, err := mgr.NewConfiguration(qspec1, opts...)
cfg2 := ConfigurationFromRaw(cfg1.RawConfig, qspec2)

func (Configuration) And added in v0.4.0

And returns a NodeListOption that can be used to create a new configuration combining c and d.

func (*Configuration) Correctable

func (c *Configuration) Correctable(ctx context.Context, in *Request) *CorrectableResponse

Correctable plain.

func (*Configuration) CorrectableCombo

func (c *Configuration) CorrectableCombo(ctx context.Context, in *Request, f func(*Request, uint32) *Request) *CorrectableMyResponse

CorrectableCombo with all supported options.

func (*Configuration) CorrectableCustomReturnType

func (c *Configuration) CorrectableCustomReturnType(ctx context.Context, in *Request) *CorrectableMyResponse

CorrectableCustomReturnType with custom_return_type option.

func (*Configuration) CorrectableEmpty

func (c *Configuration) CorrectableEmpty(ctx context.Context, in *Request) *CorrectableEmpty

CorrectableEmpty for testing imported message type.

func (*Configuration) CorrectableEmpty2

func (c *Configuration) CorrectableEmpty2(ctx context.Context, in *emptypb.Empty) *CorrectableResponse

CorrectableEmpty2 for testing imported message type; with same return type as Correctable: Response.

func (*Configuration) CorrectablePerNodeArg

func (c *Configuration) CorrectablePerNodeArg(ctx context.Context, in *Request, f func(*Request, uint32) *Request) *CorrectableResponse

CorrectablePerNodeArg with per_node_arg option.

func (*Configuration) CorrectableStream

func (c *Configuration) CorrectableStream(ctx context.Context, in *Request) *CorrectableStreamResponse

CorrectableStream plain.

func (*Configuration) CorrectableStreamCombo

func (c *Configuration) CorrectableStreamCombo(ctx context.Context, in *Request, f func(*Request, uint32) *Request) *CorrectableStreamMyResponse

CorrectableCombo with all supported options.

func (*Configuration) CorrectableStreamCustomReturnType

func (c *Configuration) CorrectableStreamCustomReturnType(ctx context.Context, in *Request) *CorrectableStreamMyResponse

CorrectableCustomReturnType with custom_return_type option.

func (*Configuration) CorrectableStreamEmpty

func (c *Configuration) CorrectableStreamEmpty(ctx context.Context, in *Request) *CorrectableStreamEmpty

CorrectableEmpty for testing imported message type.

func (*Configuration) CorrectableStreamEmpty2

func (c *Configuration) CorrectableStreamEmpty2(ctx context.Context, in *emptypb.Empty) *CorrectableStreamResponse

CorrectableEmpty2 for testing imported message type; with same return type as Correctable: Response.

func (*Configuration) CorrectableStreamPerNodeArg

func (c *Configuration) CorrectableStreamPerNodeArg(ctx context.Context, in *Request, f func(*Request, uint32) *Request) *CorrectableStreamResponse

CorrectablePerNodeArg with per_node_arg option.

func (Configuration) Except added in v0.4.0

Except returns a NodeListOption that can be used to create a new configuration from c without the nodes in rm.

func (*Configuration) Multicast

func (c *Configuration) Multicast(ctx context.Context, in *Request, opts ...gorums.CallOption)

Multicast plain. Response type is not needed here.

func (*Configuration) Multicast2

func (c *Configuration) Multicast2(ctx context.Context, in *Request, opts ...gorums.CallOption)

Multicast2 is testing whether multiple streams work.

func (*Configuration) Multicast3

func (c *Configuration) Multicast3(ctx context.Context, in *Request, opts ...gorums.CallOption)

Multicast3 is testing imported message type.

func (*Configuration) Multicast4

func (c *Configuration) Multicast4(ctx context.Context, in *emptypb.Empty, opts ...gorums.CallOption)

Multicast4 is testing imported message type.

func (*Configuration) MulticastPerNodeArg

func (c *Configuration) MulticastPerNodeArg(ctx context.Context, in *Request, f func(*Request, uint32) *Request, opts ...gorums.CallOption)

MulticastPerNodeArg with per_node_arg option.

func (*Configuration) Nodes

func (c *Configuration) Nodes() []*Node

Nodes returns a slice of each available node. IDs are returned in the same order as they were provided in the creation of the Manager.

NOTE: mutating the returned slice is not supported.

func (*Configuration) QuorumCall

func (c *Configuration) QuorumCall(ctx context.Context, in *Request) (resp *Response, err error)

QuorumCall plain.

func (*Configuration) QuorumCallAsync added in v0.3.0

func (c *Configuration) QuorumCallAsync(ctx context.Context, in *Request) *AsyncResponse

QuorumCallAsync plain.

func (*Configuration) QuorumCallAsync2 added in v0.3.0

func (c *Configuration) QuorumCallAsync2(ctx context.Context, in *Request) *AsyncResponse

QuorumCallAsync2 plain; with same return type: Response.

func (*Configuration) QuorumCallAsyncCombo added in v0.3.0

func (c *Configuration) QuorumCallAsyncCombo(ctx context.Context, in *Request, f func(*Request, uint32) *Request) *AsyncMyResponse

QuorumCallAsyncCombo with all supported options.

func (*Configuration) QuorumCallAsyncCustomReturnType added in v0.3.0

func (c *Configuration) QuorumCallAsyncCustomReturnType(ctx context.Context, in *Request) *AsyncMyResponse

QuorumCallAsyncCustomReturnType with custom_return_type option.

func (*Configuration) QuorumCallAsyncEmpty added in v0.3.0

func (c *Configuration) QuorumCallAsyncEmpty(ctx context.Context, in *Request) *AsyncEmpty

QuorumCallAsyncEmpty for testing imported message type.

func (*Configuration) QuorumCallAsyncEmpty2 added in v0.3.0

func (c *Configuration) QuorumCallAsyncEmpty2(ctx context.Context, in *emptypb.Empty) *AsyncResponse

QuorumCallAsyncEmpty2 for testing imported message type; with same return type as QuorumCallAsync: Response.

func (*Configuration) QuorumCallAsyncPerNodeArg added in v0.3.0

func (c *Configuration) QuorumCallAsyncPerNodeArg(ctx context.Context, in *Request, f func(*Request, uint32) *Request) *AsyncResponse

QuorumCallAsyncPerNodeArg with per_node_arg option.

func (*Configuration) QuorumCallCombo

func (c *Configuration) QuorumCallCombo(ctx context.Context, in *Request, f func(*Request, uint32) *Request) (resp *MyResponse, err error)

QuorumCallCombo with all supported options.

func (*Configuration) QuorumCallCustomReturnType

func (c *Configuration) QuorumCallCustomReturnType(ctx context.Context, in *Request) (resp *MyResponse, err error)

QuorumCall with custom_return_type option.

func (*Configuration) QuorumCallEmpty

func (c *Configuration) QuorumCallEmpty(ctx context.Context, in *emptypb.Empty) (resp *Response, err error)

QuorumCallEmpty for testing imported message type.

func (*Configuration) QuorumCallEmpty2

func (c *Configuration) QuorumCallEmpty2(ctx context.Context, in *Request) (resp *emptypb.Empty, err error)

QuorumCallEmpty2 for testing imported message type.

func (*Configuration) QuorumCallPerNodeArg

func (c *Configuration) QuorumCallPerNodeArg(ctx context.Context, in *Request, f func(*Request, uint32) *Request) (resp *Response, err error)

QuorumCall with per_node_arg option.

type CorrectableEmpty

type CorrectableEmpty struct {
	*gorums.Correctable
}

CorrectableEmpty is a correctable object for processing replies.

func (*CorrectableEmpty) Get

func (c *CorrectableEmpty) Get() (*emptypb.Empty, int, error)

Get returns the reply, level and any error associated with the called method. The method does not block until a (possibly intermediate) reply or error is available. Level is set to LevelNotSet if no reply has yet been received. The Done or Watch methods should be used to ensure that a reply is available.

type CorrectableMyResponse

type CorrectableMyResponse struct {
	*gorums.Correctable
}

CorrectableMyResponse is a correctable object for processing replies.

func (*CorrectableMyResponse) Get

func (c *CorrectableMyResponse) Get() (*MyResponse, int, error)

Get returns the reply, level and any error associated with the called method. The method does not block until a (possibly intermediate) reply or error is available. Level is set to LevelNotSet if no reply has yet been received. The Done or Watch methods should be used to ensure that a reply is available.

type CorrectableResponse

type CorrectableResponse struct {
	*gorums.Correctable
}

CorrectableResponse is a correctable object for processing replies.

func (*CorrectableResponse) Get

func (c *CorrectableResponse) Get() (*Response, int, error)

Get returns the reply, level and any error associated with the called method. The method does not block until a (possibly intermediate) reply or error is available. Level is set to LevelNotSet if no reply has yet been received. The Done or Watch methods should be used to ensure that a reply is available.

type CorrectableStreamEmpty

type CorrectableStreamEmpty struct {
	*gorums.Correctable
}

CorrectableStreamEmpty is a correctable object for processing replies.

func (*CorrectableStreamEmpty) Get

Get returns the reply, level and any error associated with the called method. The method does not block until a (possibly intermediate) reply or error is available. Level is set to LevelNotSet if no reply has yet been received. The Done or Watch methods should be used to ensure that a reply is available.

type CorrectableStreamMyResponse

type CorrectableStreamMyResponse struct {
	*gorums.Correctable
}

CorrectableStreamMyResponse is a correctable object for processing replies.

func (*CorrectableStreamMyResponse) Get

Get returns the reply, level and any error associated with the called method. The method does not block until a (possibly intermediate) reply or error is available. Level is set to LevelNotSet if no reply has yet been received. The Done or Watch methods should be used to ensure that a reply is available.

type CorrectableStreamResponse

type CorrectableStreamResponse struct {
	*gorums.Correctable
}

CorrectableStreamResponse is a correctable object for processing replies.

func (*CorrectableStreamResponse) Get

Get returns the reply, level and any error associated with the called method. The method does not block until a (possibly intermediate) reply or error is available. Level is set to LevelNotSet if no reply has yet been received. The Done or Watch methods should be used to ensure that a reply is available.

type Manager

type Manager struct {
	*gorums.RawManager
}

Manager maintains a connection pool of nodes on which quorum calls can be performed.

func NewManager

func NewManager(opts ...gorums.ManagerOption) (mgr *Manager)

NewManager returns a new Manager for managing connection to nodes added to the manager. This function accepts manager options used to configure various aspects of the manager.

func (*Manager) NewConfiguration

func (m *Manager) NewConfiguration(opts ...gorums.ConfigOption) (c *Configuration, err error)

NewConfiguration returns a configuration based on the provided list of nodes (required) and an optional quorum specification. The QuorumSpec is necessary for call types that must process replies. For configurations only used for unicast or multicast call types, a QuorumSpec is not needed. The QuorumSpec interface is also a ConfigOption. Nodes can be supplied using WithNodeMap or WithNodeList, or WithNodeIDs. A new configuration can also be created from an existing configuration, using the And, WithNewNodes, Except, and WithoutNodes methods.

func (*Manager) Nodes

func (m *Manager) Nodes() []*Node

Nodes returns a slice of available nodes on this manager. IDs are returned in the order they were added at creation of the manager.

type MyResponse

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

func (*MyResponse) Descriptor deprecated

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

Deprecated: Use MyResponse.ProtoReflect.Descriptor instead.

func (*MyResponse) GetValue

func (x *MyResponse) GetValue() string

func (*MyResponse) ProtoMessage

func (*MyResponse) ProtoMessage()

func (*MyResponse) ProtoReflect

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

func (*MyResponse) Reset

func (x *MyResponse) Reset()

func (*MyResponse) String

func (x *MyResponse) String() string

type Node

type Node struct {
	*gorums.RawNode
}

Node encapsulates the state of a node on which a remote procedure call can be performed.

func (*Node) GRPCCall added in v0.3.0

func (n *Node) GRPCCall(ctx context.Context, in *Request) (resp *Response, err error)

GRPCCall plain gRPC call; testing that Gorums can ignore these, but that they are added to the _grpc.pb.go generated file.

func (*Node) Unicast

func (n *Node) Unicast(ctx context.Context, in *Request, opts ...gorums.CallOption)

Unicast is a quorum call invoked on all nodes in configuration c, with the same argument in, and returns a combined result.

func (*Node) Unicast2

func (n *Node) Unicast2(ctx context.Context, in *Request, opts ...gorums.CallOption)

Unicast2 is a quorum call invoked on all nodes in configuration c, with the same argument in, and returns a combined result.

type QuorumSpec

type QuorumSpec interface {
	gorums.ConfigOption

	// QuorumCallQF is the quorum function for the QuorumCall
	// quorum call method. The in parameter is the request object
	// supplied to the QuorumCall method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallQF(in *Request, replies map[uint32]*Response) (*Response, bool)

	// QuorumCallPerNodeArgQF is the quorum function for the QuorumCallPerNodeArg
	// quorum call method. The in parameter is the request object
	// supplied to the QuorumCallPerNodeArg method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallPerNodeArgQF(in *Request, replies map[uint32]*Response) (*Response, bool)

	// QuorumCallCustomReturnTypeQF is the quorum function for the QuorumCallCustomReturnType
	// quorum call method. The in parameter is the request object
	// supplied to the QuorumCallCustomReturnType method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallCustomReturnTypeQF(in *Request, replies map[uint32]*Response) (*MyResponse, bool)

	// QuorumCallComboQF is the quorum function for the QuorumCallCombo
	// quorum call method. The in parameter is the request object
	// supplied to the QuorumCallCombo method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallComboQF(in *Request, replies map[uint32]*Response) (*MyResponse, bool)

	// QuorumCallEmptyQF is the quorum function for the QuorumCallEmpty
	// quorum call method. The in parameter is the request object
	// supplied to the QuorumCallEmpty method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *emptypb.Empty'.
	QuorumCallEmptyQF(in *emptypb.Empty, replies map[uint32]*Response) (*Response, bool)

	// QuorumCallEmpty2QF is the quorum function for the QuorumCallEmpty2
	// quorum call method. The in parameter is the request object
	// supplied to the QuorumCallEmpty2 method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallEmpty2QF(in *Request, replies map[uint32]*emptypb.Empty) (*emptypb.Empty, bool)

	// QuorumCallAsyncQF is the quorum function for the QuorumCallAsync
	// asynchronous quorum call method. The in parameter is the request object
	// supplied to the QuorumCallAsync method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallAsyncQF(in *Request, replies map[uint32]*Response) (*Response, bool)

	// QuorumCallAsyncPerNodeArgQF is the quorum function for the QuorumCallAsyncPerNodeArg
	// asynchronous quorum call method. The in parameter is the request object
	// supplied to the QuorumCallAsyncPerNodeArg method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallAsyncPerNodeArgQF(in *Request, replies map[uint32]*Response) (*Response, bool)

	// QuorumCallAsyncCustomReturnTypeQF is the quorum function for the QuorumCallAsyncCustomReturnType
	// asynchronous quorum call method. The in parameter is the request object
	// supplied to the QuorumCallAsyncCustomReturnType method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallAsyncCustomReturnTypeQF(in *Request, replies map[uint32]*Response) (*MyResponse, bool)

	// QuorumCallAsyncComboQF is the quorum function for the QuorumCallAsyncCombo
	// asynchronous quorum call method. The in parameter is the request object
	// supplied to the QuorumCallAsyncCombo method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallAsyncComboQF(in *Request, replies map[uint32]*Response) (*MyResponse, bool)

	// QuorumCallAsync2QF is the quorum function for the QuorumCallAsync2
	// asynchronous quorum call method. The in parameter is the request object
	// supplied to the QuorumCallAsync2 method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallAsync2QF(in *Request, replies map[uint32]*Response) (*Response, bool)

	// QuorumCallAsyncEmptyQF is the quorum function for the QuorumCallAsyncEmpty
	// asynchronous quorum call method. The in parameter is the request object
	// supplied to the QuorumCallAsyncEmpty method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	QuorumCallAsyncEmptyQF(in *Request, replies map[uint32]*emptypb.Empty) (*emptypb.Empty, bool)

	// QuorumCallAsyncEmpty2QF is the quorum function for the QuorumCallAsyncEmpty2
	// asynchronous quorum call method. The in parameter is the request object
	// supplied to the QuorumCallAsyncEmpty2 method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *emptypb.Empty'.
	QuorumCallAsyncEmpty2QF(in *emptypb.Empty, replies map[uint32]*Response) (*Response, bool)

	// CorrectableQF is the quorum function for the Correctable
	// correctable quorum call method. The in parameter is the request object
	// supplied to the Correctable method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectableQF(in *Request, replies map[uint32]*Response) (*Response, int, bool)

	// CorrectablePerNodeArgQF is the quorum function for the CorrectablePerNodeArg
	// correctable quorum call method. The in parameter is the request object
	// supplied to the CorrectablePerNodeArg method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectablePerNodeArgQF(in *Request, replies map[uint32]*Response) (*Response, int, bool)

	// CorrectableCustomReturnTypeQF is the quorum function for the CorrectableCustomReturnType
	// correctable quorum call method. The in parameter is the request object
	// supplied to the CorrectableCustomReturnType method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectableCustomReturnTypeQF(in *Request, replies map[uint32]*Response) (*MyResponse, int, bool)

	// CorrectableComboQF is the quorum function for the CorrectableCombo
	// correctable quorum call method. The in parameter is the request object
	// supplied to the CorrectableCombo method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectableComboQF(in *Request, replies map[uint32]*Response) (*MyResponse, int, bool)

	// CorrectableEmptyQF is the quorum function for the CorrectableEmpty
	// correctable quorum call method. The in parameter is the request object
	// supplied to the CorrectableEmpty method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectableEmptyQF(in *Request, replies map[uint32]*emptypb.Empty) (*emptypb.Empty, int, bool)

	// CorrectableEmpty2QF is the quorum function for the CorrectableEmpty2
	// correctable quorum call method. The in parameter is the request object
	// supplied to the CorrectableEmpty2 method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *emptypb.Empty'.
	CorrectableEmpty2QF(in *emptypb.Empty, replies map[uint32]*Response) (*Response, int, bool)

	// CorrectableStreamQF is the quorum function for the CorrectableStream
	// correctable stream quorum call method. The in parameter is the request object
	// supplied to the CorrectableStream method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectableStreamQF(in *Request, replies map[uint32]*Response) (*Response, int, bool)

	// CorrectableStreamPerNodeArgQF is the quorum function for the CorrectableStreamPerNodeArg
	// correctable stream quorum call method. The in parameter is the request object
	// supplied to the CorrectableStreamPerNodeArg method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectableStreamPerNodeArgQF(in *Request, replies map[uint32]*Response) (*Response, int, bool)

	// CorrectableStreamCustomReturnTypeQF is the quorum function for the CorrectableStreamCustomReturnType
	// correctable stream quorum call method. The in parameter is the request object
	// supplied to the CorrectableStreamCustomReturnType method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectableStreamCustomReturnTypeQF(in *Request, replies map[uint32]*Response) (*MyResponse, int, bool)

	// CorrectableStreamComboQF is the quorum function for the CorrectableStreamCombo
	// correctable stream quorum call method. The in parameter is the request object
	// supplied to the CorrectableStreamCombo method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectableStreamComboQF(in *Request, replies map[uint32]*Response) (*MyResponse, int, bool)

	// CorrectableStreamEmptyQF is the quorum function for the CorrectableStreamEmpty
	// correctable stream quorum call method. The in parameter is the request object
	// supplied to the CorrectableStreamEmpty method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *Request'.
	CorrectableStreamEmptyQF(in *Request, replies map[uint32]*emptypb.Empty) (*emptypb.Empty, int, bool)

	// CorrectableStreamEmpty2QF is the quorum function for the CorrectableStreamEmpty2
	// correctable stream quorum call method. The in parameter is the request object
	// supplied to the CorrectableStreamEmpty2 method at call time, and may or may not
	// be used by the quorum function. If the in parameter is not needed
	// you should implement your quorum function with '_ *emptypb.Empty'.
	CorrectableStreamEmpty2QF(in *emptypb.Empty, replies map[uint32]*Response) (*Response, int, bool)
}

QuorumSpec is the interface of quorum functions for ZorumsService.

type Request

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

func (*Request) Descriptor deprecated

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

Deprecated: Use Request.ProtoReflect.Descriptor instead.

func (*Request) GetValue

func (x *Request) GetValue() string

func (*Request) ProtoMessage

func (*Request) ProtoMessage()

func (*Request) ProtoReflect

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

func (*Request) Reset

func (x *Request) Reset()

func (*Request) String

func (x *Request) String() string

type Response

type Response struct {
	Result int64 `protobuf:"varint,1,opt,name=Result,proto3" json:"Result,omitempty"`
	// contains filtered or unexported fields
}

func (*Response) Descriptor deprecated

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

Deprecated: Use Response.ProtoReflect.Descriptor instead.

func (*Response) GetResult

func (x *Response) GetResult() int64

func (*Response) ProtoMessage

func (*Response) ProtoMessage()

func (*Response) ProtoReflect

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

func (*Response) Reset

func (x *Response) Reset()

func (*Response) String

func (x *Response) String() string

type ZorumsService

type ZorumsService interface {
	GRPCCall(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCall(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCallPerNodeArg(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCallCustomReturnType(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCallCombo(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCallEmpty(ctx gorums.ServerCtx, request *emptypb.Empty) (response *Response, err error)
	QuorumCallEmpty2(ctx gorums.ServerCtx, request *Request) (response *emptypb.Empty, err error)
	Multicast(ctx gorums.ServerCtx, request *Request)
	MulticastPerNodeArg(ctx gorums.ServerCtx, request *Request)
	Multicast2(ctx gorums.ServerCtx, request *Request)
	Multicast3(ctx gorums.ServerCtx, request *Request)
	Multicast4(ctx gorums.ServerCtx, request *emptypb.Empty)
	QuorumCallAsync(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCallAsyncPerNodeArg(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCallAsyncCustomReturnType(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCallAsyncCombo(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCallAsync2(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	QuorumCallAsyncEmpty(ctx gorums.ServerCtx, request *Request) (response *emptypb.Empty, err error)
	QuorumCallAsyncEmpty2(ctx gorums.ServerCtx, request *emptypb.Empty) (response *Response, err error)
	Correctable(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	CorrectablePerNodeArg(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	CorrectableCustomReturnType(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	CorrectableCombo(ctx gorums.ServerCtx, request *Request) (response *Response, err error)
	CorrectableEmpty(ctx gorums.ServerCtx, request *Request) (response *emptypb.Empty, err error)
	CorrectableEmpty2(ctx gorums.ServerCtx, request *emptypb.Empty) (response *Response, err error)
	CorrectableStream(ctx gorums.ServerCtx, request *Request, send func(response *Response) error) error
	CorrectableStreamPerNodeArg(ctx gorums.ServerCtx, request *Request, send func(response *Response) error) error
	CorrectableStreamCustomReturnType(ctx gorums.ServerCtx, request *Request, send func(response *Response) error) error
	CorrectableStreamCombo(ctx gorums.ServerCtx, request *Request, send func(response *Response) error) error
	CorrectableStreamEmpty(ctx gorums.ServerCtx, request *Request, send func(response *emptypb.Empty) error) error
	CorrectableStreamEmpty2(ctx gorums.ServerCtx, request *emptypb.Empty, send func(response *Response) error) error
	Unicast(ctx gorums.ServerCtx, request *Request)
	Unicast2(ctx gorums.ServerCtx, request *Request)
}

ZorumsService is the server-side API for the ZorumsService Service

Jump to

Keyboard shortcuts

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