]> pilppa.org Git - lib1wire.git/blobdiff - src/DeviceConfig.hh
Started adding support for caches when reading data. Cache files for
[lib1wire.git] / src / DeviceConfig.hh
index ced5c81ae5ccfddc9af7bd041b1365f72b6494e5..107018b907ae8997b82c9d6f53acbcb7901fa6b1 100644 (file)
 
 #include <string>
 
+extern "C" {
+#include <uci.h>
+#include <plp/config.h>
+}
+
+#include "W1Configure.hh"
+
+#define DEVICE_CONFIG__FILE_NAME               "dev_cfg.txt"
+#define DEVICE_CONFIG__SECTION_TYPE            "device"
+#define DEVICE_CONFIG__SECTION_NAME            "base_data"
+#define DEVICE_CONFIG_VALUE_KEY__TYPE          "type"
+#define DEVICE_CONFIG_VALUE_KEY__ID            "id"
+#define DEVICE_CONFIG_VALUE_KEY__NAME          "name"
+
 namespace w1 {
-       enum enum_summary_calculation {SUM, DELTA, MEAN, MAX, MIN};
+       struct ConfigHandle {
+               public:
+                       ConfigHandle(uci_context *ctx_param, uci_package *pkg_param);
+                       ~ConfigHandle();
+                       struct uci_context      *_ctx;
+                       struct uci_package      *_pkg;
+       };
 
        class DeviceConfig {
                public:
                        DeviceConfig(std::string device_id_param);
                        virtual ~DeviceConfig();
-                       std::string get_config_value(std::string key);
-                       enum_summary_calculation get_summary_calculation_type();
+                       static std::string get_base_dir_name();
+                       static void set_base_dir_name(std::string store_param);
+                       std::string get_cfg_value(std::string key);
+                       void set_cfg_value(std::string key, std::string value);
+                       EnumSummaryCalculationType get_summary_calculation_type();
                private:
-                       std::string     device_id;
+                       static std::string      store_base_dir;
+                       std::string             device_id;
+                       std::string             device_type;
+                       ConfigHandle            *uci_handle;
+                       ConfigHandle *load_device_config(std::string device_id_param);
+                       std::string get_dir_name(std::string device_id);
+                       std::string get_file_name(std::string device_id_param);
        };
 }