SOLA
Loading...
Searching...
No Matches
access_container.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_CORE_ACCESS_CONTAINER_H_
8#define MINHTON_CORE_ACCESS_CONTAINER_H_
9
10#include <functional>
11#include <memory>
12
13#include "minhton/core/node_info.h"
14#include "minhton/core/routing_information.h"
15#include "minhton/message/inform_about_neighbors.h"
16#include "minhton/message/message.h"
17#include "minhton/message/se_types.h"
18#include "minhton/message/types_all.h"
19#include "minhton/utils/fsm.h"
20#include "minhton/utils/procedure_info.h"
21#include "minhton/utils/timeout_lengths_container.h"
22
23namespace minhton {
24
26 std::shared_ptr<RoutingInformation> routing_info;
27 std::shared_ptr<ProcedureInfo> procedure_info;
28 Logger logger;
29
30 std::function<void(const MessageVariant &)> send;
31 std::function<void(const MessageVariant &)> recv;
32 std::function<uint32_t(const MessageVariant &)> send_multicast;
33
34 std::function<void(TimeoutType)> set_timeout;
35 std::function<void(TimeoutType)> cancel_timeout;
36 std::function<FSMState()> get_fsm_state;
37 std::function<void(FiniteStateMachine)> set_new_fsm;
38 std::function<uint16_t(TimeoutType)> get_timeout_length;
39
40 std::function<void(const minhton::MessageInformAboutNeighbors &)> continue_accept_child_procedure;
41 std::function<void(minhton::NodeInfo, std::shared_ptr<MessageSEVariant> query)>
42 perform_search_exact;
43
44 std::function<void(uint32_t number, std::function<void()> cb)> wait_for_acks;
45
46 std::function<void(const minhton::NodeInfo &, std::vector<minhton::NodeInfo>)> replace_myself;
47
48 std::function<uint64_t()> get_timestamp;
49
50 bool node_locked = false;
51};
52
53} // namespace minhton
54
55#endif
Definition fsm.h:54
Definition logger.h:20
Usage: This message is an answer to a MessageGetNeighbors. It contains the node information about the...
Definition inform_about_neighbors.h:18
Definition node_info.h:24
Definition minhton_watchdog_ns3.cpp:24
Definition access_container.h:25