Documentation ¶
Index ¶
- Constants
- Variables
- func Chunk(data []byte, chunkSize int) [][]byte
- func ChunkReader(r io.Reader, f func([]byte) error) (int, error)
- func GetBuffer() []byte
- func NewStreamingBytesReader(streamingBytesClient StreamingBytesClient) io.Reader
- func NewStreamingBytesWriter(streamingBytesServer StreamingBytesServer) io.Writer
- func PutBuffer(buf []byte)
- func ScrubGRPC(err error) error
- func Serve(servers ...ServerOptions) (retErr error)
- func WriteFromStreamingBytesClient(streamingBytesClient StreamingBytesClient, writer io.Writer) error
- func WriteToStreamingBytesServer(reader io.Reader, streamingBytesServer StreamingBytesServer) error
- type Dialer
- type ReaderWrapper
- type ServerOptions
- type StreamingBytesClient
- type StreamingBytesServer
Constants ¶
const ( // TLSVolumePath is the path at which the tls cert and private key (if any) // will be mounted in the pachd pod TLSVolumePath = "/pachd-tls-cert" // TLSCertFile is the name of the mounted file containing a TLS certificate // that identifies pachd TLSCertFile = "tls.crt" // TLSKeyFile is the name of the mounted file containing a private key // corresponding to the public certificate in TLSCertFile TLSKeyFile = "tls.key" )
Variables ¶
var ( // ErrMustSpecifyRegisterFunc is used when a register func is nil. ErrMustSpecifyRegisterFunc = errors.New("must specify registerFunc") // ErrMustSpecifyPort is used when a port is 0 ErrMustSpecifyPort = errors.New("must specify port on which to serve") )
var (
// MaxMsgSize is used to define the GRPC frame size
MaxMsgSize = 20 * 1024 * 1024
)
Functions ¶
func Chunk ¶ added in v1.4.5
Chunk splits a piece of data up, this is useful for splitting up data that's bigger than MaxMsgSize
func ChunkReader ¶ added in v1.4.6
ChunkReader splits a reader into reasonably sized chunks for the purpose of transmitting the chunks over gRPC. For each chunk, it calls the given function.
func GetBuffer ¶ added in v1.4.6
func GetBuffer() []byte
GetBuffer returns a buffer. The buffer may or may not be freshly allocated, and it may or may not be zero-ed.
func NewStreamingBytesReader ¶ added in v1.3.5
func NewStreamingBytesReader(streamingBytesClient StreamingBytesClient) io.Reader
NewStreamingBytesReader returns an io.Reader for a StreamingBytesClient.
func NewStreamingBytesWriter ¶ added in v1.3.5
func NewStreamingBytesWriter(streamingBytesServer StreamingBytesServer) io.Writer
NewStreamingBytesWriter returns an io.Writer for a StreamingBytesServer.
func PutBuffer ¶ added in v1.4.6
func PutBuffer(buf []byte)
PutBuffer returns the buffer to the pool.
func ScrubGRPC ¶ added in v1.6.0
ScrubGRPC removes GRPC error code information from 'err' if it came from GRPC (and returns it unchanged otherwise)
func Serve ¶ added in v1.3.5
func Serve( servers ...ServerOptions, ) (retErr error)
Serve serves stuff.
func WriteFromStreamingBytesClient ¶ added in v1.3.5
func WriteFromStreamingBytesClient(streamingBytesClient StreamingBytesClient, writer io.Writer) error
WriteFromStreamingBytesClient writes from the StreamingBytesClient to the io.Writer.
func WriteToStreamingBytesServer ¶ added in v1.3.5
func WriteToStreamingBytesServer(reader io.Reader, streamingBytesServer StreamingBytesServer) error
WriteToStreamingBytesServer writes the data from the io.Reader to the StreamingBytesServer.
Types ¶
type Dialer ¶
type Dialer interface { Dial(address string) (*grpc.ClientConn, error) CloseConns() error }
Dialer defines a grpc.ClientConn connection dialer.
type ReaderWrapper ¶ added in v1.6.0
ReaderWrapper wraps a reader for the following reason: Go's io.CopyBuffer has an annoying optimization wherein if the reader has the WriteTo function defined, it doesn't actually use the given buffer. As a result, we might write a large chunk to the gRPC streaming server even though we intend to use a small buffer. Therefore we wrap readers in this wrapper so that only Read is defined.
type ServerOptions ¶ added in v1.7.4
type ServerOptions struct { Port uint16 MaxMsgSize int Cancel chan struct{} RegisterFunc func(*grpc.Server) error // If set, grpcutil may enable TLS. This should be set for public ports that // serve GRPC services to 3rd party clients. // // If set, the criterion for actually serving over TLS is: // if a signed TLS cert and corresponding private key in 'TLSVolumePath', // this will serve GRPC traffic over TLS. If either are missing this will // serve GRPC traffic over unencrypted HTTP, // // TODO make the TLS cert and key path a parameter, as pachd will need // multiple certificates for multiple ports PublicPortTLSAllowed bool }
ServerOptions represent optional fields for serving.
type StreamingBytesClient ¶ added in v1.3.5
type StreamingBytesClient interface {
Recv() (*types.BytesValue, error)
}
StreamingBytesClient represents a client for an rpc method of the form:
rpc Foo(Bar) returns (stream google.protobuf.BytesValue) {}
type StreamingBytesServer ¶ added in v1.3.5
type StreamingBytesServer interface {
Send(bytesValue *types.BytesValue) error
}
StreamingBytesServer represents a server for an rpc method of the form:
rpc Foo(Bar) returns (stream google.protobuf.BytesValue) {}