SOLA
Loading...
Searching...
No Matches
bootstrap_algorithm_general.h
1// Copyright The SOLA Contributors
2//
3// Licensed under the MIT License.
4// For details on the licensing terms, see the LICENSE file.
5// SPDX-License-Identifier: MIT
6
7#ifndef MINHTON_ALGORITHMS_JOIN_BOOTSTRAP_ALGORITHM_GENERAL_H_
8#define MINHTON_ALGORITHMS_JOIN_BOOTSTRAP_ALGORITHM_GENERAL_H_
9
10#include <memory>
11
12#include "minhton/algorithms/misc/interface_bootstrap_algorithm.h"
13#include "minhton/message/bootstrap_discover.h"
14#include "minhton/message/bootstrap_response.h"
15#include "minhton/message/join.h"
16#include "minhton/message/message.h"
17
18namespace minhton {
19
21public:
22 explicit BootstrapAlgorithmGeneral(std::shared_ptr<AccessContainer> access)
24
25 void process(const MessageVariant &msg) override;
26
31 void initiateJoin(const PhysicalNodeInfo &p_node_info) override;
32
44
57
67 void processBootstrapResponseTimeout() override;
68
73 bool isBootstrapResponseValid() const override;
74
75private:
78 std::vector<minhton::NodeInfo> bootstrap_response_senders_;
79};
80
81} // namespace minhton
82
83#endif
Definition bootstrap_algorithm_general.h:20
void initiateJoin(const PhysicalNodeInfo &p_node_info) override
Definition bootstrap_algorithm_general.cpp:26
void processBootstrapResponseTimeout() override
Definition bootstrap_algorithm_general.cpp:62
void processBootstrapResponse(const minhton::MessageBootstrapResponse &msg)
Definition bootstrap_algorithm_general.cpp:55
void processBootstrapDiscover(const minhton::MessageBootstrapDiscover &msg)
Definition bootstrap_algorithm_general.cpp:35
bool isBootstrapResponseValid() const override
Definition bootstrap_algorithm_general.cpp:76
Definition interface_bootstrap_algorithm.h:17
Usage: A node wants to join the network but does not have access to a node's network information to s...
Definition bootstrap_discover.h:18
Usage: After receiving a MessageBootstrapDiscover, the node receiving the message might answer with a...
Definition bootstrap_response.h:18
Definition physical_node_info.h:23
Definition minhton_watchdog_ns3.cpp:24