rpc

package
v0.0.0-...-73cd16d Latest Latest
Warning

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

Go to latest
Published: May 22, 2024 License: EPL-1.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Advertisement interface {
	Clear()
}

type Advertiser

type Advertiser interface {
	Advertise(c *Capabilities) (Advertisement, error)
}

type Bus

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

func StartBus

func StartBus(log logger.Logger, env *core.Env) (*Bus, error)

func (*Bus) Close

func (b *Bus) Close()

func (*Bus) Connect

func (b *Bus) Connect(ctx context.Context) (*BusConnection, error)

func (*Bus) ServeUnix

func (b *Bus) ServeUnix(path string) error

type BusAdvert

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

func (*BusAdvert) Clear

func (a *BusAdvert) Clear()

type BusConnection

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

func InitBusConnection

func InitBusConnection(env *core.Env) (*BusConnection, error)

func (*BusConnection) Advertise

func (c *BusConnection) Advertise(cp *Capabilities) (Advertisement, error)

func (*BusConnection) BrowseCapabilities

func (b *BusConnection) BrowseCapabilities() []*Capabilities

func (*BusConnection) Exchange

func (b *BusConnection) Exchange(req *Request) (*Response, error)

func (*BusConnection) Listen

func (b *BusConnection) Listen(endpoint string) (Listener, error)

type BusListener

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

func (*BusListener) Accept

func (b *BusListener) Accept(ctx context.Context) (RPC, error)

type BusRPC

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

func (*BusRPC) Request

func (r *BusRPC) Request() *Request

func (*BusRPC) Respond

func (r *BusRPC) Respond(val any) error

type Capabilities

type Capabilities struct {
	Endpoint string              `json:"endpoint" cbor:"1,keyasint"`
	Method   string              `json:"method" cbor:"2,keyasint"`
	Tags     map[string][]string `json:"tags" cbor:"3,keyasint"`
}

func (*Capabilities) Id

func (c *Capabilities) Id() (string, error)

Calculate a secure identifier for the capabilites based on it's content.

type Listener

type Listener interface {
	Accept(context.Context) (RPC, error)
}

type RPC

type RPC interface {
	Request() *Request
	Respond(val any) error
}

type Request

type Request struct {
	Endpoint   string
	Method     string
	Arguments  core.Seq
	RequestId  string
	NoResponse bool
}

func (*Request) Marshal

func (r *Request) Marshal() ([]byte, error)

func (*Request) MarshalResponse

func (r *Request) MarshalResponse(val any) ([]byte, error)

func (*Request) Unmarshal

func (r *Request) Unmarshal(env *core.Env, data []byte) error

type Response

type Response struct {
	Value any
}

func (*Response) Unmarshal

func (r *Response) Unmarshal(env *core.Env, data []byte) error

type Sender

type Sender interface {
	Exchange(req *Request) (*Response, error)
}

Jump to

Keyboard shortcuts

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