SOLA
Loading...
Searching...
No Matches
Public Member Functions | List of all members
minhton::BootstrapAlgorithmGeneral Class Reference
Inheritance diagram for minhton::BootstrapAlgorithmGeneral:
minhton::BootstrapAlgorithmInterface minhton::AlgorithmInterface

Public Member Functions

 BootstrapAlgorithmGeneral (std::shared_ptr< AccessContainer > access)
 
void process (const MessageVariant &msg) override
 
void initiateJoin (const PhysicalNodeInfo &p_node_info) override
 
void processBootstrapDiscover (const minhton::MessageBootstrapDiscover &msg)
 
void processBootstrapResponse (const minhton::MessageBootstrapResponse &msg)
 
void processBootstrapResponseTimeout () override
 
bool isBootstrapResponseValid () const override
 
- Public Member Functions inherited from minhton::BootstrapAlgorithmInterface
 BootstrapAlgorithmInterface (std::shared_ptr< AccessContainer > access)
 
- Public Member Functions inherited from minhton::AlgorithmInterface
 AlgorithmInterface (std::shared_ptr< AccessContainer > access)
 

Additional Inherited Members

- Static Public Member Functions inherited from minhton::BootstrapAlgorithmInterface
static std::vector< minhton::MessageTypegetSupportedMessageTypes ()
 
- Protected Member Functions inherited from minhton::AlgorithmInterface
void send (const MessageVariant &msg)
 
std::shared_ptr< RoutingInformationgetRoutingInfo () const
 
NodeInfo getSelfNodeInfo () const
 
- Protected Attributes inherited from minhton::AlgorithmInterface
std::shared_ptr< AccessContaineraccess_
 

Member Function Documentation

◆ initiateJoin()

void minhton::BootstrapAlgorithmGeneral::initiateJoin ( const PhysicalNodeInfo p_node_info)
overridevirtual

Initiating a join without knowing an address to join to, but only a multicast address.

Parameters
p_node_infomulticast address to send bootstrap discover to

Implements minhton::BootstrapAlgorithmInterface.

◆ isBootstrapResponseValid()

bool minhton::BootstrapAlgorithmGeneral::isBootstrapResponseValid ( ) const
overridevirtual

Check after the bootstrap response timeout has been called whether the gathered responses are valid and the node has enough information to find a good target to send the first join message to.

Implements minhton::BootstrapAlgorithmInterface.

◆ process()

void minhton::BootstrapAlgorithmGeneral::process ( const MessageVariant &  msg)
overridevirtual

◆ processBootstrapDiscover()

void minhton::BootstrapAlgorithmGeneral::processBootstrapDiscover ( const minhton::MessageBootstrapDiscover msg)

This method will be called when we receive a MessageBootstrapDiscover message.

The UDP Multicast listeners creates and object and forwards it.

Typical Usage:

this->processBootstrapDiscover(incoming_message);
void processBootstrapDiscover(const minhton::MessageBootstrapDiscover &msg)
Definition bootstrap_algorithm_general.cpp:35
Parameters
messagethe message we received and want to process

◆ processBootstrapResponse()

void minhton::BootstrapAlgorithmGeneral::processBootstrapResponse ( const minhton::MessageBootstrapResponse msg)

This method will be called when we receive a MessageBootstrapResponse message.

Once, a discovery multicast message has been processed, this is the repsonse. The new node which tries to join receieves information regarding where to join at.

Typical Usage:

this->processBootstrapResponse(incoming_message);
void processBootstrapResponse(const minhton::MessageBootstrapResponse &msg)
Definition bootstrap_algorithm_general.cpp:55
Parameters
messagethe message we received and want to process

◆ processBootstrapResponseTimeout()

void minhton::BootstrapAlgorithmGeneral::processBootstrapResponseTimeout ( )
overridevirtual

This method will be called, after the bootstrap response timeout has been expired.

Choosing the best node from all bootstrap response senders and sending a Join message to the best of those.

Typical Usage:

void processBootstrapResponseTimeout() override
Definition bootstrap_algorithm_general.cpp:62

Implements minhton::BootstrapAlgorithmInterface.


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