connectionpool

package
v0.1.8-c Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2020 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConnectionPool

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

ConnectionPool stores all net.Connections and make them available to all users of net.Connection. There are two sources of connections - - Local connections that were created by local node (by calling GetConnection) - Remote connections that were provided by a networker impl. in a pub-sub manner

func NewConnectionPool

func NewConnectionPool(dialFunc DialFunc, lPub p2pcrypto.PublicKey, logger log.Log) *ConnectionPool

NewConnectionPool creates new ConnectionPool

func (*ConnectionPool) CloseConnection

func (cp *ConnectionPool) CloseConnection(key p2pcrypto.PublicKey)

func (*ConnectionPool) GetConnection

func (cp *ConnectionPool) GetConnection(address inet.Addr, remotePub p2pcrypto.PublicKey) (net.Connection, error)

GetConnection fetches or creates if don't exist a connection to the address which is associated with the remote public key

func (*ConnectionPool) GetConnectionIfExists

func (cp *ConnectionPool) GetConnectionIfExists(remotePub p2pcrypto.PublicKey) (net.Connection, error)

GetConnectionIfExists checks if the connection is exists or pending

func (*ConnectionPool) OnClosedConnection

func (cp *ConnectionPool) OnClosedConnection(cwe net.ConnectionWithErr)

func (*ConnectionPool) OnNewConnection

func (cp *ConnectionPool) OnNewConnection(nce net.NewConnectionEvent) error

func (*ConnectionPool) Shutdown

func (cp *ConnectionPool) Shutdown()

Shutdown gracefully shuts down the ConnectionPool: - Closes all open connections - Waits for all Dial routines to complete and unblock any routines waiting for GetConnection

type DialFunc added in v0.1.2

type DialFunc func(ctx context.Context, address inet.Addr, remotePublicKey p2pcrypto.PublicKey) (net.Connection, error)

Jump to

Keyboard shortcuts

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