stream

package
v0.23.0 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package stream provides functions to send or receive messages using a grpc stream.

Index

Constants

View Source
const ErrInvalidProtoMessage err = "not a proto message"

ErrInvalidProtoMessage indicates that the object is not a proto message.

Variables

This section is empty.

Functions

func CloseSend

func CloseSend(s Sender) error

CloseSend closes the send direction of the stream.

func RecvAll

func RecvAll(r Receiver, out interface{}) error

RecvAll reads all messages using a receiver until io.EOF.

func SendAll

func SendAll(s Sender, in interface{}) error

SendAll sends all the messages from a given input.

func SendAndRecvAll

func SendAndRecvAll(sr SendReceiver, in interface{}, out interface{}) error

SendAndRecvAll sends and receives messages until getting io.EOF.

Types

type Buffer

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

Buffer is a buffer of sending and receiving messages.

func (*Buffer) Len

func (b *Buffer) Len() int

Len returns the current length of the buffer.

func (*Buffer) RecvMsg

func (b *Buffer) RecvMsg(m interface{}) error

RecvMsg returns the messages in buffer.

func (*Buffer) SendMsg

func (b *Buffer) SendMsg(m interface{}) error

SendMsg persists the message into the Buffer.

type Receiver

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

Receiver is an interface wrapper around grpc.ClientStream and grpc.ServerStream.

func TeeReceiver

func TeeReceiver(r Receiver, s Sender) Receiver

TeeReceiver returns a Receiver that sends to s what it receives from r.

type SendCloser

type SendCloser interface {
	Sender

	CloseSend() error
}

SendCloser is an interface wrapper around grpc.ClientStream.

type SendReceiver

type SendReceiver interface {
	Sender
	Receiver
}

SendReceiver is an interface wrapper around grpc.ClientStream and grpc.ServerStream.

type Sender

type Sender interface {
	SendMsg(m interface{}) error
}

Sender is an interface wrapper around grpc.ClientStream and grpc.ServerStream.

type Stream

type Stream interface {
	Context() context.Context
	SetHeader(metadata.MD) error
	SendHeader(metadata.MD) error
	SetTrailer(metadata.MD)

	SendReceiver
}

Stream is an interface wrapper around grpc.ClientStream and grpc.ServerStream.

type WrappedStream

type WrappedStream struct {
	Stream
	// contains filtered or unexported fields
}

WrappedStream is a wrapper around the Stream.

func Wrap

func Wrap(stream Stream) *WrappedStream

Wrap initiates a wrapped stream.

func (*WrappedStream) RecvMsg

func (s *WrappedStream) RecvMsg(m interface{}) error

RecvMsg satisfies Stream interface.

func (*WrappedStream) SendMsg

func (s *WrappedStream) SendMsg(m interface{}) error

SendMsg satisfies Stream interface.

func (*WrappedStream) WithReceiver

func (s *WrappedStream) WithReceiver(rc Receiver) *WrappedStream

WithReceiver wraps the stream with a new sender.

func (*WrappedStream) WithSender

func (s *WrappedStream) WithSender(sd Sender) *WrappedStream

WithSender wraps the stream with a new sender.

Jump to

Keyboard shortcuts

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