add new API for external feature
authorNam KwanWoo <kw46.nam@samsung.com>
Wed, 3 Apr 2013 08:25:52 +0000 (17:25 +0900)
committerNam KwanWoo <kw46.nam@samsung.com>
Wed, 3 Apr 2013 08:25:52 +0000 (17:25 +0900)
Change-Id: Idee6cdb093e9d823abcae8667a9e40f4faa34845

include/system_info.h
include/system_info_private.h
packaging/capi-system-info.spec
src/system_info.c

index dd155b28531d8e278a6d3d94b89007f5dcbde232..9def5270db1beb4b2c1d9066bf2c8806ba62a145 100644 (file)
@@ -147,6 +147,11 @@ int system_info_get_value_double(system_info_key_e key, double *value);
  */
 int system_info_get_value_string(system_info_key_e key, char **value);
 
+int system_info_get_external_bool(const char *key, bool *value);
+int system_info_get_external_int(const char *key, int *value);
+int system_info_get_external_double(const char *key, double *value);
+int system_info_get_external_string(const char *key, char **value);
+
 /**
  * @}
  */
index 5332bce0cf0b91e6934a3ac64e6f9d0596729cdc..57f5d1156dd9819ff028ce4914e92e890f51c542 100644 (file)
@@ -31,6 +31,8 @@ extern "C"
 #define XML_FILE_PATH "/etc/config/sys-info.xml"
 #define MAXBUFSIZE 512
 
+#define EXTERNAL_VCONF_PREFIX "db/externals/"
+
 typedef enum {
        SYSTEM_INFO_DATA_TYPE_STRING,
        SYSTEM_INFO_DATA_TYPE_INT,
index d8ba454db16225d0f6c6218184bb57fda3b519da..22d4f66432651685bd7c25a36063e2f40f83bfdb 100644 (file)
@@ -1,8 +1,8 @@
 #sbs-git:slp/api/system-info capi-system-info 0.1.0 63d15bafa590ee9de869c8a8ade712e06828e5c3
 Name:       capi-system-info
 Summary:    A System Information library in SLP C API
-Version: 0.1.9
-Release:    1
+Version: 0.1.10
+Release:    0
 Group:      System/Libraries
 License:    Apache License, Version 2.0 and IEFT RFC Collection
 Source0:    %{name}-%{version}.tar.gz
index ebb6ea7c372efbe3a779a7c9aa31208912e1cf4f..bbf7973a59f029a852f1c0a74aa276064af260ca 100644 (file)
@@ -550,3 +550,59 @@ int system_info_get_value_string(system_info_key_e key, char **value)
 {
        return system_info_get_value(key, SYSTEM_INFO_DATA_TYPE_STRING, (void **)value);
 }
+
+int system_info_get_external_bool(const char *key, bool *value)
+{
+       char vconfkey[MAXBUFSIZE] = {0,};
+
+       snprintf(vconfkey, strlen(EXTERNAL_VCONF_PREFIX)+strlen(key)+1, "%s%s", EXTERNAL_VCONF_PREFIX, key);
+
+       if (system_info_vconf_get_value_bool(vconfkey, value)) {
+               LOGE("key : %s, failed get bool value", key);
+               return SYSTEM_INFO_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_INFO_ERROR_NONE;
+}
+
+int system_info_get_external_int(const char *key, int *value)
+{
+       char vconfkey[MAXBUFSIZE] = {0,};
+
+       snprintf(vconfkey, strlen(EXTERNAL_VCONF_PREFIX)+strlen(key)+1, "%s%s", EXTERNAL_VCONF_PREFIX, key);
+
+       if (system_info_vconf_get_value_int(vconfkey, value)) {
+               LOGE("key : %s, failed get int value", key);
+               return SYSTEM_INFO_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_INFO_ERROR_NONE;
+}
+
+int system_info_get_external_double(const char *key, double *value)
+{
+       char vconfkey[MAXBUFSIZE] = {0,};
+
+       snprintf(vconfkey, strlen(EXTERNAL_VCONF_PREFIX)+strlen(key)+1, "%s%s", EXTERNAL_VCONF_PREFIX, key);
+
+       if (system_info_vconf_get_value_double(vconfkey, value)) {
+               LOGE("key : %s, failed get double value", key);
+               return SYSTEM_INFO_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_INFO_ERROR_NONE;
+}
+
+int system_info_get_external_string(const char *key, char **value)
+{
+       char vconfkey[MAXBUFSIZE] = {0,};
+
+       snprintf(vconfkey, strlen(EXTERNAL_VCONF_PREFIX)+strlen(key)+1, "%s%s", EXTERNAL_VCONF_PREFIX, key);
+
+       if (system_info_vconf_get_value_string(vconfkey, value)) {
+               LOGE("key : %s, failed get string value", key);
+               return SYSTEM_INFO_ERROR_IO_ERROR;
+       }
+
+       return SYSTEM_INFO_ERROR_NONE;
+}