diff options
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); }; |