pkg flow, func NewErrAborted(*context.T, error) error
pkg flow, func NewErrAuth(*context.T, error) error
pkg flow, func NewErrBadArg(*context.T, error) error
pkg flow, func NewErrBadState(*context.T, error) error
pkg flow, func NewErrDialFailed(*context.T, error) error
pkg flow, func NewErrNetwork(*context.T, error) error
pkg flow, func NewErrNotTrusted(*context.T, error) error
pkg flow, func NewErrProxy(*context.T, error) error
pkg flow, func NewErrResolveFailed(*context.T, error) error
pkg flow, func RegisterProtocol(string, Protocol, ...string) bool
pkg flow, func RegisterUnknownProtocol(string, Protocol) bool
pkg flow, func RegisteredProtocol(string) (Protocol, []string)
pkg flow, func RegisteredProtocols() []string
pkg flow, type Conn interface { Close, LocalAddr, ReadMsg, WriteMsg }
pkg flow, type Conn interface, Close() error
pkg flow, type Conn interface, LocalAddr() net.Addr
pkg flow, type Conn interface, ReadMsg() ([]byte, error)
pkg flow, type Conn interface, WriteMsg(...[]byte) (int, error)
pkg flow, type Flow interface { Close, Closed, Conn, LocalBlessings, LocalDischarges, LocalEndpoint, Read, ReadMsg, RemoteBlessings, RemoteDischarges, RemoteEndpoint, SetDeadlineContext, Write, WriteMsg, WriteMsgAndClose }
pkg flow, type Flow interface, Close() error
pkg flow, type Flow interface, Closed() <-chan struct{}
pkg flow, type Flow interface, Conn() ManagedConn
pkg flow, type Flow interface, LocalBlessings() security.Blessings
pkg flow, type Flow interface, LocalDischarges() map[string]security.Discharge
pkg flow, type Flow interface, LocalEndpoint() naming.Endpoint
pkg flow, type Flow interface, Read([]byte) (int, error)
pkg flow, type Flow interface, ReadMsg() ([]byte, error)
pkg flow, type Flow interface, RemoteBlessings() security.Blessings
pkg flow, type Flow interface, RemoteDischarges() map[string]security.Discharge
pkg flow, type Flow interface, RemoteEndpoint() naming.Endpoint
pkg flow, type Flow interface, SetDeadlineContext(*context.T, time.Time) *context.T
pkg flow, type Flow interface, Write([]byte) (int, error)
pkg flow, type Flow interface, WriteMsg(...[]byte) (int, error)
pkg flow, type Flow interface, WriteMsgAndClose(...[]byte) (int, error)
pkg flow, type ListenStatus struct
pkg flow, type ListenStatus struct, Dirty <-chan struct{}
pkg flow, type ListenStatus struct, Endpoints []naming.Endpoint
pkg flow, type ListenStatus struct, ListenErrors map[struct{ Protocol, Address string }]error
pkg flow, type ListenStatus struct, ProxyErrors map[string]error
pkg flow, type Listener interface { Accept, Addr, Close }
pkg flow, type Listener interface, Accept(*context.T) (Conn, error)
pkg flow, type Listener interface, Addr() net.Addr
pkg flow, type Listener interface, Close() error
pkg flow, type ManagedConn interface { Closed, CommonVersion, LastUsed, LocalBlessings, LocalDischarges, LocalEndpoint, RTT, RemoteBlessings, RemoteDischarges, RemoteEndpoint }
pkg flow, type ManagedConn interface, Closed() <-chan struct{}
pkg flow, type ManagedConn interface, CommonVersion() version.RPCVersion
pkg flow, type ManagedConn interface, LastUsed() time.Time
pkg flow, type ManagedConn interface, LocalBlessings() security.Blessings
pkg flow, type ManagedConn interface, LocalDischarges() map[string]security.Discharge
pkg flow, type ManagedConn interface, LocalEndpoint() naming.Endpoint
pkg flow, type ManagedConn interface, RTT() time.Duration
pkg flow, type ManagedConn interface, RemoteBlessings() security.Blessings
pkg flow, type ManagedConn interface, RemoteDischarges() map[string]security.Discharge
pkg flow, type ManagedConn interface, RemoteEndpoint() naming.Endpoint
pkg flow, type Manager interface { Accept, Closed, Dial, DialCached, DialSideChannel, Listen, ProxyListen, RoutingID, Status, StopListening }
pkg flow, type Manager interface, Accept(*context.T) (Flow, error)
pkg flow, type Manager interface, Closed() <-chan struct{}
pkg flow, type Manager interface, Dial(*context.T, naming.Endpoint, PeerAuthorizer, time.Duration) (Flow, error)
pkg flow, type Manager interface, DialCached(*context.T, naming.Endpoint, PeerAuthorizer, time.Duration) (Flow, error)
pkg flow, type Manager interface, DialSideChannel(*context.T, naming.Endpoint, PeerAuthorizer, time.Duration) (Flow, error)
pkg flow, type Manager interface, Listen(*context.T, string, string) (<-chan struct{}, error)
pkg flow, type Manager interface, ProxyListen(*context.T, string, naming.Endpoint) (<-chan struct{}, error)
pkg flow, type Manager interface, RoutingID() naming.RoutingID
pkg flow, type Manager interface, Status() ListenStatus
pkg flow, type Manager interface, StopListening(*context.T)
pkg flow, type MsgReadWriteCloser interface { Close, ReadMsg, WriteMsg }
pkg flow, type MsgReadWriteCloser interface, Close() error
pkg flow, type MsgReadWriteCloser interface, ReadMsg() ([]byte, error)
pkg flow, type MsgReadWriteCloser interface, WriteMsg(...[]byte) (int, error)
pkg flow, type MsgReader interface { ReadMsg }
pkg flow, type MsgReader interface, ReadMsg() ([]byte, error)
pkg flow, type MsgWriter interface { WriteMsg }
pkg flow, type MsgWriter interface, WriteMsg(...[]byte) (int, error)
pkg flow, type PeerAuthorizer interface { AuthorizePeer, BlessingsForPeer }
pkg flow, type PeerAuthorizer interface, AuthorizePeer(*context.T, naming.Endpoint, naming.Endpoint, security.Blessings, map[string]security.Discharge) ([]string, []security.RejectedBlessing, error)
pkg flow, type PeerAuthorizer interface, BlessingsForPeer(*context.T, []string) (security.Blessings, map[string]security.Discharge, error)
pkg flow, type PinnedConn interface { Conn, Unpin }
pkg flow, type PinnedConn interface, Conn() ManagedConn
pkg flow, type PinnedConn interface, Unpin()
pkg flow, type Protocol interface { Dial, Listen, Resolve }
pkg flow, type Protocol interface, Dial(*context.T, string, string, time.Duration) (Conn, error)
pkg flow, type Protocol interface, Listen(*context.T, string, string) (Listener, error)
pkg flow, type Protocol interface, Resolve(*context.T, string, string) (string, []string, error)
pkg flow, var ErrAborted unknown-type
pkg flow, var ErrAuth unknown-type
pkg flow, var ErrBadArg unknown-type
pkg flow, var ErrBadState unknown-type
pkg flow, var ErrDialFailed unknown-type
pkg flow, var ErrNetwork unknown-type
pkg flow, var ErrNotTrusted unknown-type
pkg flow, var ErrProxy unknown-type
pkg flow, var ErrResolveFailed unknown-type
