Documentation ¶
Index ¶
- Constants
- func APIToErrReporter(api API) errz.ErrReporter
- func InjectRPCAPI(ctx context.Context, rpcAPI RPCAPI) context.Context
- func StreamRPCAPIInterceptor(factory RPCAPIFactory) grpc.StreamServerInterceptor
- func UnaryRPCAPIInterceptor(factory RPCAPIFactory) grpc.UnaryServerInterceptor
- type API
- type Factory
- type ModuleStartStopPhase
- type RPCAPI
- type RPCAPIFactory
- type RPCAPIStub
Constants ¶
View Source
const (
NoAgentID int64 = 0
)
Variables ¶
This section is empty.
Functions ¶
func APIToErrReporter ¶
func APIToErrReporter(api API) errz.ErrReporter
func StreamRPCAPIInterceptor ¶
func StreamRPCAPIInterceptor(factory RPCAPIFactory) grpc.StreamServerInterceptor
StreamRPCAPIInterceptor returns a new stream server interceptor that augments connection context with a RPCAPI.
func UnaryRPCAPIInterceptor ¶
func UnaryRPCAPIInterceptor(factory RPCAPIFactory) grpc.UnaryServerInterceptor
UnaryRPCAPIInterceptor returns a new unary server interceptor that augments connection context with a RPCAPI.
Types ¶
type API ¶
type API interface { // HandleProcessingError can be used to handle errors occurring while processing a request. // If err is a (or wraps a) errz.UserError, it might be handled specially. HandleProcessingError(ctx context.Context, log *zap.Logger, agentID int64, msg string, err error) }
API provides the API for the module to use.
type Factory ¶
type Factory interface { // Name returns module's name. Name() string // StartStopPhase defines when to start and stop module during the program lifecycle. StartStopPhase() ModuleStartStopPhase }
type ModuleStartStopPhase ¶
type ModuleStartStopPhase byte
const ( // ModuleStartBeforeServers is the default choice. ModuleStartBeforeServers ModuleStartStopPhase // ModuleStartAfterServers should be used only when module uses internal API server client. ModuleStartAfterServers )
type RPCAPI ¶
type RPCAPI interface { // Log returns a logger to use in the context of the request being processed. Log() *zap.Logger // HandleProcessingError can be used to handle errors occurring while processing a request. // If err is a (or wraps a) errz.UserError, it might be handled specially. HandleProcessingError(log *zap.Logger, agentID int64, msg string, err error) // HandleIOError can be used to handle I/O error produced by gRPC Send(), Recv() methods or any other I/O error. // It returns an error, compatible with gRPC status package. HandleIOError(log *zap.Logger, msg string, err error) error // PollWithBackoff runs f every duration given by BackoffManager. // // PollWithBackoff should be used by the top-level polling, so that it can be gracefully interrupted // by the server when necessary. E.g. when stream is nearing it's max connection age or program needs to // be shut down. // If sliding is true, the period is computed after f runs. If it is false then // period includes the runtime for f. // It returns when: // - stream's context is canceled or max connection age has been reached. nil is returned in this case. // - f returns Done. error from f is returned in this case. PollWithBackoff(cfg retry.PollConfig, f retry.PollWithBackoffFunc) error }
RPCAPI provides the API for the module's gRPC handlers to use.
func RPCAPIFromContext ¶
type RPCAPIStub ¶
func (*RPCAPIStub) Log ¶
func (a *RPCAPIStub) Log() *zap.Logger
func (*RPCAPIStub) PollWithBackoff ¶
func (a *RPCAPIStub) PollWithBackoff(cfg retry.PollConfig, f retry.PollWithBackoffFunc) error
Click to show internal directories.
Click to hide internal directories.