stream_srpc_server

package
v0.51.4 Latest Latest
Warning

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

Go to latest
Published: May 9, 2026 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {

	// PeerIds are the list of peer IDs to listen on.
	// If empty, allows any incoming peer id w/ the protocol id(s).
	PeerIds []string `protobuf:"bytes,1,rep,name=peer_ids,json=peerIds,proto3" json:"peerIds,omitempty"`
	// ProtocolIds is the list of protocol ids to listen on.
	// If empty, no incoming streams will be accepted.
	ProtocolIds []string `protobuf:"bytes,2,rep,name=protocol_ids,json=protocolIds,proto3" json:"protocolIds,omitempty"`
	// DisableEstablishLink disables adding an EstablishLink directive for each incoming peer.
	DisableEstablishLink bool `protobuf:"varint,3,opt,name=disable_establish_link,json=disableEstablishLink,proto3" json:"disableEstablishLink,omitempty"`
	// contains filtered or unexported fields
}

Config configures the server for the srpc service.

func (*Config) ApplyDefaults

func (c *Config) ApplyDefaults(protocolIds []protocol.ID) *Config

ApplyDefaults applies defaults to the config, returning a clone.

If the fields are set, skips the defaults.

func (*Config) BuildServer

func (c *Config) BuildServer(b bus.Bus, le *logrus.Entry, info *controller.Info, registerFns []RegisterFn) (*Server, error)

BuildServer constructs the server from the args.

func (*Config) CloneMessageVT

func (m *Config) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*Config) CloneVT

func (m *Config) CloneVT() *Config

func (*Config) EqualMessageVT

func (this *Config) EqualMessageVT(thatMsg any) bool

func (*Config) EqualVT

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

func (*Config) GetDebugVals

func (c *Config) GetDebugVals() config.DebugValues

GetDebugVals returns the directive arguments as key/value pairs. This should be something like param1="test", param2="test". This is not necessarily unique, and is primarily intended for display.

func (x *Config) GetDisableEstablishLink() bool

func (*Config) GetPeerIds

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

func (*Config) GetProtocolIds

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

func (*Config) MarshalJSON

func (x *Config) MarshalJSON() ([]byte, error)

MarshalJSON marshals the Config to JSON.

func (*Config) MarshalProtoJSON

func (x *Config) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the Config message to JSON.

func (*Config) MarshalProtoText

func (x *Config) MarshalProtoText() string

func (*Config) MarshalToSizedBufferVT

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

func (*Config) MarshalToVT

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

func (*Config) MarshalVT

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

func (*Config) ParsePeerIDs

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

ParsePeerIDs parses the peer ids field.

func (*Config) ParseProtocolIDs

func (c *Config) ParseProtocolIDs() ([]protocol.ID, error)

ParseProtocolIDs parses the protocol ids field.

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (x *Config) Reset()

func (*Config) SizeVT

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

func (*Config) String

func (x *Config) String() string

func (*Config) UnmarshalJSON

func (x *Config) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the Config from JSON.

func (*Config) UnmarshalProtoJSON

func (x *Config) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the Config message from JSON.

func (*Config) UnmarshalVT

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

func (*Config) Validate

func (c *Config) Validate() error

Validate checks the config.

type RegisterFn

type RegisterFn func(mux srpc.Mux) error

RegisterFn is a callback to register apis to a mux.

type Server

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

Server handles incoming streams for a peer id.

func NewServer

func NewServer(
	b bus.Bus,
	le *logrus.Entry,
	info *controller.Info,
	registerFns []RegisterFn,
	protocolIDs []protocol.ID,
	peerIDs []string,
	disableEstablishLink bool,
) (*Server, error)

NewServer constructs a common srpc controller. If peerIDs and/or domainIDs are empty, matches any.

func NewServerWithMux

func NewServerWithMux(
	b bus.Bus,
	le *logrus.Entry,
	info *controller.Info,
	mux srpc.Mux,
	protocolIDs []protocol.ID,
	peerIDs []string,
	disableEstablishLink bool,
) *Server

NewServerWithMux constructs a server with a pre-built mux. Use this when the mux needs a fallback invoker or custom setup that RegisterFn cannot express.

func (*Server) Close

func (s *Server) Close() error

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

func (*Server) Execute

func (s *Server) Execute(ctx context.Context) error

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

func (*Server) GetControllerInfo

func (s *Server) GetControllerInfo() *controller.Info

GetControllerInfo returns information about the controller.

func (*Server) HandleDirective

func (s *Server) 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.

func (*Server) HandleMountedStream

func (s *Server) HandleMountedStream(ctx context.Context, ms 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. Typically EstablishLink is asserted in HandleMountedStream.

func (*Server) ResolveHandleMountedStream

func (s *Server) ResolveHandleMountedStream(
	ctx context.Context,
	di directive.Instance,
	dir link.HandleMountedStream,
) ([]directive.Resolver, error)

ResolveHandleMountedStream resolves a HandleMountedStream directive.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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