diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-07-28 22:12:35 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-07-28 22:12:35 +0200 |
commit | 37c21678743c752cbbc2297871c47a3117303309 (patch) | |
tree | 6ff34969c1fb744af18ee3708be48c529b88bf2d /mmss/config.hpp | |
parent | a713d2931ebd26bd2bc1b6c1cce574940736e718 (diff) | |
download | gmrf-37c21678743c752cbbc2297871c47a3117303309.tar gmrf-37c21678743c752cbbc2297871c47a3117303309.zip |
Implement config parser
Diffstat (limited to 'mmss/config.hpp')
-rw-r--r-- | mmss/config.hpp | 21 |
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); }; |