wrap

package
v0.0.0-...-cc45bd3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 3, 2022 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RPCEventBufferSize = 16

RPCEventBufferSize defines the number of events to buffer.

Functions

func PublishRPCEvent

func PublishRPCEvent(ctx context.Context, ev interface{})

PublishRPCEvent publishes a query event to the query event channel associated with the given context, if any.

func RegisterForRPCEvents

func RegisterForRPCEvents(ctx context.Context) (context.Context, <-chan interface{})

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

func SubscribesToRPCEvents(ctx context.Context) bool

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 Disconnector

type Disconnector interface {
	OnDisconnect(ctx context.Context, p peer.ID)
}

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

func (m *MessageSenderImpl) SendMessage(ctx context.Context, p peer.ID, pmes *pb.Message) error

func (*MessageSenderImpl) SendRequest

func (m *MessageSenderImpl) SendRequest(ctx context.Context, p peer.ID, pmes *pb.Message) (*pb.Message, error)

type Notifee

type Notifee interface {
	DialStarted(trpt string, raddr ma.Multiaddr, p peer.ID, start time.Time)
	DialEnded(trpt string, raddr ma.Multiaddr, p peer.ID, start time.Time, end time.Time, err error)
}

type Notifier

type Notifier struct {
	// contains filtered or unexported fields
}

func (*Notifier) Notify

func (n *Notifier) Notify(notifee Notifee)

func (*Notifier) StopNotify

func (n *Notifier) StopNotify(notifee Notifee)

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) CanDial

func (q *QuicTransport) CanDial(addr ma.Multiaddr) bool

func (*QuicTransport) Dial

func (*QuicTransport) Listen

func (q *QuicTransport) Listen(laddr ma.Multiaddr) (transport.Listener, 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) CanDial

func (t *TCPTransport) CanDial(addr ma.Multiaddr) bool

func (*TCPTransport) Dial

func (*TCPTransport) Listen

func (t *TCPTransport) Listen(laddr ma.Multiaddr) (transport.Listener, 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 (*WSTransport) CanDial

func (ws *WSTransport) CanDial(addr ma.Multiaddr) bool

func (*WSTransport) Dial

func (ws *WSTransport) Dial(ctx context.Context, raddr ma.Multiaddr, p peer.ID) (transport.CapableConn, error)

func (*WSTransport) Listen

func (ws *WSTransport) Listen(laddr ma.Multiaddr) (transport.Listener, error)

func (*WSTransport) Protocols

func (ws *WSTransport) Protocols() []int

func (*WSTransport) Proxy

func (ws *WSTransport) Proxy() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL