summaryrefslogtreecommitdiffstats
path: root/mmss/mmss.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mmss/mmss.cpp')
-rw-r--r--mmss/mmss.cpp75
1 files changed, 2 insertions, 73 deletions
diff --git a/mmss/mmss.cpp b/mmss/mmss.cpp
index 0358063..42d7dea 100644
--- a/mmss/mmss.cpp
+++ b/mmss/mmss.cpp
@@ -24,82 +24,11 @@
*/
-#include "mmss.hpp"
-#include "node.hpp"
+#include "context.hpp"
-#include <algorithm>
-#include <cassert>
-#include <cstdio>
-
-
-namespace MMSS {
-
-void main(int argc, char *argv[]) {
- if (argc != 2) {
- std::fprintf(stderr, "usage: %s protocol_module\n", argv[0]);
- std::exit(1);
- }
-
- context_t mmss;
-
- std::shared_ptr<const protocol_t> proto = protocol_t::load(&mmss, argv[1]);
- if (!proto)
- std::exit(1);
-
- config_t conf = {};
-
- //read_config(&mmss, &conf, "babel_test.mmss");
-
- std::shared_ptr<network_t> net0 = std::make_shared<network_t>();
- std::shared_ptr<network_t> net1 = std::make_shared<network_t>();
-
- net0->mtu = 1500;
- net1->mtu = 1500;
-
- std::shared_ptr<node_t> node1 = node_t::create(&mmss, "node1", 1, proto);
- std::shared_ptr<node_t> node2 = node_t::create(&mmss, "node2", 2, proto);
- std::shared_ptr<node_t> node3 = node_t::create(&mmss, "node3", 3, proto);
-
- std::list<std::shared_ptr<node_t>> nodes;
-
- nodes.push_back(node1);
- nodes.push_back(node2);
- nodes.push_back(node3);
-
- gmrf_addr_t addr1 = {{1}}, addr2 = {{2}}, addr3 = {{3}}, addr4 = {{4}};
- add_iface(node1, net0, "mmss0", &addr1);
- add_iface(node2, net0, "mmss0", &addr2);
- add_iface(node2, net1, "mmss1", &addr3);
- add_iface(node3, net1, "mmss1", &addr4);
-
- while (true) {
- if (mmss.now() > 10000000)
- break;
-
- int timeout = mmss.event_queue.timeout();
-
- if (timeout < 0) {
- fprintf(stderr, "nothing queued, deadlock occured.\n");
- break;
- }
-
- if (timeout > 0) {
- assert(!mmss.event_queue.get());
-
- mmss.time += timeout;
- timeout = mmss.event_queue.timeout();
- }
-
- assert(timeout == 0);
-
- mmss.event_queue.get()->handle(&mmss);
- }
-}
-
-}
int main(int argc, char *argv[]) {
- MMSS::main(argc, argv);
+ MMSS::context_t().run(argc, argv);
return 0;
}