stream_drpc_client

package
v0.9.8 Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2023 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLength        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflow          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroup = fmt.Errorf("proto: unexpected end of group")
)
View Source
var File_github_com_aperturerobotics_bifrost_stream_drpc_client_client_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type Client

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

Client is a common drpc client implementation.

func NewClient

func NewClient(le *logrus.Entry, b bus.Bus, c *Config) (*Client, error)

NewClient constructs a new client.

func (*Client) BuildTimeoutCtx

func (c *Client) BuildTimeoutCtx(ctx context.Context) (context.Context, context.CancelFunc)

BuildTimeoutCtx builds a context with the configured timeout.

func (*Client) ExecuteConnection

func (c *Client) ExecuteConnection(
	ctx context.Context,
	protocolID protocol.ID,
	cb func(conn *drpcconn.Conn) (next bool, err error),
) error

ExecuteConnection attempts to contact one of the configured servers and execute the given callback, which should construct & use drpc clients.

Callback should return nextServer, err. If next=true is returned, tries another server.

type Config

type Config struct {

	// ServerPeerIds are the static list of peer IDs to contact.
	ServerPeerIds []string `protobuf:"bytes,1,rep,name=server_peer_ids,json=serverPeerIds,proto3" json:"server_peer_ids,omitempty"`
	// PerServerBackoff is the server peer error backoff configuration.
	// Can be empty.
	PerServerBackoff *backoff.Backoff `protobuf:"bytes,2,opt,name=per_server_backoff,json=perServerBackoff,proto3" json:"per_server_backoff,omitempty"`
	// SrcPeerId is the source peer id to contact from.
	// Can be empty.
	SrcPeerId string `protobuf:"bytes,3,opt,name=src_peer_id,json=srcPeerId,proto3" json:"src_peer_id,omitempty"`
	// TransportId restricts which transport we can dial out from.
	TransportId uint64 `protobuf:"varint,4,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"`
	// DrpcOpts are options passed to drpc.
	DrpcOpts *drpc.DrpcOpts `protobuf:"bytes,5,opt,name=drpc_opts,json=drpcOpts,proto3" json:"drpc_opts,omitempty"`
	// TimeoutDur sets the per-server establish timeout.
	// If unset, no timeout.
	// Example: 15s
	TimeoutDur string `protobuf:"bytes,6,opt,name=timeout_dur,json=timeoutDur,proto3" json:"timeout_dur,omitempty"`
	// contains filtered or unexported fields
}

Config configures a client for a drpc service.

func (*Config) CloneGenericVT added in v0.8.3

func (m *Config) CloneGenericVT() proto.Message

func (*Config) CloneVT added in v0.8.3

func (m *Config) CloneVT() *Config

func (*Config) Descriptor deprecated

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

Deprecated: Use Config.ProtoReflect.Descriptor instead.

func (*Config) EqualVT added in v0.3.0

func (this *Config) EqualVT(that *Config) bool

func (*Config) GetDrpcOpts

func (x *Config) GetDrpcOpts() *drpc.DrpcOpts

func (*Config) GetPerServerBackoff

func (x *Config) GetPerServerBackoff() *backoff.Backoff

func (*Config) GetServerPeerIds

func (x *Config) GetServerPeerIds() []string

func (*Config) GetSrcPeerId

func (x *Config) GetSrcPeerId() string

func (*Config) GetTimeoutDur

func (x *Config) GetTimeoutDur() string

func (*Config) GetTransportId

func (x *Config) GetTransportId() uint64

func (*Config) MarshalToSizedBufferVT added in v0.2.0

func (m *Config) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*Config) MarshalToVT added in v0.2.0

func (m *Config) MarshalToVT(dAtA []byte) (int, error)

func (*Config) MarshalVT added in v0.2.0

func (m *Config) MarshalVT() (dAtA []byte, err error)

func (*Config) ParseServerPeerIds

func (c *Config) ParseServerPeerIds() ([]peer.ID, error)

ParseServerPeerIds parses the destination peer ids

func (*Config) ParseSrcPeerId

func (c *Config) ParseSrcPeerId() (peer.ID, error)

ParseSrcPeerId parses the source peer id, if set.

func (*Config) ParseTimeoutDur

func (c *Config) ParseTimeoutDur() (time.Duration, error)

ParseTimeoutDur parses the timeout duration. returns zero if empty

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) ProtoReflect added in v0.2.0

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

func (*Config) Reset

func (x *Config) Reset()

func (*Config) SizeVT added in v0.2.0

func (m *Config) SizeVT() (n int)

func (*Config) String

func (x *Config) String() string

func (*Config) UnmarshalVT added in v0.2.0

func (m *Config) UnmarshalVT(dAtA []byte) error

func (*Config) Validate

func (c *Config) Validate() error

Validate validates the config.

Jump to

Keyboard shortcuts

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