pkg rpc, const GlobMethod ideal-string
pkg rpc, const PublisherMounted PublisherState
pkg rpc, const PublisherMounting PublisherState
pkg rpc, const PublisherUnmounted PublisherState
pkg rpc, const PublisherUnmounting PublisherState
pkg rpc, const ReservedMethodSignature ideal-string
pkg rpc, const ReservedSignature ideal-string
pkg rpc, const ServerActive ServerState
pkg rpc, const ServerStopped ServerState
pkg rpc, const ServerStopping ServerState
pkg rpc, func ChildrenGlobberInvoker(...string) Invoker
pkg rpc, func NewGlobState(interface{}) *GlobState
pkg rpc, func PublisherNames([]PublisherEntry) []string
pkg rpc, func PublisherServers([]PublisherEntry) []string
pkg rpc, func ReflectInvoker(interface{}) (Invoker, error)
pkg rpc, func ReflectInvokerOrDie(interface{}) Invoker
pkg rpc, func TypeCheckMethods(interface{}) map[string]error
pkg rpc, method (*Request) VDLRead(vdl.Decoder) error
pkg rpc, method (*Response) VDLRead(vdl.Decoder) error
pkg rpc, method (AddressChooserFunc) ChooseAddresses(string, []net.Addr) ([]net.Addr, error)
pkg rpc, method (ListenSpec) Copy() ListenSpec
pkg rpc, method (ListenSpec) String() string
pkg rpc, method (PublisherEntry) String() string
pkg rpc, method (PublisherState) String() string
pkg rpc, method (Request) VDLIsZero() bool
pkg rpc, method (Request) VDLWrite(vdl.Encoder) error
pkg rpc, method (Response) VDLIsZero() bool
pkg rpc, method (Response) VDLWrite(vdl.Encoder) error
pkg rpc, method (ServerState) String() string
pkg rpc, type AddressChooser interface { ChooseAddresses }
pkg rpc, type AddressChooser interface, ChooseAddresses(string, []net.Addr) ([]net.Addr, error)
pkg rpc, type AddressChooserFunc func(protocol string, candidates []net.Addr) ([]net.Addr, error)
pkg rpc, type AllGlobber interface { Glob__ }
pkg rpc, type AllGlobber interface, Glob__(*context.T, GlobServerCall, *glob.Glob) error
pkg rpc, type ArgDesc struct
pkg rpc, type ArgDesc struct, Doc string
pkg rpc, type ArgDesc struct, Name string
pkg rpc, type CallOpt interface { RPCCallOpt }
pkg rpc, type CallOpt interface, RPCCallOpt()
pkg rpc, type ChildrenGlobber interface { GlobChildren__ }
pkg rpc, type ChildrenGlobber interface, GlobChildren__(*context.T, GlobChildrenServerCall, *glob.Element) error
pkg rpc, type Client interface { Call, Close, Closed, PinConnection, StartCall }
pkg rpc, type Client interface, Call(*context.T, string, string, []interface{}, []interface{}, ...CallOpt) error
pkg rpc, type Client interface, Close()
pkg rpc, type Client interface, Closed() <-chan struct{}
pkg rpc, type Client interface, PinConnection(*context.T, string, ...CallOpt) (flow.PinnedConn, error)
pkg rpc, type Client interface, StartCall(*context.T, string, string, []interface{}, ...CallOpt) (ClientCall, error)
pkg rpc, type ClientCall interface { CloseSend, Finish, Recv, RemoteBlessings, Security, Send }
pkg rpc, type ClientCall interface, CloseSend() error
pkg rpc, type ClientCall interface, Finish(...interface{}) error
pkg rpc, type ClientCall interface, Recv(interface{}) error
pkg rpc, type ClientCall interface, RemoteBlessings() ([]string, security.Blessings)
pkg rpc, type ClientCall interface, Security() security.Call
pkg rpc, type ClientCall interface, Send(interface{}) error
pkg rpc, type ClientOpt interface { RPCClientOpt }
pkg rpc, type ClientOpt interface, RPCClientOpt()
pkg rpc, type Describer interface { Describe__ }
pkg rpc, type Describer interface, Describe__() []InterfaceDesc
pkg rpc, type Dispatcher interface { Lookup }
pkg rpc, type Dispatcher interface, Lookup(*context.T, string) (interface{}, security.Authorizer, error)
pkg rpc, type EmbedDesc struct
pkg rpc, type EmbedDesc struct, Doc string
pkg rpc, type EmbedDesc struct, Name string
pkg rpc, type EmbedDesc struct, PkgPath string
pkg rpc, type GlobChildrenServerCall interface { GrantedBlessings, LocalEndpoint, RemoteEndpoint, Security, SendStream, Server, Suffix }
pkg rpc, type GlobChildrenServerCall interface, GrantedBlessings() security.Blessings
pkg rpc, type GlobChildrenServerCall interface, LocalEndpoint() naming.Endpoint
pkg rpc, type GlobChildrenServerCall interface, RemoteEndpoint() naming.Endpoint
pkg rpc, type GlobChildrenServerCall interface, Security() security.Call
pkg rpc, type GlobChildrenServerCall interface, SendStream() interface {  Send(reply naming.GlobChildrenReply) error;}
pkg rpc, type GlobChildrenServerCall interface, Server() Server
pkg rpc, type GlobChildrenServerCall interface, Suffix() string
pkg rpc, type GlobServerCall interface { GrantedBlessings, LocalEndpoint, RemoteEndpoint, Security, SendStream, Server, Suffix }
pkg rpc, type GlobServerCall interface, GrantedBlessings() security.Blessings
pkg rpc, type GlobServerCall interface, LocalEndpoint() naming.Endpoint
pkg rpc, type GlobServerCall interface, RemoteEndpoint() naming.Endpoint
pkg rpc, type GlobServerCall interface, Security() security.Call
pkg rpc, type GlobServerCall interface, SendStream() interface {  Send(reply naming.GlobReply) error;}
pkg rpc, type GlobServerCall interface, Server() Server
pkg rpc, type GlobServerCall interface, Suffix() string
pkg rpc, type GlobState struct
pkg rpc, type GlobState struct, AllGlobber AllGlobber
pkg rpc, type GlobState struct, ChildrenGlobber ChildrenGlobber
pkg rpc, type Globber interface { Globber }
pkg rpc, type Globber interface, Globber() *GlobState
pkg rpc, type Granter interface { Grant, RPCCallOpt }
pkg rpc, type Granter interface, Grant(*context.T, security.Call) (security.Blessings, error)
pkg rpc, type Granter interface, RPCCallOpt()
pkg rpc, type InterfaceDesc struct
pkg rpc, type InterfaceDesc struct, Doc string
pkg rpc, type InterfaceDesc struct, Embeds []EmbedDesc
pkg rpc, type InterfaceDesc struct, Methods []MethodDesc
pkg rpc, type InterfaceDesc struct, Name string
pkg rpc, type InterfaceDesc struct, PkgPath string
pkg rpc, type Invoker interface { Globber, Invoke, MethodSignature, Prepare, Signature }
pkg rpc, type Invoker interface, Globber() *GlobState
pkg rpc, type Invoker interface, Invoke(*context.T, StreamServerCall, string, []interface{}) ([]interface{}, error)
pkg rpc, type Invoker interface, MethodSignature(*context.T, ServerCall, string) (signature.Method, error)
pkg rpc, type Invoker interface, Prepare(*context.T, string, int) ([]interface{}, []*vdl.Value, error)
pkg rpc, type Invoker interface, Signature(*context.T, ServerCall) ([]signature.Interface, error)
pkg rpc, type ListenAddrs []struct {  Protocol, Address string;}
pkg rpc, type ListenSpec struct
pkg rpc, type ListenSpec struct, Addrs ListenAddrs
pkg rpc, type ListenSpec struct, Proxy string
pkg rpc, type ListenSpec struct, embedded AddressChooser
pkg rpc, type MethodDesc struct
pkg rpc, type MethodDesc struct, Doc string
pkg rpc, type MethodDesc struct, InArgs []ArgDesc
pkg rpc, type MethodDesc struct, InStream ArgDesc
pkg rpc, type MethodDesc struct, Name string
pkg rpc, type MethodDesc struct, OutArgs []ArgDesc
pkg rpc, type MethodDesc struct, OutStream ArgDesc
pkg rpc, type MethodDesc struct, Tags []*vdl.Value
pkg rpc, type PublisherEntry struct
pkg rpc, type PublisherEntry struct, DesiredState PublisherState
pkg rpc, type PublisherEntry struct, LastMount time.Time
pkg rpc, type PublisherEntry struct, LastMountErr error
pkg rpc, type PublisherEntry struct, LastState PublisherState
pkg rpc, type PublisherEntry struct, LastUnmount time.Time
pkg rpc, type PublisherEntry struct, LastUnmountErr error
pkg rpc, type PublisherEntry struct, Name string
pkg rpc, type PublisherEntry struct, Server string
pkg rpc, type PublisherEntry struct, TTL time.Duration
pkg rpc, type PublisherState int
pkg rpc, type Request struct
pkg rpc, type Request struct, Deadline vdltime.Deadline
pkg rpc, type Request struct, EndStreamArgs bool
pkg rpc, type Request struct, GrantedBlessings security.Blessings
pkg rpc, type Request struct, Language string
pkg rpc, type Request struct, Method string
pkg rpc, type Request struct, NumPosArgs uint64
pkg rpc, type Request struct, Suffix string
pkg rpc, type Request struct, TraceRequest vtrace.Request
pkg rpc, type Response struct
pkg rpc, type Response struct, AckBlessings bool
pkg rpc, type Response struct, EndStreamResults bool
pkg rpc, type Response struct, Error error
pkg rpc, type Response struct, NumPosResults uint64
pkg rpc, type Response struct, TraceResponse vtrace.Response
pkg rpc, type Server interface { AddName, Closed, RemoveName, Status }
pkg rpc, type Server interface, AddName(string) error
pkg rpc, type Server interface, Closed() <-chan struct{}
pkg rpc, type Server interface, RemoveName(string)
pkg rpc, type Server interface, Status() ServerStatus
pkg rpc, type ServerCall interface { GrantedBlessings, LocalEndpoint, RemoteEndpoint, Security, Server, Suffix }
pkg rpc, type ServerCall interface, GrantedBlessings() security.Blessings
pkg rpc, type ServerCall interface, LocalEndpoint() naming.Endpoint
pkg rpc, type ServerCall interface, RemoteEndpoint() naming.Endpoint
pkg rpc, type ServerCall interface, Security() security.Call
pkg rpc, type ServerCall interface, Server() Server
pkg rpc, type ServerCall interface, Suffix() string
pkg rpc, type ServerOpt interface { RPCServerOpt }
pkg rpc, type ServerOpt interface, RPCServerOpt()
pkg rpc, type ServerState int
pkg rpc, type ServerStatus struct
pkg rpc, type ServerStatus struct, Dirty <-chan struct{}
pkg rpc, type ServerStatus struct, Endpoints []naming.Endpoint
pkg rpc, type ServerStatus struct, ListenErrors map[struct{ Protocol, Address string }]error
pkg rpc, type ServerStatus struct, ProxyErrors map[string]error
pkg rpc, type ServerStatus struct, PublisherStatus []PublisherEntry
pkg rpc, type ServerStatus struct, ServesMountTable bool
pkg rpc, type ServerStatus struct, State ServerState
pkg rpc, type Stream interface { Recv, Send }
pkg rpc, type Stream interface, Recv(interface{}) error
pkg rpc, type Stream interface, Send(interface{}) error
pkg rpc, type StreamServerCall interface { GrantedBlessings, LocalEndpoint, Recv, RemoteEndpoint, Security, Send, Server, Suffix }
pkg rpc, type StreamServerCall interface, GrantedBlessings() security.Blessings
pkg rpc, type StreamServerCall interface, LocalEndpoint() naming.Endpoint
pkg rpc, type StreamServerCall interface, Recv(interface{}) error
pkg rpc, type StreamServerCall interface, RemoteEndpoint() naming.Endpoint
pkg rpc, type StreamServerCall interface, Security() security.Call
pkg rpc, type StreamServerCall interface, Send(interface{}) error
pkg rpc, type StreamServerCall interface, Server() Server
pkg rpc, type StreamServerCall interface, Suffix() string
pkg rpc, type UniversalServiceMethods interface {}
