diff options
Diffstat (limited to 'Src/config')
-rw-r--r-- | Src/config/config.cpp | 29 | ||||
-rw-r--r-- | Src/config/config.h | 25 |
2 files changed, 54 insertions, 0 deletions
diff --git a/Src/config/config.cpp b/Src/config/config.cpp new file mode 100644 index 00000000..b6fc6be4 --- /dev/null +++ b/Src/config/config.cpp @@ -0,0 +1,29 @@ +/** (c) Nullsoft, Inc. C O N F I D E N T I A L + ** Filename: + ** Project: + ** Description: + ** Author: Ben Allison benski@nullsoft.com + ** Created: + **/ +#include "main.h" +#include "config.h" + +void Config::RegisterGroup(ifc_configgroup *newGroup) +{ + if (newGroup) + { + groups[newGroup->GetGUID()]=newGroup; + } +} + +ifc_configgroup *Config::GetGroup(GUID groupGUID) +{ + return groups[groupGUID]; +} + + +#define CBCLASS Config +START_DISPATCH; +CB(API_CONFIG_GETGROUP, GetGroup) +VCB(API_CONFIG_REGISTERGROUP, RegisterGroup) +END_DISPATCH; diff --git a/Src/config/config.h b/Src/config/config.h new file mode 100644 index 00000000..13bebd13 --- /dev/null +++ b/Src/config/config.h @@ -0,0 +1,25 @@ +#ifndef NULLSOFT_CONFIG_CONFIG_H +#define NULLSOFT_CONFIG_CONFIG_H + +#include "../Agave/Config/api_config.h" +#include <map> + +class Config : public api_config +{ + +public: + static const char *getServiceName() { return "Agave Config API"; } + static const GUID getServiceGuid() { return AgaveConfigGUID; } + + ifc_configgroup *GetGroup(GUID groupGUID); + void RegisterGroup(ifc_configgroup *newGroup); + + typedef std::map<GUID, ifc_configgroup *> GroupList; + GroupList groups; +protected: + RECVS_DISPATCH; +}; + +extern Config config; + +#endif
\ No newline at end of file |