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, Endpoints []naming.Endpoint
pkg flow, type ListenStatus struct, ProxyErrors map[string]error
pkg flow, type ListenStatus struct, Valid <-chan struct{}
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 }
pkg flow, type ManagedConn interface, Closed() <-chan struct{}
pkg flow, type ManagedConn interface, CommonVersion() version.RPCVersion
pkg flow, type Manager interface { Accept, Closed, Dial, 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, Listen(*context.T, string, string) 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 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 verror.IDAction
pkg flow, var ErrAuth verror.IDAction
pkg flow, var ErrBadArg verror.IDAction
pkg flow, var ErrBadState verror.IDAction
pkg flow, var ErrDialFailed verror.IDAction
pkg flow, var ErrNetwork verror.IDAction
pkg flow, var ErrNotTrusted verror.IDAction
pkg flow, var ErrProxy verror.IDAction
pkg flow, var ErrResolveFailed verror.IDAction
