summaryrefslogtreecommitdiffstats
path: root/mmss/config.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'mmss/config.hpp')
-rw-r--r--mmss/config.hpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/mmss/config.hpp b/mmss/config.hpp
index 702f142..69ad6a0 100644
--- a/mmss/config.hpp
+++ b/mmss/config.hpp
@@ -28,8 +28,9 @@
#include "types.hpp"
-#include <list>
#include <memory>
+#include <string>
+#include <unordered_map>
namespace MMSS {
@@ -38,17 +39,27 @@ class config_t : public nocopy_t {
private:
context_t *mmss;
- std::list<std::shared_ptr<network_t>> network;
- std::list<std::shared_ptr<node_t>> nodes;
+ int rand_seed;
- config_t(context_t *mmss0) : mmss(mmss0) {}
+ std::shared_ptr<const protocol_t> default_proto;
+ std::unordered_map<std::string, std::shared_ptr<const protocol_t>> protos;
+
+ std::unordered_map<std::string, std::shared_ptr<network_t>> networks;
+
+ const std::shared_ptr<node_t> *current_node;
+ std::unordered_map<std::string, std::shared_ptr<node_t>> nodes;
+
+ config_t(context_t *mmss0) : mmss(mmss0), rand_seed(0) {}
public:
context_t* get_context() const {
return mmss;
}
- void add_network(const char *name);
+ bool load_proto(const char *name, const char *module, bool def);
+ bool add_network(const char *name);
+ bool add_node(const char *name, const char *proto);
+ bool add_iface(const char *name, const char *net, const gmrf_addr_t *addr);
static std::shared_ptr<const config_t> read(context_t *mmss, const char *filename);
};