SOLA
All Classes Namespaces Functions Variables Enumerations Friends Pages
minhton_manager.h
1// Copyright 2023 The SOLA authors
2//
3// This file is part of DAISI.
4//
5// DAISI is free software: you can redistribute it and/or modify it under the terms of the GNU
6// General Public License as published by the Free Software Foundation; version 2.
7//
8// DAISI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
9// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
10// Public License for more details.
11//
12// You should have received a copy of the GNU General Public License along with DAISI. If not, see
13// <https://www.gnu.org/licenses/>.
14//
15// SPDX-License-Identifier: GPL-2.0-only
16
17#ifndef DAISI_MINHTON_NS3_MINHTON_MANAGER_H_
18#define DAISI_MINHTON_NS3_MINHTON_MANAGER_H_
19
20#include "manager/core_network.h"
21#include "manager/manager.h"
22#include "minhton_application.h"
23#include "minhton_logger_ns3.h"
24#include "minhton_scenariofile.h"
25
26namespace daisi::minhton_ns3 {
27
28class MinhtonManager : public Manager {
29public:
30 class Scheduler;
31
32 explicit MinhtonManager(const std::string &scenariofile_path);
33
34private:
35 void setupImpl() override;
36 std::string getDatabaseFilename() const override;
37 GeneralScenariofile getGeneralScenariofile() const override { return scenariofile_; };
38 std::string getAdditionalParameters() const override;
39
40 void initNode(uint32_t id, minhton::ConfigNode config);
41 void setupNodeConfigurations();
42 uint64_t getNumberOfNodes() const;
43 void scheduleEvents();
44
45 std::shared_ptr<Scheduler> scheduler_;
46 MinhtonScenariofile scenariofile_;
47
48 ns3::NodeContainer nodes_;
49
50 CoreNetwork core_network_;
51
52 friend class MinhtonManager::Scheduler;
53};
54
55} // namespace daisi::minhton_ns3
56
57#endif
Network structure with one central L3 router, forming a star topology.
Definition core_network.h:34
Definition manager.h:26
Definition minhton_manager_scheduler.h:28
Definition minhton_manager.h:28
Definition config_node.h:30
Definition general_scenariofile.h:28
Definition minhton_scenariofile.h:120