Getting the category info from package DB.
authorSung-jae Park <nicesj.park@samsung.com>
Wed, 21 Jan 2015 09:43:07 +0000 (18:43 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Wed, 21 Jan 2015 09:43:07 +0000 (18:43 +0900)
This is required to support subscribe request based on category.

[model] Redwood,Kiran,B3(Wearable)
[binary_type] AP
[customer] Docomo/Orange/ATT/Open
[issue#] N/A
[problem]
[cause]
[solution]
[team] HomeTF
[request]
[horizontal_expansion]

Change-Id: I9f77842b0103e841f8feb2679979303be2512686

include/package.h
src/io.c
src/package.c

index 4107702..3fb6587 100644 (file)
@@ -39,6 +39,7 @@ extern struct inst_info *package_find_instance_by_timestamp(const char *pkgname,
 extern int package_dump_fault_info(struct pkg_info *info);
 extern int package_set_fault_info(struct pkg_info *info, double timestamp, const char *filename, const char *function);
 extern int package_get_fault_info(struct pkg_info *info, double *timestmap, const char **filename, const char **function);
+extern int package_set_category(struct pkg_info *info, const char *category);
 
 /*!
  * \brief
@@ -62,6 +63,7 @@ extern const int const package_gbar_width(const struct pkg_info *info);
 extern const int const package_gbar_height(const struct pkg_info *info);
 extern const char * const package_name(const struct pkg_info *info);
 extern const char * const package_libexec(struct pkg_info *info);
+extern const char *package_category(struct pkg_info *info);
 extern int package_network(struct pkg_info *info);
 extern Eina_List *package_ctx_info(struct pkg_info *pkginfo);
 
index fbd9ccb..9be3b9a 100644 (file)
--- a/src/io.c
+++ b/src/io.c
@@ -269,7 +269,7 @@ static inline int build_client_info(struct pkg_info *info)
 
 static inline int build_provider_info(struct pkg_info *info)
 {
-       static const char *dml = "SELECT provider.network, provider.abi, provider.secured, provider.box_type, provider.box_src, provider.box_group, provider.gbar_type, provider.gbar_src, provider.gbar_group, provider.libexec, provider.timeout, provider.period, provider.script, provider.pinup, pkgmap.appid, provider.direct_input, provider.hw_acceleration FROM provider, pkgmap WHERE pkgmap.pkgid = ? AND provider.pkgid = ?";
+       static const char *dml = "SELECT provider.network, provider.abi, provider.secured, provider.box_type, provider.box_src, provider.box_group, provider.gbar_type, provider.gbar_src, provider.gbar_group, provider.libexec, provider.timeout, provider.period, provider.script, provider.pinup, pkgmap.appid, provider.direct_input, provider.hw_acceleration, pkgmap.category FROM provider, pkgmap WHERE pkgmap.pkgid = ? AND provider.pkgid = ?";
        sqlite3_stmt *stmt;
        int ret;
        const char *tmp;
@@ -360,6 +360,7 @@ static inline int build_provider_info(struct pkg_info *info)
        package_set_pinup(info, sqlite3_column_int(stmt, 13));
        package_set_direct_input(info, sqlite3_column_int(stmt, 15));
        package_set_hw_acceleration(info, (const char *)sqlite3_column_text(stmt, 16));
+       package_set_category(info, (const char *)sqlite3_column_text(stmt, 17));
 
        sqlite3_reset(stmt);
        sqlite3_clear_bindings(stmt);
index af343e4..5a920ce 100644 (file)
@@ -121,6 +121,7 @@ struct pkg_info {
        char *script; /* script type: edje, ... */
        char *abi;
        char *hw_acceleration;
+       char *category;
 
        int fault_count;
        struct fault_info *fault_info;
@@ -1092,6 +1093,30 @@ HAPI int package_set_hw_acceleration(struct pkg_info *info, const char *hw_accel
        return DBOX_STATUS_ERROR_NONE;
 }
 
+HAPI int package_set_category(struct pkg_info *info, const char *category)
+{
+       char *tmp;
+
+       if (!category || !info) {
+               return DBOX_STATUS_ERROR_INVALID_PARAMETER;
+       }
+
+       tmp = strdup(category);
+       if (!tmp) {
+               ErrPrint("strdup: %s\n", strerror(errno));
+               return DBOX_STATUS_ERROR_OUT_OF_MEMORY;
+       }
+
+       DbgFree(info->category);
+       info->category = tmp;
+       return DBOX_STATUS_ERROR_NONE;
+}
+
+HAPI const char *package_category(struct pkg_info *info)
+{
+       return info->category;
+}
+
 /*!
  * \note
  * Add the instance to the package info.