Documentation
¶
Index ¶
- Variables
- func PublishRPCEvent(ctx context.Context, ev interface{})
- func RegisterForRPCEvents(ctx context.Context) (context.Context, <-chan interface{})
- func SubscribesToRPCEvents(ctx context.Context) bool
- type Disconnector
- type MessageSenderImpl
- func (m *MessageSenderImpl) Init(h host.Host, protos []protocol.ID) pb.MessageSender
- func (m *MessageSenderImpl) OnDisconnect(ctx context.Context, p peer.ID)
- func (m *MessageSenderImpl) SendMessage(ctx context.Context, p peer.ID, pmes *pb.Message) error
- func (m *MessageSenderImpl) SendRequest(ctx context.Context, p peer.ID, pmes *pb.Message) (*pb.Message, error)
- type Notifee
- type Notifier
- type QuicTransport
- func (q *QuicTransport) CanDial(addr ma.Multiaddr) bool
- func (q *QuicTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error)
- func (q *QuicTransport) Listen(laddr ma.Multiaddr) (transport.Listener, error)
- func (q *QuicTransport) Protocols() []int
- func (q *QuicTransport) Proxy() bool
- type RPCSendMessageEndedEvent
- type RPCSendMessageStartedEvent
- type RPCSendRequestEndedEvent
- type RPCSendRequestStartedEvent
- type TCPTransport
- func (t *TCPTransport) CanDial(addr ma.Multiaddr) bool
- func (t *TCPTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error)
- func (t *TCPTransport) Listen(laddr ma.Multiaddr) (transport.Listener, error)
- func (t *TCPTransport) Protocols() []int
- func (t *TCPTransport) Proxy() bool
- type WSTransport
- func (ws *WSTransport) CanDial(addr ma.Multiaddr) bool
- func (ws *WSTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error)
- func (ws *WSTransport) Listen(laddr ma.Multiaddr) (transport.Listener, error)
- func (ws *WSTransport) Protocols() []int
- func (ws *WSTransport) Proxy() bool
Constants ¶
This section is empty.
Variables ¶
var RPCEventBufferSize = 16
RPCEventBufferSize defines the number of events to buffer.
Functions ¶
func PublishRPCEvent ¶
PublishRPCEvent publishes a query event to the query event channel associated with the given context, if any.
func RegisterForRPCEvents ¶
RegisterForRPCEvents registers a query event channel with the given context. The returned context can be passed to DHT queries to receive query events on the returned channels.
The passed context MUST be canceled when the caller is no longer interested in query events.
func SubscribesToRPCEvents ¶
SubscribesToRPCEvents returns true if the context subscribes to query events. If this function returns falls, calling `PublishRPCEvent` on the context will be a no-op.
Types ¶
type MessageSenderImpl ¶
type MessageSenderImpl struct {
// contains filtered or unexported fields
}
func NewMessageSenderImpl ¶
func NewMessageSenderImpl() *MessageSenderImpl
func (*MessageSenderImpl) Init ¶
func (m *MessageSenderImpl) Init(h host.Host, protos []protocol.ID) pb.MessageSender
func (*MessageSenderImpl) OnDisconnect ¶
func (m *MessageSenderImpl) OnDisconnect(ctx context.Context, p peer.ID)
func (*MessageSenderImpl) SendMessage ¶
type Notifier ¶
type Notifier struct {
// contains filtered or unexported fields
}
func (*Notifier) StopNotify ¶
type QuicTransport ¶
type QuicTransport struct { *Notifier // contains filtered or unexported fields }
QuicTransport is a thin wrapper around the actual *websocket.WebsocketTransport implementation. It intercepts calls to Dial to track when which peer is dialed.
func NewQuicTransport ¶
func NewQuicTransport() (*QuicTransport, func(key ic.PrivKey, psk pnet.PSK, gater connmgr.ConnectionGater, rcmgr network.ResourceManager) (*QuicTransport, error))
func (*QuicTransport) Dial ¶
func (q *QuicTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error)
func (*QuicTransport) Protocols ¶
func (q *QuicTransport) Protocols() []int
func (*QuicTransport) Proxy ¶
func (q *QuicTransport) Proxy() bool
type RPCSendMessageEndedEvent ¶
type RPCSendMessageEndedEvent struct { QueryID uuid.UUID RemotePeer peer.ID StartedAt time.Time EndedAt time.Time Message *pb.Message Error error }
RPCSendMessageEndedEvent .
type RPCSendMessageStartedEvent ¶
type RPCSendMessageStartedEvent struct { QueryID uuid.UUID RemotePeer peer.ID StartedAt time.Time Message *pb.Message }
RPCSendMessageStartedEvent .
type RPCSendRequestEndedEvent ¶
type RPCSendRequestEndedEvent struct { QueryID uuid.UUID RemotePeer peer.ID StartedAt time.Time EndedAt time.Time Request *pb.Message Response *pb.Message Error error }
RPCSendRequestEndedEvent .
type RPCSendRequestStartedEvent ¶
type RPCSendRequestStartedEvent struct { QueryID uuid.UUID RemotePeer peer.ID StartedAt time.Time Request *pb.Message }
RPCSendRequestStartedEvent .
type TCPTransport ¶
type TCPTransport struct { *Notifier // contains filtered or unexported fields }
TCPTransport is a thin wrapper around the actual *tcp.TcpTransport implementation. It intercepts calls to Dial to track when which peer was dialed.
func NewTCPTransport ¶
func NewTCPTransport() (*TCPTransport, func(transport.Upgrader, network.ResourceManager, ...tcp.Option) (*TCPTransport, error))
func (*TCPTransport) Dial ¶
func (t *TCPTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error)
func (*TCPTransport) Protocols ¶
func (t *TCPTransport) Protocols() []int
func (*TCPTransport) Proxy ¶
func (t *TCPTransport) Proxy() bool
type WSTransport ¶
type WSTransport struct { *Notifier // contains filtered or unexported fields }
WSTransport is a thin wrapper around the actual *websocket.WebsocketTransport implementation. It intercepts calls to Dial to track when which peer is dialed.
func NewWSTransport ¶
func NewWSTransport() (*WSTransport, func(transport.Upgrader, network.ResourceManager) *WSTransport)
func (*WSTransport) Dial ¶
func (ws *WSTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error)
func (*WSTransport) Protocols ¶
func (ws *WSTransport) Protocols() []int
func (*WSTransport) Proxy ¶
func (ws *WSTransport) Proxy() bool