grpctool

package
v14.3.2 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2021 License: MIT Imports: 44 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MetadataAuthorization = "authorization"
)

Variables

View Source
var File_internal_tool_grpctool_grpctool_proto protoreflect.FileDescriptor

Functions

func AddMaxConnectionAgeContext added in v14.2.0

func AddMaxConnectionAgeContext(ctx, ageCtx context.Context) context.Context

func DeferMaybeWrapWithCorrelationId added in v14.1.0

func DeferMaybeWrapWithCorrelationId(err *error, client grpc.ClientStream)

func HandleSendError added in v14.3.2

func HandleSendError(log *zap.Logger, msg string, err error) error

func IsStatusError

func IsStatusError(err error) bool

func MaxConnectionAge2GrpcKeepalive added in v14.1.0

func MaxConnectionAge2GrpcKeepalive(auxCtx context.Context, maxConnectionAge time.Duration) (grpc.ServerOption, stats.Handler)

func MaxConnectionAgeContextFromStreamContext added in v14.2.0

func MaxConnectionAgeContextFromStreamContext(streamCtx context.Context) context.Context

func MaybeWrapWithCorrelationId added in v14.1.0

func MaybeWrapWithCorrelationId(err error, client grpc.ClientStream) error

func MetaToValuesMap

func MetaToValuesMap(meta metadata.MD) map[string]*prototool.Values

func NewJoinStatHandlers added in v14.2.0

func NewJoinStatHandlers(handlers ...stats.Handler) stats.Handler

func NewMaxConnAgeStatsHandler added in v14.2.0

func NewMaxConnAgeStatsHandler(auxCtx context.Context, maxConnectionAge time.Duration) stats.Handler

func NewTokenCredentials

func NewTokenCredentials(token api.AgentToken, insecure bool) credentials.PerRPCCredentials

func RequestCanceled

func RequestCanceled(err error) bool

func RequestCanceledOrTimedOut added in v14.3.2

func RequestCanceledOrTimedOut(err error) bool

func RequestTimedOut added in v14.3.2

func RequestTimedOut(err error) bool

func SplitGrpcMethod added in v14.2.0

func SplitGrpcMethod(fullMethodName string) (string, string)

func StartServer

func StartServer(stage stager.Stage, server *grpc.Server, listener func() (net.Listener, error))

func StreamClientLimitingInterceptor

func StreamClientLimitingInterceptor(limiter ClientLimiter) grpc.StreamClientInterceptor

StreamClientLimitingInterceptor returns a new stream server interceptor that performs rate limiting on the request.

func StreamClientValidatingInterceptor

func StreamClientValidatingInterceptor(parentCtx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error)

StreamClientValidatingInterceptor is a stream client interceptor that performs response stream validation.

func StreamServerLimitingInterceptor

func StreamServerLimitingInterceptor(limiter ServerLimiter) grpc.StreamServerInterceptor

StreamServerLimitingInterceptor returns a new stream server interceptor that performs limiting based on the given context

func UnaryClientLimitingInterceptor

func UnaryClientLimitingInterceptor(limiter ClientLimiter) grpc.UnaryClientInterceptor

UnaryClientLimitingInterceptor returns a new unary client interceptor that performs request rate limiting.

func UnaryClientValidatingInterceptor

func UnaryClientValidatingInterceptor(parentCtx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error

UnaryClientValidatingInterceptor is a unary client interceptor that performs response validation.

func UnaryServerLimitingInterceptor

func UnaryServerLimitingInterceptor(limiter ServerLimiter) grpc.UnaryServerInterceptor

UnaryServerLimitingInterceptor returns a new unary server interceptor that performs limiting based on the given context

func ValuesMapToMeta

func ValuesMapToMeta(vals map[string]*prototool.Values) metadata.MD

Types

type ClientLimiter

type ClientLimiter interface {
	// Wait blocks until limiter permits an event to happen.
	// It returns an error if the Context is
	// canceled, or the expected wait time exceeds the Context's Deadline.
	Wait(context.Context) error
}

ClientLimiter defines the interface to perform client-side request rate limiting. You can use golang.org/x/time/rate.Limiter as an implementation of this interface.

type DialListener

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

func NewDialListener

func NewDialListener() *DialListener

func (*DialListener) Accept

func (l *DialListener) Accept() (net.Conn, error)

func (*DialListener) Addr

func (l *DialListener) Addr() net.Addr

func (*DialListener) Close

func (l *DialListener) Close() error

func (*DialListener) DialContext

func (l *DialListener) DialContext(ctx context.Context, addr string) (net.Conn, error)

type EOFCallback

type EOFCallback func() error

type HttpDo

type HttpDo func(ctx context.Context, header *HttpRequest_Header, body io.Reader) (*http.Response, error)

type HttpRequest

type HttpRequest struct {

	// Types that are assignable to Message:
	//	*HttpRequest_Header_
	//	*HttpRequest_Data_
	//	*HttpRequest_Trailer_
	Message isHttpRequest_Message `protobuf_oneof:"message"`
	// contains filtered or unexported fields
}

func (*HttpRequest) Descriptor deprecated

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

Deprecated: Use HttpRequest.ProtoReflect.Descriptor instead.

func (*HttpRequest) GetData

func (x *HttpRequest) GetData() *HttpRequest_Data

func (*HttpRequest) GetHeader

func (x *HttpRequest) GetHeader() *HttpRequest_Header

func (*HttpRequest) GetMessage

func (m *HttpRequest) GetMessage() isHttpRequest_Message

func (*HttpRequest) GetTrailer

func (x *HttpRequest) GetTrailer() *HttpRequest_Trailer

func (*HttpRequest) ProtoMessage

func (*HttpRequest) ProtoMessage()

func (*HttpRequest) ProtoReflect

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

func (*HttpRequest) Reset

func (x *HttpRequest) Reset()

func (*HttpRequest) String

func (x *HttpRequest) String() string

func (*HttpRequest) Validate

func (m *HttpRequest) Validate() error

Validate checks the field values on HttpRequest with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HttpRequestValidationError

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

HttpRequestValidationError is the validation error returned by HttpRequest.Validate if the designated constraints aren't met.

func (HttpRequestValidationError) Cause

Cause function returns cause value.

func (HttpRequestValidationError) Error

Error satisfies the builtin error interface

func (HttpRequestValidationError) ErrorName

func (e HttpRequestValidationError) ErrorName() string

ErrorName returns error name.

func (HttpRequestValidationError) Field

Field function returns field value.

func (HttpRequestValidationError) Key

Key function returns key value.

func (HttpRequestValidationError) Reason

Reason function returns reason value.

type HttpRequest_Data

type HttpRequest_Data struct {
	Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	// contains filtered or unexported fields
}

func (*HttpRequest_Data) Descriptor deprecated

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

Deprecated: Use HttpRequest_Data.ProtoReflect.Descriptor instead.

func (*HttpRequest_Data) GetData

func (x *HttpRequest_Data) GetData() []byte

func (*HttpRequest_Data) ProtoMessage

func (*HttpRequest_Data) ProtoMessage()

func (*HttpRequest_Data) ProtoReflect

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

func (*HttpRequest_Data) Reset

func (x *HttpRequest_Data) Reset()

func (*HttpRequest_Data) String

func (x *HttpRequest_Data) String() string

func (*HttpRequest_Data) Validate

func (m *HttpRequest_Data) Validate() error

Validate checks the field values on HttpRequest_Data with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HttpRequest_DataValidationError

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

HttpRequest_DataValidationError is the validation error returned by HttpRequest_Data.Validate if the designated constraints aren't met.

func (HttpRequest_DataValidationError) Cause

Cause function returns cause value.

func (HttpRequest_DataValidationError) Error

Error satisfies the builtin error interface

func (HttpRequest_DataValidationError) ErrorName

ErrorName returns error name.

func (HttpRequest_DataValidationError) Field

Field function returns field value.

func (HttpRequest_DataValidationError) Key

Key function returns key value.

func (HttpRequest_DataValidationError) Reason

Reason function returns reason value.

type HttpRequest_Data_

type HttpRequest_Data_ struct {
	Data *HttpRequest_Data `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

type HttpRequest_Header

type HttpRequest_Header struct {
	Request *prototool.HttpRequest `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
	Extra   *anypb.Any             `protobuf:"bytes,2,opt,name=extra,proto3" json:"extra,omitempty"`
	// contains filtered or unexported fields
}

func (*HttpRequest_Header) Descriptor deprecated

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

Deprecated: Use HttpRequest_Header.ProtoReflect.Descriptor instead.

func (*HttpRequest_Header) GetExtra

func (x *HttpRequest_Header) GetExtra() *anypb.Any

func (*HttpRequest_Header) GetRequest

func (x *HttpRequest_Header) GetRequest() *prototool.HttpRequest

func (*HttpRequest_Header) ProtoMessage

func (*HttpRequest_Header) ProtoMessage()

func (*HttpRequest_Header) ProtoReflect

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

func (*HttpRequest_Header) Reset

func (x *HttpRequest_Header) Reset()

func (*HttpRequest_Header) String

func (x *HttpRequest_Header) String() string

func (*HttpRequest_Header) Validate

func (m *HttpRequest_Header) Validate() error

Validate checks the field values on HttpRequest_Header with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HttpRequest_HeaderValidationError

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

HttpRequest_HeaderValidationError is the validation error returned by HttpRequest_Header.Validate if the designated constraints aren't met.

func (HttpRequest_HeaderValidationError) Cause

Cause function returns cause value.

func (HttpRequest_HeaderValidationError) Error

Error satisfies the builtin error interface

func (HttpRequest_HeaderValidationError) ErrorName

ErrorName returns error name.

func (HttpRequest_HeaderValidationError) Field

Field function returns field value.

func (HttpRequest_HeaderValidationError) Key

Key function returns key value.

func (HttpRequest_HeaderValidationError) Reason

Reason function returns reason value.

type HttpRequest_Header_

type HttpRequest_Header_ struct {
	Header *HttpRequest_Header `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
}

type HttpRequest_Trailer

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

func (*HttpRequest_Trailer) Descriptor deprecated

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

Deprecated: Use HttpRequest_Trailer.ProtoReflect.Descriptor instead.

func (*HttpRequest_Trailer) ProtoMessage

func (*HttpRequest_Trailer) ProtoMessage()

func (*HttpRequest_Trailer) ProtoReflect

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

func (*HttpRequest_Trailer) Reset

func (x *HttpRequest_Trailer) Reset()

func (*HttpRequest_Trailer) String

func (x *HttpRequest_Trailer) String() string

func (*HttpRequest_Trailer) Validate

func (m *HttpRequest_Trailer) Validate() error

Validate checks the field values on HttpRequest_Trailer with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HttpRequest_TrailerValidationError

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

HttpRequest_TrailerValidationError is the validation error returned by HttpRequest_Trailer.Validate if the designated constraints aren't met.

func (HttpRequest_TrailerValidationError) Cause

Cause function returns cause value.

func (HttpRequest_TrailerValidationError) Error

Error satisfies the builtin error interface

func (HttpRequest_TrailerValidationError) ErrorName

ErrorName returns error name.

func (HttpRequest_TrailerValidationError) Field

Field function returns field value.

func (HttpRequest_TrailerValidationError) Key

Key function returns key value.

func (HttpRequest_TrailerValidationError) Reason

Reason function returns reason value.

type HttpRequest_Trailer_

type HttpRequest_Trailer_ struct {
	Trailer *HttpRequest_Trailer `protobuf:"bytes,3,opt,name=trailer,proto3,oneof"`
}

type HttpResponse

type HttpResponse struct {

	// Types that are assignable to Message:
	//	*HttpResponse_Header_
	//	*HttpResponse_Data_
	//	*HttpResponse_Trailer_
	Message isHttpResponse_Message `protobuf_oneof:"message"`
	// contains filtered or unexported fields
}

func (*HttpResponse) Descriptor deprecated

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

Deprecated: Use HttpResponse.ProtoReflect.Descriptor instead.

func (*HttpResponse) GetData

func (x *HttpResponse) GetData() *HttpResponse_Data

func (*HttpResponse) GetHeader

func (x *HttpResponse) GetHeader() *HttpResponse_Header

func (*HttpResponse) GetMessage

func (m *HttpResponse) GetMessage() isHttpResponse_Message

func (*HttpResponse) GetTrailer

func (x *HttpResponse) GetTrailer() *HttpResponse_Trailer

func (*HttpResponse) ProtoMessage

func (*HttpResponse) ProtoMessage()

func (*HttpResponse) ProtoReflect

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

func (*HttpResponse) Reset

func (x *HttpResponse) Reset()

func (*HttpResponse) String

func (x *HttpResponse) String() string

func (*HttpResponse) Validate

func (m *HttpResponse) Validate() error

Validate checks the field values on HttpResponse with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HttpResponseValidationError

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

HttpResponseValidationError is the validation error returned by HttpResponse.Validate if the designated constraints aren't met.

func (HttpResponseValidationError) Cause

Cause function returns cause value.

func (HttpResponseValidationError) Error

Error satisfies the builtin error interface

func (HttpResponseValidationError) ErrorName

func (e HttpResponseValidationError) ErrorName() string

ErrorName returns error name.

func (HttpResponseValidationError) Field

Field function returns field value.

func (HttpResponseValidationError) Key

Key function returns key value.

func (HttpResponseValidationError) Reason

Reason function returns reason value.

type HttpResponse_Data

type HttpResponse_Data struct {
	Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	// contains filtered or unexported fields
}

func (*HttpResponse_Data) Descriptor deprecated

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

Deprecated: Use HttpResponse_Data.ProtoReflect.Descriptor instead.

func (*HttpResponse_Data) GetData

func (x *HttpResponse_Data) GetData() []byte

func (*HttpResponse_Data) ProtoMessage

func (*HttpResponse_Data) ProtoMessage()

func (*HttpResponse_Data) ProtoReflect

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

func (*HttpResponse_Data) Reset

func (x *HttpResponse_Data) Reset()

func (*HttpResponse_Data) String

func (x *HttpResponse_Data) String() string

func (*HttpResponse_Data) Validate

func (m *HttpResponse_Data) Validate() error

Validate checks the field values on HttpResponse_Data with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HttpResponse_DataValidationError

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

HttpResponse_DataValidationError is the validation error returned by HttpResponse_Data.Validate if the designated constraints aren't met.

func (HttpResponse_DataValidationError) Cause

Cause function returns cause value.

func (HttpResponse_DataValidationError) Error

Error satisfies the builtin error interface

func (HttpResponse_DataValidationError) ErrorName

ErrorName returns error name.

func (HttpResponse_DataValidationError) Field

Field function returns field value.

func (HttpResponse_DataValidationError) Key

Key function returns key value.

func (HttpResponse_DataValidationError) Reason

Reason function returns reason value.

type HttpResponse_Data_

type HttpResponse_Data_ struct {
	Data *HttpResponse_Data `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

type HttpResponse_Header

type HttpResponse_Header struct {
	Response *prototool.HttpResponse `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"`
	// contains filtered or unexported fields
}

func (*HttpResponse_Header) Descriptor deprecated

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

Deprecated: Use HttpResponse_Header.ProtoReflect.Descriptor instead.

func (*HttpResponse_Header) GetResponse

func (x *HttpResponse_Header) GetResponse() *prototool.HttpResponse

func (*HttpResponse_Header) ProtoMessage

func (*HttpResponse_Header) ProtoMessage()

func (*HttpResponse_Header) ProtoReflect

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

func (*HttpResponse_Header) Reset

func (x *HttpResponse_Header) Reset()

func (*HttpResponse_Header) String

func (x *HttpResponse_Header) String() string

func (*HttpResponse_Header) Validate

func (m *HttpResponse_Header) Validate() error

Validate checks the field values on HttpResponse_Header with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HttpResponse_HeaderValidationError

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

HttpResponse_HeaderValidationError is the validation error returned by HttpResponse_Header.Validate if the designated constraints aren't met.

func (HttpResponse_HeaderValidationError) Cause

Cause function returns cause value.

func (HttpResponse_HeaderValidationError) Error

Error satisfies the builtin error interface

func (HttpResponse_HeaderValidationError) ErrorName

ErrorName returns error name.

func (HttpResponse_HeaderValidationError) Field

Field function returns field value.

func (HttpResponse_HeaderValidationError) Key

Key function returns key value.

func (HttpResponse_HeaderValidationError) Reason

Reason function returns reason value.

type HttpResponse_Header_

type HttpResponse_Header_ struct {
	Header *HttpResponse_Header `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
}

type HttpResponse_Trailer

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

func (*HttpResponse_Trailer) Descriptor deprecated

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

Deprecated: Use HttpResponse_Trailer.ProtoReflect.Descriptor instead.

func (*HttpResponse_Trailer) ProtoMessage

func (*HttpResponse_Trailer) ProtoMessage()

func (*HttpResponse_Trailer) ProtoReflect

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

func (*HttpResponse_Trailer) Reset

func (x *HttpResponse_Trailer) Reset()

func (*HttpResponse_Trailer) String

func (x *HttpResponse_Trailer) String() string

func (*HttpResponse_Trailer) Validate

func (m *HttpResponse_Trailer) Validate() error

Validate checks the field values on HttpResponse_Trailer with the rules defined in the proto definition for this message. If any rules are violated, an error is returned.

type HttpResponse_TrailerValidationError

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

HttpResponse_TrailerValidationError is the validation error returned by HttpResponse_Trailer.Validate if the designated constraints aren't met.

func (HttpResponse_TrailerValidationError) Cause

Cause function returns cause value.

func (HttpResponse_TrailerValidationError) Error

Error satisfies the builtin error interface

func (HttpResponse_TrailerValidationError) ErrorName

ErrorName returns error name.

func (HttpResponse_TrailerValidationError) Field

Field function returns field value.

func (HttpResponse_TrailerValidationError) Key

Key function returns key value.

func (HttpResponse_TrailerValidationError) Reason

Reason function returns reason value.

type HttpResponse_Trailer_

type HttpResponse_Trailer_ struct {
	Trailer *HttpResponse_Trailer `protobuf:"bytes,3,opt,name=trailer,proto3,oneof"`
}

type InboundGrpcToOutboundHttp

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

func NewInboundGrpcToOutboundHttp

func NewInboundGrpcToOutboundHttp(httpDo HttpDo) *InboundGrpcToOutboundHttp

func (*InboundGrpcToOutboundHttp) Pipe

type InboundGrpcToOutboundHttpStream

type InboundGrpcToOutboundHttpStream interface {
	Send(*HttpResponse) error
	grpc.ServerStream
}

type InvalidTransitionCallback

type InvalidTransitionCallback func(from, to protoreflect.FieldNumber, allowed []protoreflect.FieldNumber, message proto.Message) error

InvalidTransitionCallback is a callback that is called when an invalid transition is attempted. 'message' is nil when 'to' is eofState.

type JWTAuther

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

func NewJWTAuther

func NewJWTAuther(secret []byte, jwtIssuer, jwtAudience string, loggerFromContext func(context.Context) *zap.Logger) *JWTAuther

func (*JWTAuther) StreamServerInterceptor

func (a *JWTAuther) StreamServerInterceptor(srv interface{}, stream grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error

StreamServerInterceptor returns a new stream server interceptors that performs per-request JWT auth.

func (*JWTAuther) UnaryServerInterceptor

func (a *JWTAuther) UnaryServerInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error)

UnaryServerInterceptor returns a new unary server interceptors that performs per-request JWT auth.

type JwtCredentials

type JwtCredentials struct {
	Secret   []byte
	Audience string
	Issuer   string
	Insecure bool
}

func (*JwtCredentials) GetRequestMetadata

func (c *JwtCredentials) GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error)

func (*JwtCredentials) RequireTransportSecurity

func (c *JwtCredentials) RequireTransportSecurity() bool

type MessageCallback

type MessageCallback interface{}

MessageCallback is a function with signature func(message someConcreteProtoMessage) error someConcreteProtoMessage must be the type passed to NewStreamVisitor().

type RawCodec

type RawCodec struct {
}

RawCodec is a *raw* encoding.Codec. This codec treats a gRPC message frame as raw bytes.

func (RawCodec) Marshal

func (c RawCodec) Marshal(v interface{}) ([]byte, error)

func (RawCodec) Name

func (c RawCodec) Name() string

func (RawCodec) Unmarshal

func (c RawCodec) Unmarshal(data []byte, v interface{}) error

type RawCodecWithProtoFallback

type RawCodecWithProtoFallback struct {
}

RawCodecWithProtoFallback is a *raw* encoding.Codec. This codec treats a gRPC message as raw bytes if it's RawFrame and falls back to default proto encoding for other message types.

func (RawCodecWithProtoFallback) Marshal

func (c RawCodecWithProtoFallback) Marshal(v interface{}) ([]byte, error)

func (RawCodecWithProtoFallback) Name

func (RawCodecWithProtoFallback) Unmarshal

func (c RawCodecWithProtoFallback) Unmarshal(data []byte, v interface{}) error

type RawFrame

type RawFrame struct {
	Data []byte
}

type RpcApi added in v14.2.0

type RpcApi interface {
	Log() *zap.Logger
	HandleProcessingError(log *zap.Logger, agentId int64, msg string, err error)
	HandleSendError(log *zap.Logger, msg string, err error) error
}

RpcApi is a reduced version on modshared.RpcApi. It's here to avoid the dependency.

type ServerLimiter

type ServerLimiter interface {
	// Allow should return true and consume one "limitable event" if the limit has not been exceeded. Otherwise, it returns false and does not count towards the limit
	Allow(ctx context.Context) bool
}

ServerLimiter defines the interface to perform server-side request rate limiting. Inspired by golang.org/x/time/rate.Limiter, but accepts a context

type Stream

type Stream interface {
	RecvMsg(m interface{}) error
}

Stream is a grpc.ServerStream or grpc.ClientStream.

type StreamVisitor

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

StreamVisitor allows to consume messages in a gRPC stream. Message order should follow the automata, defined on fields in a oneof group.

func NewStreamVisitor

func NewStreamVisitor(streamMessage proto.Message) (*StreamVisitor, error)

func (*StreamVisitor) Visit

func (s *StreamVisitor) Visit(stream Stream, opts ...StreamVisitorOption) error

type StreamVisitorOption

type StreamVisitorOption func(*config) error

func WithCallback

func WithCallback(transitionTo protoreflect.FieldNumber, cb MessageCallback) StreamVisitorOption

WithCallback registers cb to be called when entering transitionTo when parsing the stream. Only one callback can be registered per target

func WithEOFCallback

func WithEOFCallback(cb EOFCallback) StreamVisitorOption

func WithStartState

func WithStartState(startState protoreflect.FieldNumber) StreamVisitorOption

WithStartState allows to specify a custom automata start state. The visitor then acts as if it has just visited field with startState number.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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