stream

package
v0.26.0 Latest Latest
Warning

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

Go to latest
Published: May 28, 2024 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 any) error

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

func SendAll

func SendAll(s Sender, in any) error

SendAll sends all the messages from a given input.

func SendAndRecvAll

func SendAndRecvAll(sr SendReceiver, in any, out any) 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 any) error

RecvMsg returns the messages in buffer.

func (*Buffer) SendMsg

func (b *Buffer) SendMsg(m any) error

SendMsg persists the message into the Buffer.

type Receiver

type Receiver interface {
	RecvMsg(m any) 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 any) error
}

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

type Stream

type Stream interface {
	Context() context.Context
	SetHeader(md metadata.MD) error
	SendHeader(md metadata.MD) error
	SetTrailer(md 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 any) error

RecvMsg satisfies Stream interface.

func (*WrappedStream) SendMsg

func (s *WrappedStream) SendMsg(m any) 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