Bitcoin Core  27.99.0
P2P Digital Currency
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
NetEventsInterface Class Referenceabstract

Interface for message handling. More...

#include <net.h>

Inheritance diagram for NetEventsInterface:
[legend]
Collaboration diagram for NetEventsInterface:
[legend]

Public Member Functions

virtual void InitializeNode (CNode &node, ServiceFlags our_services)=0
 Initialize a peer (setup state, queue any initial messages) More...
 
virtual void FinalizeNode (const CNode &node)=0
 Handle removal of a peer (clear state) More...
 
virtual bool HasAllDesirableServiceFlags (ServiceFlags services) const =0
 Callback to determine whether the given set of service flags are sufficient for a peer to be "relevant". More...
 
virtual bool ProcessMessages (CNode *pnode, std::atomic< bool > &interrupt) EXCLUSIVE_LOCKS_REQUIRED(g_msgproc_mutex)=0
 Process protocol messages received from a given node. More...
 
virtual bool SendMessages (CNode *pnode) EXCLUSIVE_LOCKS_REQUIRED(g_msgproc_mutex)=0
 Send queued protocol messages to a given node. More...
 

Static Public Attributes

static Mutex g_msgproc_mutex
 Mutex for anything that is only accessed via the msg processing thread. More...
 

Protected Member Functions

 ~NetEventsInterface ()=default
 Protected destructor so that instances can only be deleted by derived classes. More...
 

Detailed Description

Interface for message handling.

Definition at line 991 of file net.h.

Constructor & Destructor Documentation

◆ ~NetEventsInterface()

NetEventsInterface::~NetEventsInterface ( )
protecteddefault

Protected destructor so that instances can only be deleted by derived classes.

If that restriction is no longer desired, this should be made public and virtual.

Member Function Documentation

◆ FinalizeNode()

virtual void NetEventsInterface::FinalizeNode ( const CNode node)
pure virtual

Handle removal of a peer (clear state)

Here is the caller graph for this function:

◆ HasAllDesirableServiceFlags()

virtual bool NetEventsInterface::HasAllDesirableServiceFlags ( ServiceFlags  services) const
pure virtual

Callback to determine whether the given set of service flags are sufficient for a peer to be "relevant".

◆ InitializeNode()

virtual void NetEventsInterface::InitializeNode ( CNode node,
ServiceFlags  our_services 
)
pure virtual

Initialize a peer (setup state, queue any initial messages)

Here is the caller graph for this function:

◆ ProcessMessages()

virtual bool NetEventsInterface::ProcessMessages ( CNode pnode,
std::atomic< bool > &  interrupt 
)
pure virtual

Process protocol messages received from a given node.

Parameters
[in]pnodeThe node which we have received messages from.
[in]interruptInterrupt condition for processing threads
Returns
True if there is more work to be done

◆ SendMessages()

virtual bool NetEventsInterface::SendMessages ( CNode pnode)
pure virtual

Send queued protocol messages to a given node.

Parameters
[in]pnodeThe node which we are sending messages to.
Returns
True if there is more work to be done
Here is the caller graph for this function:

Member Data Documentation

◆ g_msgproc_mutex

Mutex NetEventsInterface::g_msgproc_mutex
static

Mutex for anything that is only accessed via the msg processing thread.

Definition at line 995 of file net.h.


The documentation for this class was generated from the following files: