aboutsummaryrefslogtreecommitdiff
path: root/Src/config
diff options
context:
space:
mode:
Diffstat (limited to 'Src/config')
-rw-r--r--Src/config/config.cpp29
-rw-r--r--Src/config/config.h25
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