larking

package
v0.2.10-113 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2024 License: Apache-2.0 Imports: 65 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AsHTTPBodyReader

func AsHTTPBodyReader(stream grpc.ServerStream, msg proto.Message) (body io.Reader, err error)

AsHTTPBodyReader returns the reader of a stream of google.api.HttpBody. The first message will be unmarshalled into msg excluding the data field. The returned reader is only valid during the lifetime of the RPC.

func AsHTTPBodyWriter

func AsHTTPBodyWriter(stream grpc.ServerStream, msg proto.Message) (body io.Writer, err error)

AsHTTPBodyWriter returns the writer of a stream of google.api.HttpBody. The first message will be marshalled from msg excluding the data field. The returned writer is only valid during the lifetime of the RPC.

func Bool

func Bool(val string) (bool, error)

Bool converts the given string representation of a boolean value into bool.

func BoolSlice

func BoolSlice(val, sep string) ([]bool, error)

BoolSlice converts 'val' where individual booleans are separated by 'sep' into a bool slice.

func BoolValue

func BoolValue(val string) (*wrapperspb.BoolValue, error)

BoolValue well-known type support as wrapper around bool type

func Bytes

func Bytes(val string) ([]byte, error)

Bytes converts the given string representation of a byte sequence into a slice of bytes A bytes sequence is encoded in URL-safe base64 without padding

func BytesSlice

func BytesSlice(val, sep string) ([][]byte, error)

BytesSlice converts 'val' where individual bytes sequences, encoded in URL-safe base64 without padding, are separated by 'sep' into a slice of bytes slices slice.

func BytesValue

func BytesValue(val string) (*wrapperspb.BytesValue, error)

BytesValue well-known type support as wrapper around bytes[] type

func DoubleValue

func DoubleValue(val string) (*wrapperspb.DoubleValue, error)

DoubleValue well-known type support as wrapper around float64 type

func Duration

func Duration(val string) (*durationpb.Duration, error)

Duration converts the given string into a timestamp.Duration.

func Enum

func Enum(val string, enumValMap map[string]int32) (int32, error)

Enum converts the given string into an int32 that should be type casted into the correct enum proto type.

func EnumSlice

func EnumSlice(val, sep string, enumValMap map[string]int32) ([]int32, error)

EnumSlice converts 'val' where individual enums are separated by 'sep' into a int32 slice. Each individual int32 should be type casted into the correct enum proto type.

func Float32

func Float32(val string) (float32, error)

Float32 converts the given string representation of a floating point number into float32.

func Float32Slice

func Float32Slice(val, sep string) ([]float32, error)

Float32Slice converts 'val' where individual floating point numbers are separated by 'sep' into a float32 slice.

func Float64

func Float64(val string) (float64, error)

Float64 converts the given string representation into representation of a floating point number into float64.

func Float64Slice

func Float64Slice(val, sep string) ([]float64, error)

Float64Slice converts 'val' where individual floating point numbers are separated by 'sep' into a float64 slice.

func FloatValue

func FloatValue(val string) (*wrapperspb.FloatValue, error)

FloatValue well-known type support as wrapper around float32 type

func HTTPStatusCode

func HTTPStatusCode(c codes.Code) int

func Int32

func Int32(val string) (int32, error)

Int32 converts the given string representation of an integer into int32.

func Int32Slice

func Int32Slice(val, sep string) ([]int32, error)

Int32Slice converts 'val' where individual integers are separated by 'sep' into a int32 slice.

func Int32Value

func Int32Value(val string) (*wrapperspb.Int32Value, error)

Int32Value well-known type support as wrapper around int32 type

func Int64

func Int64(val string) (int64, error)

Int64 converts the given string representation of an integer into int64.

func Int64Slice

func Int64Slice(val, sep string) ([]int64, error)

Int64Slice converts 'val' where individual integers are separated by 'sep' into a int64 slice.

func Int64Value

func Int64Value(val string) (*wrapperspb.Int64Value, error)

Int64Value well-known type support as wrapper around int64 type

func NewOSSignalContext

func NewOSSignalContext(ctx context.Context) (context.Context, func())

NewOSSignalContext tries to gracefully handle OS closure.

func NewServer

func NewServer(mux *Mux, opts ...ServerOption) (*http.Server, error)

NewServer creates a new http.Server with http2 support. The server is configured with the given options. It is a convenience function for creating a new http.Server.

func NewStreamContext

func NewStreamContext(ctxFn NewContextFunc) grpc.StreamServerInterceptor

NewStreamContext returns a StreamServerInterceptor that calls ctxFn to create a new context for each request.

func NewUnaryContext

func NewUnaryContext(ctxFn NewContextFunc) grpc.UnaryServerInterceptor

NewUnaryContext returns a UnaryServerInterceptor that calls ctxFn to create a new context for each request.

func PopulateFieldFromPath

func PopulateFieldFromPath(msg proto.Message, fieldPathString string, value string) error

PopulateFieldFromPath sets a value in a nested Protobuf structure.

func PopulateQueryParameters

func PopulateQueryParameters(msg proto.Message, values url.Values, filter *utilities.DoubleArray) error

PopulateQueryParameters parses query parameters into "msg" using current query parser

func String

func String(val string) (string, error)

String just returns the given string. It is just for compatibility to other types.

func StringSlice

func StringSlice(val, sep string) ([]string, error)

StringSlice converts 'val' where individual strings are separated by 'sep' into a string slice.

func StringValue

func StringValue(val string) (*wrapperspb.StringValue, error)

StringValue well-known type support as wrapper around string type

func Timestamp

func Timestamp(val string) (*timestamppb.Timestamp, error)

Timestamp converts the given RFC3339 formatted string into a timestamp.Timestamp.

func UInt32Value

func UInt32Value(val string) (*wrapperspb.UInt32Value, error)

UInt32Value well-known type support as wrapper around uint32 type

func UInt64Value

func UInt64Value(val string) (*wrapperspb.UInt64Value, error)

UInt64Value well-known type support as wrapper around uint64 type

func Uint32

func Uint32(val string) (uint32, error)

Uint32 converts the given string representation of an integer into uint32.

func Uint32Slice

func Uint32Slice(val, sep string) ([]uint32, error)

Uint32Slice converts 'val' where individual integers are separated by 'sep' into a uint32 slice.

func Uint64

func Uint64(val string) (uint64, error)

Uint64 converts the given string representation of an integer into uint64.

func Uint64Slice

func Uint64Slice(val, sep string) ([]uint64, error)

Uint64Slice converts 'val' where individual integers are separated by 'sep' into a uint64 slice.

func WSStatusCode

func WSStatusCode(c codes.Code) ws.StatusCode

Types

type Codec

type Codec interface {
	encoding.Codec
	// MarshalAppend appends the marshaled form of v to b and returns the result.
	MarshalAppend([]byte, interface{}) ([]byte, error)
}

Codec defines the interface used to encode and decode messages.

type CodecJSON

CodecJSON is a Codec implementation with protobuf json format.

func (CodecJSON) Marshal

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

func (CodecJSON) MarshalAppend

func (c CodecJSON) MarshalAppend(b []byte, v interface{}) ([]byte, error)

func (CodecJSON) Name

func (CodecJSON) Name() string

func (CodecJSON) ReadNext

func (c CodecJSON) ReadNext(b []byte, r io.Reader, limit int) ([]byte, int, error)

ReadNext reads the length of the message around the json object. It reads until it finds a matching number of braces. It does not validate the JSON.

func (CodecJSON) Unmarshal

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

func (CodecJSON) WriteNext

func (c CodecJSON) WriteNext(w io.Writer, b []byte) (int, error)

WriteNext writes the raw JSON message to w without any size prefix.

type CodecProto

type CodecProto struct {
	proto.MarshalOptions
}

CodecProto is a Codec implementation with protobuf binary format.

func (CodecProto) Marshal

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

func (CodecProto) MarshalAppend

func (c CodecProto) MarshalAppend(b []byte, v interface{}) ([]byte, error)

func (CodecProto) Name

func (CodecProto) Name() string

Name == "proto" overwritting internal proto codec

func (CodecProto) ReadNext

func (c CodecProto) ReadNext(b []byte, r io.Reader, limit int) ([]byte, int, error)

ReadNext reads a varint size-delimited wire-format message from r.

func (CodecProto) Unmarshal

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

func (CodecProto) WriteNext

func (c CodecProto) WriteNext(w io.Writer, b []byte) (int, error)

WriteNext writes the length of the message encoded as 4 byte unsigned integer and then writes the message to w.

type Compressor

type Compressor interface {
	encoding.Compressor
}

Compressor is used to compress and decompress messages. Based on grpc/encoding.

type CompressorGzip

type CompressorGzip struct {
	Level *int
	// contains filtered or unexported fields
}

CompressorGzip implements the Compressor interface. Based on grpc/encoding/gzip.

func (*CompressorGzip) Compress

func (c *CompressorGzip) Compress(w io.Writer) (io.WriteCloser, error)

Compress implements the Compressor interface.

func (*CompressorGzip) Decompress

func (c *CompressorGzip) Decompress(r io.Reader) (io.Reader, error)

Decompress implements the Compressor interface.

func (*CompressorGzip) Name

func (*CompressorGzip) Name() string

Name returns gzip.

type DefaultQueryParser

type DefaultQueryParser struct{}

DefaultQueryParser is a QueryParameterParser which implements the default query parameters parsing behavior.

See https://github.com/grpc-ecosystem/grpc-gateway/issues/2632 for more context.

func (*DefaultQueryParser) Parse

func (*DefaultQueryParser) Parse(msg proto.Message, values url.Values, filter *utilities.DoubleArray) error

Parse populates "values" into "msg". A value is ignored if its key starts with one of the elements in "filter".

type Mux

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

func NewMux

func NewMux(opts ...MuxOption) (*Mux, error)

func (*Mux) DropConn

func (m *Mux) DropConn(ctx context.Context, cc *grpc.ClientConn) bool

func (*Mux) RegisterConn

func (m *Mux) RegisterConn(ctx context.Context, cc *grpc.ClientConn) error

func (*Mux) RegisterReflectionServer

func (m *Mux) RegisterReflectionServer(s *grpc.Server)

RegisterReflectionServer registers the server reflection service for multiple proxied gRPC servers. Each individual reflection stream is merged to provide a consistent view at the point of stream creation.

func (*Mux) RegisterService

func (m *Mux) RegisterService(sd *grpc.ServiceDesc, ss interface{})

RegisterService satisfies grpc.ServiceRegistrar for generated service code hooks.

func (*Mux) ServeHTTP

func (m *Mux) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP implements http.Handler. It supports both gRPC and HTTP requests.

type MuxOption

type MuxOption func(*muxOptions)

MuxOption is an option for a mux.

func CodecOption

func CodecOption(contentType string, c Codec) MuxOption

CodecOption registers a codec for the given content type.

func CompressorOption

func CompressorOption(contentEncoding string, c Compressor) MuxOption

CompressorOption registers a compressor for the given content encoding.

func ConnectionTimeoutOption

func ConnectionTimeoutOption(d time.Duration) MuxOption

func FilesOption

func FilesOption(f *protoregistry.Files) MuxOption

func MaxReceiveMessageSizeOption

func MaxReceiveMessageSizeOption(s int) MuxOption

func MaxSendMessageSizeOption

func MaxSendMessageSizeOption(s int) MuxOption

func ServiceConfigOption

func ServiceConfigOption(sc *serviceconfig.Service) MuxOption

ServiceConfigOption sets the service config for the mux. Currently only http rules will be used to annotate services.

func StatsOption

func StatsOption(h stats.Handler) MuxOption

func StreamServerInterceptorOption

func StreamServerInterceptorOption(interceptor grpc.StreamServerInterceptor) MuxOption

func UnaryServerInterceptorOption

func UnaryServerInterceptorOption(interceptor grpc.UnaryServerInterceptor) MuxOption

type NewContextFunc

type NewContextFunc func(ctx context.Context, fullMethod string, isClientStream, isServerStream bool) context.Context

NewContextFunc is a function that creates a new context for a request. The returned context is used for the duration of the request.

type QueryParameterParser

type QueryParameterParser interface {
	Parse(msg proto.Message, values url.Values, filter *utilities.DoubleArray) error
}

QueryParameterParser defines interface for all query parameter parsers

type ServerOption

type ServerOption func(*serverOptions) error

ServerOption is similar to grpc.ServerOption.

func HTTPHandlerOption

func HTTPHandlerOption(pattern string, handler http.Handler) ServerOption

func MuxHandleOption

func MuxHandleOption(patterns ...string) ServerOption

func TLSCredsOption

func TLSCredsOption(c *tls.Config) ServerOption

type StreamCodec

type StreamCodec interface {
	Codec

	// ReadNext returns the size of the next message appended to buf.
	// ReadNext reads from r until either it has read a complete message or
	// encountered an error and returns all the data read from r.
	// The message is contained in dst[:n].
	// Excess data read from r is stored in dst[n:].
	ReadNext(buf []byte, r io.Reader, limit int) (dst []byte, n int, err error)
	// WriteNext writes the message to w with a size aware encoding
	// returning the number of bytes written.
	WriteNext(w io.Writer, src []byte) (n int, err error)
}

StreamCodec is used in streaming RPCs where the message boundaries are determined by the codec.

Jump to

Keyboard shortcuts

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