peer

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Mar 24, 2026 License: MIT Imports: 13 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Handle

func Handle(ctx context.Context, peer Peer, parent Parent, remote Remote, logger, dl *slog.Logger) error

Handle sends and receives messages no matter outgoing or incoming connection. Handle consumes provided peer parameter and closes it when the function ends.

Types

type Connected

type Connected struct {
	Peer Peer
}

type Direction

type Direction int
const Incoming Direction = 1
const Outgoing Direction = 2

func (Direction) String

func (a Direction) String() string

type ID added in v0.10.0

type ID interface {
	fmt.Stringer
}

type InfoMessage

type InfoMessage struct {
	Peer  Peer
	Value InfoMessageValue
}

type InfoMessageValue added in v0.10.4

type InfoMessageValue interface {
	// contains filtered or unexported methods
}

type InternalErr added in v0.10.4

type InternalErr struct {
	Err error
}

type MockPeer added in v0.11.0

type MockPeer struct {
	mock.Mock
}

MockPeer is an autogenerated mock type for the Peer type

func NewMockPeer added in v0.11.0

func NewMockPeer(t interface {
	mock.TestingT
	Cleanup(func())
}) *MockPeer

NewMockPeer creates a new instance of MockPeer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. The first argument is typically a *testing.T value.

func (*MockPeer) Close added in v0.11.0

func (_mock *MockPeer) Close() error

Close provides a mock function for the type MockPeer

func (*MockPeer) Connection added in v0.11.0

func (_mock *MockPeer) Connection() conn.Connection

Connection provides a mock function for the type MockPeer

func (*MockPeer) Direction added in v0.11.0

func (_mock *MockPeer) Direction() Direction

Direction provides a mock function for the type MockPeer

func (*MockPeer) EXPECT added in v0.11.0

func (_m *MockPeer) EXPECT() *MockPeer_Expecter

func (*MockPeer) Equal added in v0.11.0

func (_mock *MockPeer) Equal(peer Peer) bool

Equal provides a mock function for the type MockPeer

func (*MockPeer) Handshake added in v0.11.0

func (_mock *MockPeer) Handshake() proto.Handshake

Handshake provides a mock function for the type MockPeer

func (*MockPeer) ID added in v0.11.0

func (_mock *MockPeer) ID() ID

ID provides a mock function for the type MockPeer

func (*MockPeer) RemoteAddr added in v0.11.0

func (_mock *MockPeer) RemoteAddr() proto.TCPAddr

RemoteAddr provides a mock function for the type MockPeer

func (*MockPeer) SendMessage added in v0.11.0

func (_mock *MockPeer) SendMessage(message proto.Message)

SendMessage provides a mock function for the type MockPeer

type MockPeer_Close_Call added in v0.11.0

type MockPeer_Close_Call struct {
	*mock.Call
}

MockPeer_Close_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Close'

func (*MockPeer_Close_Call) Return added in v0.11.0

func (*MockPeer_Close_Call) Run added in v0.11.0

func (_c *MockPeer_Close_Call) Run(run func()) *MockPeer_Close_Call

func (*MockPeer_Close_Call) RunAndReturn added in v0.11.0

func (_c *MockPeer_Close_Call) RunAndReturn(run func() error) *MockPeer_Close_Call

type MockPeer_Connection_Call added in v0.11.0

type MockPeer_Connection_Call struct {
	*mock.Call
}

MockPeer_Connection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Connection'

func (*MockPeer_Connection_Call) Return added in v0.11.0

func (*MockPeer_Connection_Call) Run added in v0.11.0

func (*MockPeer_Connection_Call) RunAndReturn added in v0.11.0

func (_c *MockPeer_Connection_Call) RunAndReturn(run func() conn.Connection) *MockPeer_Connection_Call

type MockPeer_Direction_Call added in v0.11.0

type MockPeer_Direction_Call struct {
	*mock.Call
}

MockPeer_Direction_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Direction'

func (*MockPeer_Direction_Call) Return added in v0.11.0

func (*MockPeer_Direction_Call) Run added in v0.11.0

func (_c *MockPeer_Direction_Call) Run(run func()) *MockPeer_Direction_Call

func (*MockPeer_Direction_Call) RunAndReturn added in v0.11.0

func (_c *MockPeer_Direction_Call) RunAndReturn(run func() Direction) *MockPeer_Direction_Call

type MockPeer_Equal_Call added in v0.11.0

type MockPeer_Equal_Call struct {
	*mock.Call
}

MockPeer_Equal_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Equal'

func (*MockPeer_Equal_Call) Return added in v0.11.0

func (*MockPeer_Equal_Call) Run added in v0.11.0

func (_c *MockPeer_Equal_Call) Run(run func(peer Peer)) *MockPeer_Equal_Call

func (*MockPeer_Equal_Call) RunAndReturn added in v0.11.0

func (_c *MockPeer_Equal_Call) RunAndReturn(run func(peer Peer) bool) *MockPeer_Equal_Call

type MockPeer_Expecter added in v0.11.0

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

func (*MockPeer_Expecter) Close added in v0.11.0

Close is a helper method to define mock.On call

func (*MockPeer_Expecter) Connection added in v0.11.0

func (_e *MockPeer_Expecter) Connection() *MockPeer_Connection_Call

Connection is a helper method to define mock.On call

func (*MockPeer_Expecter) Direction added in v0.11.0

func (_e *MockPeer_Expecter) Direction() *MockPeer_Direction_Call

Direction is a helper method to define mock.On call

func (*MockPeer_Expecter) Equal added in v0.11.0

func (_e *MockPeer_Expecter) Equal(peer interface{}) *MockPeer_Equal_Call

Equal is a helper method to define mock.On call

  • peer Peer

func (*MockPeer_Expecter) Handshake added in v0.11.0

func (_e *MockPeer_Expecter) Handshake() *MockPeer_Handshake_Call

Handshake is a helper method to define mock.On call

func (*MockPeer_Expecter) ID added in v0.11.0

ID is a helper method to define mock.On call

func (*MockPeer_Expecter) RemoteAddr added in v0.11.0

func (_e *MockPeer_Expecter) RemoteAddr() *MockPeer_RemoteAddr_Call

RemoteAddr is a helper method to define mock.On call

func (*MockPeer_Expecter) SendMessage added in v0.11.0

func (_e *MockPeer_Expecter) SendMessage(message interface{}) *MockPeer_SendMessage_Call

SendMessage is a helper method to define mock.On call

  • message proto.Message

type MockPeer_Handshake_Call added in v0.11.0

type MockPeer_Handshake_Call struct {
	*mock.Call
}

MockPeer_Handshake_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Handshake'

func (*MockPeer_Handshake_Call) Return added in v0.11.0

func (*MockPeer_Handshake_Call) Run added in v0.11.0

func (_c *MockPeer_Handshake_Call) Run(run func()) *MockPeer_Handshake_Call

func (*MockPeer_Handshake_Call) RunAndReturn added in v0.11.0

func (_c *MockPeer_Handshake_Call) RunAndReturn(run func() proto.Handshake) *MockPeer_Handshake_Call

type MockPeer_ID_Call added in v0.11.0

type MockPeer_ID_Call struct {
	*mock.Call
}

MockPeer_ID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ID'

func (*MockPeer_ID_Call) Return added in v0.11.0

func (_c *MockPeer_ID_Call) Return(iD ID) *MockPeer_ID_Call

func (*MockPeer_ID_Call) Run added in v0.11.0

func (_c *MockPeer_ID_Call) Run(run func()) *MockPeer_ID_Call

func (*MockPeer_ID_Call) RunAndReturn added in v0.11.0

func (_c *MockPeer_ID_Call) RunAndReturn(run func() ID) *MockPeer_ID_Call

type MockPeer_RemoteAddr_Call added in v0.11.0

type MockPeer_RemoteAddr_Call struct {
	*mock.Call
}

MockPeer_RemoteAddr_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RemoteAddr'

func (*MockPeer_RemoteAddr_Call) Return added in v0.11.0

func (*MockPeer_RemoteAddr_Call) Run added in v0.11.0

func (*MockPeer_RemoteAddr_Call) RunAndReturn added in v0.11.0

func (_c *MockPeer_RemoteAddr_Call) RunAndReturn(run func() proto.TCPAddr) *MockPeer_RemoteAddr_Call

type MockPeer_SendMessage_Call added in v0.11.0

type MockPeer_SendMessage_Call struct {
	*mock.Call
}

MockPeer_SendMessage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SendMessage'

func (*MockPeer_SendMessage_Call) Return added in v0.11.0

func (*MockPeer_SendMessage_Call) Run added in v0.11.0

func (*MockPeer_SendMessage_Call) RunAndReturn added in v0.11.0

func (_c *MockPeer_SendMessage_Call) RunAndReturn(run func(message proto.Message)) *MockPeer_SendMessage_Call

type Parent

type Parent struct {
	MessageCh       chan ProtoMessage
	InfoCh          chan InfoMessage
	SkipMessageList *messages.SkipMessageList
}

func NewParent

func NewParent(enableLightNode bool) Parent

type Peer

type Peer interface {
	Direction() Direction
	Close() error
	SendMessage(proto.Message)
	ID() ID
	Connection() conn.Connection
	Handshake() proto.Handshake
	RemoteAddr() proto.TCPAddr
	Equal(Peer) bool
}

type PeerImpl

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

func NewPeerImpl

func NewPeerImpl(
	handshake proto.Handshake, conn conn.Connection, direction Direction, remote Remote,
	cancel context.CancelFunc, dl *slog.Logger,
) (*PeerImpl, error)

func (*PeerImpl) Close

func (a *PeerImpl) Close() error

func (*PeerImpl) Connection

func (a *PeerImpl) Connection() conn.Connection

func (*PeerImpl) Direction

func (a *PeerImpl) Direction() Direction

func (*PeerImpl) Equal added in v0.11.0

func (a *PeerImpl) Equal(other Peer) bool

func (*PeerImpl) Handshake

func (a *PeerImpl) Handshake() proto.Handshake

func (*PeerImpl) ID

func (a *PeerImpl) ID() ID

func (*PeerImpl) RemoteAddr

func (a *PeerImpl) RemoteAddr() proto.TCPAddr

func (*PeerImpl) SendMessage

func (a *PeerImpl) SendMessage(m proto.Message)

SendMessage marshals provided message and sends it to its internal Remote.ToCh channel. It sends the error to internal Remote.ErrCh if Remote.ToCh is full. That notifies Handle to propagate this error to FMS through Parent.InfoCh.

type ProtoMessage

type ProtoMessage struct {
	ID      Peer
	Message proto.Message
}

type Remote

type Remote struct {
	ToCh   chan []byte
	FromCh chan *bytebufferpool.ByteBuffer
	ErrCh  chan error
}

func NewRemote

func NewRemote() Remote

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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