stream_api_accept

package
v0.4.3 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2022 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const ConfigID = ControllerID

ConfigID is the string used to identify this config object.

View Source
const ControllerID = "bifrost/stream/accept/1"

ControllerID identifies the accept controller.

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_api_accept_accept_proto protoreflect.FileDescriptor
View Source
var Version = semver.MustParse("0.0.1")

Version is the controller version.

Functions

This section is empty.

Types

type Config

type Config struct {

	// LocalPeerId is the peer ID to accept incoming connections with.
	// Can be empty to accept any peer.
	LocalPeerId string `protobuf:"bytes,1,opt,name=local_peer_id,json=localPeerId,proto3" json:"local_peer_id,omitempty"`
	// RemotePeerIds are peer IDs to accept incoming connections from.
	// Can be empty to accept any remote peer IDs.
	RemotePeerIds []string `protobuf:"bytes,2,rep,name=remote_peer_ids,json=remotePeerIds,proto3" json:"remote_peer_ids,omitempty"`
	// ProtocolId is the protocol ID to accept.
	ProtocolId string `protobuf:"bytes,3,opt,name=protocol_id,json=protocolId,proto3" json:"protocol_id,omitempty"`
	// TransportId constrains the transport ID to accept from.
	// Can be empty.
	TransportId uint64 `protobuf:"varint,4,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"`
	// contains filtered or unexported fields
}

Config configures the accept controller.

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) EqualsConfig

func (c *Config) EqualsConfig(other config.Config) bool

EqualsConfig checks if the config is equal to another.

func (*Config) GetConfigID

func (c *Config) GetConfigID() string

GetConfigID returns the unique string for this configuration type. This string is stored with the encoded config. Example: bifrost/transport/udp/1

func (*Config) GetLocalPeerId

func (x *Config) GetLocalPeerId() string

func (*Config) GetProtocolId

func (x *Config) GetProtocolId() string

func (*Config) GetRemotePeerIds

func (x *Config) GetRemotePeerIds() []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) ParseLocalPeerID

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

ParseLocalPeerID parses the local peer ID. may return nil.

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 configuration. This is a cursory validation to see if the values "look correct."

type Controller

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

Controller accepts HandleMountedStream via waiting RPC calls and streams data over the request and response streams.

func NewController

func NewController(
	le *logrus.Entry,
	conf *Config,
	bus bus.Bus,
) (*Controller, error)

NewController constructs a new accept controller.

func (*Controller) AttachRPC

func (c *Controller) AttachRPC(rpc stream_api_rpc.RPC) error

AttachRPC attaches a RPC call to the controller.

func (*Controller) Close

func (c *Controller) Close() error

Close releases any resources used by the controller. Error indicates any issue encountered releasing.

func (*Controller) Execute

func (c *Controller) Execute(ctx context.Context) error

Execute executes the accept controller. Returning nil ends execution. Returning an error triggers a retry with backoff.

func (*Controller) GetControllerInfo

func (c *Controller) GetControllerInfo() *controller.Info

GetControllerInfo returns information about the controller.

func (*Controller) HandleDirective

func (c *Controller) HandleDirective(ctx context.Context, di directive.Instance) (directive.Resolver, error)

HandleDirective asks if the handler can resolve the directive. If it can, it returns a resolver. If not, returns nil. Any exceptional errors are returned for logging. It is safe to add a reference to the directive during this call.

func (*Controller) Resolve

func (c *Controller) Resolve(ctx context.Context, handler directive.ResolverHandler) error

Resolve resolves the values, emitting them to the handler.

type Factory

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

Factory constructs a controller

func NewFactory

func NewFactory(bus bus.Bus) *Factory

NewFactory builds a accept factory.

func (*Factory) Construct

func (t *Factory) Construct(
	conf config.Config,
	opts controller.ConstructOpts,
) (controller.Controller, error)

Construct constructs the associated controller given configuration.

func (*Factory) ConstructConfig

func (t *Factory) ConstructConfig() config.Config

ConstructConfig constructs an instance of the controller configuration.

func (*Factory) GetConfigID

func (t *Factory) GetConfigID() string

GetConfigID returns the configuration ID for the controller.

func (*Factory) GetControllerID

func (t *Factory) GetControllerID() string

GetControllerID returns the unique ID for the controller.

func (*Factory) GetVersion

func (t *Factory) GetVersion() semver.Version

GetVersion returns the version of this controller.

type MountedStreamHandler

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

MountedStreamHandler implements the mounted stream handler.

func NewMountedStreamHandler

func NewMountedStreamHandler(
	le *logrus.Entry,
	bus bus.Bus,
	rpc *queuedRPC,
) (*MountedStreamHandler, error)

NewMountedStreamHandler constructs the mounted stream handler.

func (*MountedStreamHandler) HandleMountedStream

func (m *MountedStreamHandler) HandleMountedStream(
	ctx context.Context,
	strm link.MountedStream,
) error

HandleMountedStream handles an incoming mounted stream. Any returned error indicates the stream should be closed. This function should return as soon as possible, and start additional goroutines to manage the lifecycle of the stream.

Jump to

Keyboard shortcuts

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