Versions in this module Expand all Collapse all v0 v0.4.0 Oct 8, 2023 Changes in this version + const DownData + const DownFinish + const DownResponse + const LDetail + const LInfo + const LOff + const TokenLength + const UpCancel + const UpClose + const UpData + const UpStart + var BlankAddress = &Address + var HANDLER_UNUSED_ID uint64 = 0 + var LogLevel int = LInfo + func FrameToProtoClearTicket(f Frame) *pb.RPCFrame + func IsUpstream(f Frame) bool + func IsValidShortID(x ShortID) bool + func MetricToProto(m Metric) *pb.Metric + func NewClientCall(identity uint64, infoStr string, ctx context.Context, memm MemoryManager) (*ClientCall, Handler) + func NewRunningQuery() *runningQuery + func RandHandlerID() uint64 + func ShortIDString(x ShortID) string + type Address struct + func AddrLocal() *Address + func AddressFromProto(ap []byte) *Address + func MustParseAddress(s string) *Address + func NewAddress(parts ...string) *Address + func NewAddressFromData(s string) *Address + func ParseAddress(s string) (*Address, error) + func (a *Address) Compact() *IBList + func (a *Address) Compare(other *Address) int + func (a *Address) Data() string + func (a *Address) String() string + func (a Address) Append(other ...*Address) *Address + func (a Address) Appends(other ...string) *Address + func (a Address) Equal(other *Address) bool + func (a Address) Get(i int) string + func (a Address) Iter() func() (string, bool) + func (a Address) Len() int + func (a Address) Slice(from, to int) *Address + func (a Address) StartsWith(other *Address) bool + func (a Address) ToProto() []byte + type AnnounceFrame struct + func NewAnnounceFrame(name *Address, metric Metric, deadline time.Time) *AnnounceFrame + func NewAnnounceFrameFromProto(m *pb.Announce) *AnnounceFrame + func (f *AnnounceFrame) Deadline() time.Time + func (f *AnnounceFrame) Metric() Metric + func (f *AnnounceFrame) Name() *Address + func (f *AnnounceFrame) Proto() *pb.Announce + type ByteArray = []byte + type Call struct + func (call *Call) Ctx() context.Context + func (call *Call) RPC() *RPC + type CancelError struct + Message string + func (t CancelError) Error() string + type Chunk struct + Data []byte + Remaining int + type ChunkFrame interface + Chunk func() *Chunk + type ClientCall struct + func (c *ClientCall) Cancel(message string) + func (c *ClientCall) CloseSend() + func (c *ClientCall) Init(rpc *RPC, rcv FrameReceiver, snd FrameSender) + func (c *ClientCall) Receive() ([]byte, error) + func (c *ClientCall) Send(data []byte) error + type ClosedError struct + func (r ClosedError) Error() string + type Core struct + func NewCore(group *Address, maxMemory int) *Core + func NewCoreExt(group *Address, maxMemory int, coreID string) (core *Core) + func (c *Core) Group() *Address + func (c *Core) ID() *Address + func (c *Core) Log() util.Logger + func (c *Core) MemMan() MemoryManager + func (c *Core) Quanda() *Quanda + func (c *Core) QueryRoute(ctx context.Context, dest *Address, remoteQuery bool) (*Address, Handler, error) + func (c *Core) RouteAndDispatch(ctx context.Context, frame Frame, downstreamHandler Handler) error + func (c *Core) Router() Router + func (c *Core) StartRPC(ctx context.Context, dest *Address, metadata []string, props map[string][]byte, ...) error + func (c *Core) Stop() + type DestinationEvent struct + Dest *Address + Metric Metric + Route Identifiable + func (e DestinationEvent) String() string + type DestinationEventListener func(*DestinationEvent) + type DownDataFrame struct + func NewDownDataFrame(shortID ShortID, chunk *Chunk) DownDataFrame + func (t DownDataFrame) Chunk() *Chunk + func (t DownDataFrame) ID() ShortID + func (t DownDataFrame) Proto() *pb.RPCFrame + func (t DownDataFrame) String() string + func (t DownDataFrame) Type() int + type DownFinishFrame struct + func NewDownFinishFrame(shortID ShortID, status int, message string, md []string) DownFinishFrame + func (t DownFinishFrame) ID() ShortID + func (t DownFinishFrame) Message() string + func (t DownFinishFrame) Metadata() []string + func (t DownFinishFrame) Proto() *pb.RPCFrame + func (t DownFinishFrame) Status() int + func (t DownFinishFrame) String() string + func (t DownFinishFrame) Type() int + type DownResponseFrame struct + func NewDownResponseFrame(shortID ShortID, md []string) DownResponseFrame + func (t DownResponseFrame) ID() ShortID + func (t DownResponseFrame) Metadata() []string + func (t DownResponseFrame) Proto() *pb.RPCFrame + func (t DownResponseFrame) String() string + func (t DownResponseFrame) Type() int + type FinishError struct + func (t FinishError) Error() string + func (t FinishError) Message() string + func (t FinishError) Metadata() []string + func (t FinishError) StatusCode() int + type Frame interface + ID func() ShortID + Proto func() *pb.RPCFrame + String func() string + Type func() int + func FrameFromProto(msg *pb.RPCFrame, memm MemoryManager) Frame + type FrameCallback func(rpc *RPC, frame Frame) + type FrameReceiver func(context.Context) (Frame, error) + type FrameSender func(context.Context, Frame) error + type FullID struct + func NewFullID(short ShortID, source *Address, dest *Address, token []byte) *FullID + func RandomFullID(source *Address, dest *Address) *FullID + func (t *FullID) Dest() *Address + func (t *FullID) ID() ShortID + func (t *FullID) Source() *Address + func (t *FullID) String() string + type HalfCloseError struct + func (t HalfCloseError) Error() string + type Handler interface + Init func(*RPC, FrameReceiver, FrameSender) + type IBList string + func NewIBList(bss ...string) (res IBList) + func (ib IBList) Get(i int) string + func (ib IBList) Len() int + func (ib IBList) String() string + type IDCollision struct + ID ShortID + func (t IDCollision) Error() string + type IDMismatch struct + Frame Frame + func (t IDMismatch) Error() string + type IDUnknown struct + Frame Frame + func (t IDUnknown) Error() string + type Identifiable interface + ID func() uint64 + String func() string + type InitFunc func(*RPC, FrameReceiver, FrameSender) + type LinkHandler struct + func NewLinkHandler(id uint64, infoString string, initRPC InitFunc, send func(*pb.LinkFrame) error) *LinkHandler + func (lh *LinkHandler) Send(lf *pb.LinkFrame) error + type Manager struct + func NewManager() *Manager + func (rpcm *Manager) Add(rpc *RPC) error + func (rpcm *Manager) Dispatch(ctx context.Context, frame Frame, identity uint64) error + func (rpcm *Manager) GetRPCs() []*RPC + func (t *Manager) AddListener(cb FrameCallback) + type MemoryManager interface + Acquire func(int) MemoryTicket + AcquireCtx func(context.Context, int) (MemoryTicket, error) + AcquireLow func(int) MemoryTicket + Max func() int + Used func() int + func NewCondMemoryManager(max int) MemoryManager + func NewNoMemoryManager() MemoryManager + type MemoryTicket interface + ReduceTo func(newSize int) + Release func() + Size func() int + type Metric struct + Hops int + var MetricOffline Metric = Metric{ ... } + func MetricFromProto(m *pb.Metric) Metric + func (m Metric) String() string + type MultiRPCHandler struct + func NewMultiRPCHandler(id uint64, infoString string, initRPC InitFunc) *MultiRPCHandler + func NewServerCallHandler(identity uint64, infoStr string, ctx context.Context, memm MemoryManager, ...) *MultiRPCHandler + func (r *MultiRPCHandler) Close() + func (r *MultiRPCHandler) Init(rpc *RPC, rcv FrameReceiver, snd FrameSender) + type PrefixMapEntry struct + Key *Address + Value interface{} + type PrefixTreeMap struct + func (ptm *PrefixTreeMap) Clear() + func (ptm *PrefixTreeMap) Get(key *Address) interface{} + func (ptm *PrefixTreeMap) Put(key *Address, value interface{}) (previousValue interface{}) + func (ptm *PrefixTreeMap) Remove(key *Address) (previousValue interface{}) + func (ptm *PrefixTreeMap) Size() int + func (ptm PrefixTreeMap) GetChildren(key *Address) (children []PrefixMapEntry) + func (ptm PrefixTreeMap) GetNearest(key *Address) (depth int, value interface{}) + func (ptm PrefixTreeMap) GetSubtree(key *Address) (entries []PrefixMapEntry) + func (ptm PrefixTreeMap) IterateSubtree(key *Address, action func(PrefixMapEntry) bool) + func (ptm PrefixTreeMap) RemoveSubtree(key *Address) (entries []PrefixMapEntry) + type Quanda struct + func NewQuanda(router Router, log util.Logger) (quanda *Quanda) + func (qa *Quanda) HandleAnnounce(announce *AnnounceFrame, handler *LinkHandler) + func (qa *Quanda) HandleQuery(query *QueryFrame, handler *LinkHandler) + func (qa *Quanda) OpenQueryNames() (openQueries []*Address) + func (qa *Quanda) Stop() + type QueryFrame struct + func NewQueryFrame(name *Address, deadline time.Time) *QueryFrame + func NewQueryFrameFromProto(m *pb.Query) *QueryFrame + func (f *QueryFrame) Deadline() time.Time + func (f *QueryFrame) Name() *Address + func (f *QueryFrame) Proto() *pb.Query + type RPC struct + func New(ID *FullID) *RPC + func (r *RPC) FullID() *FullID + func (r *RPC) Log() util.Logger + func (rpc *RPC) Abort(msg string) + func (rpc *RPC) Finished() bool + func (rpc *RPC) SetDownstreamHandler(handler Handler) + func (rpc *RPC) SetUpstreamHandler(handler Handler) + func (rpc *RPC) Status() (uint32, string) + type RPCNotStartedError struct + func (t RPCNotStartedError) Error() string + type RouteMap struct + func NewRouteMap() *RouteMap + func (rmap *RouteMap) Add(r Identifiable) error + func (rmap *RouteMap) AddListener(listener DestinationEventListener) + func (rmap *RouteMap) DestinationOffline(dest *Address, r Identifiable) + func (rmap *RouteMap) DestinationUpdate(dest *Address, r Identifiable, metric Metric) + func (rmap *RouteMap) Get(id uint64) Identifiable + func (rmap *RouteMap) GetAll() (res []Identifiable) + func (rmap *RouteMap) GetNearest(dest *Address) (int, Identifiable, Metric) + func (rmap *RouteMap) Remove(r Identifiable) bool + func (rmap *RouteMap) Route(dest *Address) Identifiable + type Router interface + Add func(r Identifiable) error + AddListener func(listener DestinationEventListener) + DestinationOffline func(dest *Address, r Identifiable) + DestinationUpdate func(dest *Address, r Identifiable, metric Metric) + Get func(id uint64) Identifiable + GetAll func() []Identifiable + GetNearest func(dest *Address) (int, Identifiable, Metric) + Remove func(h Identifiable) bool + Route func(dest *Address) Identifiable + type RoutingError struct + Cause error + Dest *Address + func (e RoutingError) Error() string + type ServerCall struct + func (c *ServerCall) Finish() + func (c *ServerCall) FinishExt(code codes.Code, message string, md []string) + func (c *ServerCall) Receive() ([]byte, error) + func (c *ServerCall) Send(data []byte) error + type ServerCallFactory struct + func (scf *ServerCallFactory) Init(rpc *RPC, rcv FrameReceiver, snd FrameSender) + type ShortID = uint64 + func RandomShortID() ShortID + type SingleRPCHandler struct + func NewSingleRPCHandler(id uint64, infoString string, initRPC InitFunc) *SingleRPCHandler + func (r *SingleRPCHandler) Close() + func (r *SingleRPCHandler) ID() uint64 + func (r *SingleRPCHandler) Init(rpc *RPC, rcv FrameReceiver, snd FrameSender) + func (r *SingleRPCHandler) String() string + type UpCancelFrame struct + func NewUpCancelFrame(shortID ShortID, message string) UpCancelFrame + func (t UpCancelFrame) ID() ShortID + func (t UpCancelFrame) Message() string + func (t UpCancelFrame) Proto() *pb.RPCFrame + func (t UpCancelFrame) String() string + func (t UpCancelFrame) Type() int + type UpCloseFrame struct + func NewUpCloseFrame(shortID ShortID) UpCloseFrame + func (t UpCloseFrame) ID() ShortID + func (t UpCloseFrame) Proto() *pb.RPCFrame + func (t UpCloseFrame) String() string + func (t UpCloseFrame) Type() int + type UpDataFrame struct + func NewUpDataFrame(shortID ShortID, chunk *Chunk) UpDataFrame + func (t UpDataFrame) Chunk() *Chunk + func (t UpDataFrame) ID() ShortID + func (t UpDataFrame) Proto() *pb.RPCFrame + func (t UpDataFrame) String() string + func (t UpDataFrame) Type() int + type UpStartFrame struct + func NewUpStartFrame(fullId *FullID, metadata []string, props map[string][]byte) UpStartFrame + func (t UpStartFrame) Dest() *Address + func (t UpStartFrame) ID() ShortID + func (t UpStartFrame) Metadata() []string + func (t UpStartFrame) Properties() map[string][]byte + func (t UpStartFrame) Proto() *pb.RPCFrame + func (t UpStartFrame) Source() *Address + func (t UpStartFrame) String() string + func (t UpStartFrame) Type() int