summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasayuki Sasaki <masayuki.sasaki@mail.toyota-td.jp>2013-12-25 21:19:32 +0900
committerMasayuki Sasaki <masayuki.sasaki@mail.toyota-td.jp>2013-12-26 12:48:56 +0900
commitdb63ae11840c24070186cd3e177cbde9038c0941 (patch)
tree4d149e514157ebb0ffe612aa62f99b4db895902d
parent274fac46220d1f7cde855a5297f6f156558c0c0b (diff)
downloadico-uxf-utilities-db63ae11840c24070186cd3e177cbde9038c0941.tar.gz
ico-uxf-utilities-db63ae11840c24070186cd3e177cbde9038c0941.tar.bz2
ico-uxf-utilities-db63ae11840c24070186cd3e177cbde9038c0941.zip
Change-Id: I711883cf479daf7f91e689d7755d37d54b5061f7 Signed-off-by: Masayuki Sasaki <masayuki.sasaki@mail.toyota-td.jp>
-rw-r--r--configure.ac2
-rw-r--r--ico-uxf-utilities.manifest8
-rw-r--r--include/ico_dbus_amb_efl.h19
-rw-r--r--packaging/ico-uxf-utilities.changes5
-rw-r--r--packaging/ico-uxf-utilities.spec16
-rw-r--r--src/ico_dbus_amb_efl.c69
6 files changed, 106 insertions, 13 deletions
diff --git a/configure.ac b/configure.ac
index 42d3710..3bb683f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
AC_PREREQ([2.68])
AC_INIT([ico-uxf-utilities],
- [0.9.03],
+ [0.9.06],
[https://BUG-REPORT-ADDRESS])
AC_CONFIG_HEADERS([config.h])
diff --git a/ico-uxf-utilities.manifest b/ico-uxf-utilities.manifest
new file mode 100644
index 0000000..c4908cd
--- /dev/null
+++ b/ico-uxf-utilities.manifest
@@ -0,0 +1,8 @@
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+ <assign>
+ <filesystem path="/var/log/ico" label="User"/>
+ </assign>
+</manifest>
diff --git a/include/ico_dbus_amb_efl.h b/include/ico_dbus_amb_efl.h
index 89a3a8e..6d7518f 100644
--- a/include/ico_dbus_amb_efl.h
+++ b/include/ico_dbus_amb_efl.h
@@ -22,9 +22,21 @@ union dbus_value_variant {
char *sval;
};
+typedef struct _ico_dbus_error
+{
+ const char *name; /**< public error name field */
+ const char *message; /**< public error message field */
+} ico_dbus_error_t;
+
typedef void (*ico_dbus_amb_getcb)(const char *objectname, const char *property, dbus_type type, union dbus_value_variant value, void *user_data);
typedef void (*ico_dbus_amb_noticb)(const char *objectname, const char *property, dbus_type type, union dbus_value_variant value, int sequence, struct timeval tv, void *user_data);
+typedef void (*ico_dbus_amb_findcb)(const char *objectname,
+ const char *property,
+ dbus_type type,
+ void *user_data,
+ ico_dbus_error_t *error);
+
int ico_dbus_amb_start(void);
int ico_dbus_amb_end(void);
int ico_dbus_amb_get(const char *objectname, const char *property, int zone, dbus_type type, ico_dbus_amb_getcb cb, void *user_data);
@@ -33,7 +45,12 @@ int ico_dbus_amb_subscribe(const char *objectname, const char *property, int zon
int ico_dbus_amb_unsubscribe(const char *objectname, const char *property, int zone);
//int ico_dbus_amb_gethistory(const char *objectname, const char *property, int zone);
//int ico_dbus_amb_getlist(void);
-
+int ico_dbus_amb_find_property(const char *objectname,
+ const char *property,
+ int zone,
+ dbus_type type,
+ ico_dbus_amb_findcb cb,
+ void *user_data);
#ifdef __cplusplus
}
#endif
diff --git a/packaging/ico-uxf-utilities.changes b/packaging/ico-uxf-utilities.changes
index 4b0ec69..11199a2 100644
--- a/packaging/ico-uxf-utilities.changes
+++ b/packaging/ico-uxf-utilities.changes
@@ -1,3 +1,8 @@
+* Thu Dec 26 2013 Shibata Makoto <shibata@mac.tec.toyota.co.jp> submit/tizen/20131219.041934@fb2d235
+- 0.9.06 release
+-- revise: add manifest file for SMACK label setting.
+-- add: ico_dbus_amb_find_property() API.
+
* Fri Nov 29 2013 Shibata Makoto <shibata@mac.tec.toyota.co.jp> ivi_oct_m2@01a342a
- 0.9.04 release
-- Addition: DBus API for AMB.
diff --git a/packaging/ico-uxf-utilities.spec b/packaging/ico-uxf-utilities.spec
index f9bf2dc..b00ca65 100644
--- a/packaging/ico-uxf-utilities.spec
+++ b/packaging/ico-uxf-utilities.spec
@@ -1,7 +1,7 @@
Name: ico-uxf-utilities
Summary: Common utilities for ico uifw
-Version: 0.9.04
-Release: 2.1
+Version: 0.9.06
+Release: 1.1
Group: Automotive/Libraries
License: Apache-2.0
URL: ""
@@ -47,21 +47,29 @@ mkdir -p %{buildroot}/%{_includedir}/ico-util/
cp -f include/ico_uws.h %{buildroot}/%{_includedir}/ico-util/
cp -f include/ico_log.h %{buildroot}/%{_includedir}/ico-util/
cp -f include/ico_dbus_amb_efl.h %{buildroot}/%{_includedir}/ico-util/
+# log output
+mkdir -p %{buildroot}/%{_localstatedir}/log/ico/
+chmod 0777 %{buildroot}/%{_localstatedir}/log/ico/
%post
/sbin/ldconfig
-mkdir -p %{_localstatedir}/log/ico/
-chmod 0777 %{_localstatedir}/log/ico/
%postun -p /sbin/ldconfig
%files
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
%license LICENSE-2.0
%{_libdir}/libico-util*
+%defattr(777,app,app,-)
+%{_localstatedir}/log/ico/
%files devel
+%manifest %{name}.manifest
%defattr(-,root,root,-)
%{_includedir}/ico-util/ico_uws.h
%{_includedir}/ico-util/ico_log.h
%{_includedir}/ico-util/ico_dbus_amb_efl.h
%{_libdir}/libico-util*
+%defattr(777,app,app,-)
+%{_localstatedir}/log/ico/
diff --git a/src/ico_dbus_amb_efl.c b/src/ico_dbus_amb_efl.c
index be7bb39..6cd2231 100644
--- a/src/ico_dbus_amb_efl.c
+++ b/src/ico_dbus_amb_efl.c
@@ -2,6 +2,7 @@
#include <E_DBus.h>
#include <stdio.h>
+#include "ico_log.h"
#include "ico_dbus_amb_efl.h"
#define LATER1024
@@ -28,6 +29,7 @@ enum MethodType {
METHOD_GETHISTORY,
METHOD_SUBSCRIBE,
METHOD_UNSUBSCRIBE,
+ METHOD_FIND,
};
struct _method_args {
@@ -38,6 +40,7 @@ struct _method_args {
union dbus_value_variant value;
ico_dbus_amb_getcb getcb;
ico_dbus_amb_noticb noticb;
+ ico_dbus_amb_findcb findcb;
enum MethodType mtype;
void *user_data;
};
@@ -113,10 +116,6 @@ ICO_API int ico_dbus_amb_set(const char *objectname, const char *property, int z
if (property == NULL || strlen(property) == 0) {
return -1;
}
- if (type == DBUST_TYPE_STRING && value.sval == NULL) {
- return -1;
- }
-
args = (struct _method_args*)malloc(sizeof(struct _method_args));
if (args == NULL) {
return -1;
@@ -211,6 +210,36 @@ ICO_API int ico_dbus_amb_gethistory(const char *objectname, const char *property
}
#endif
+ICO_API int ico_dbus_amb_find_property(const char *objectname,
+ const char *property,
+ int zone,
+ dbus_type type,
+ ico_dbus_amb_findcb cb,
+ void *user_data)
+{
+ struct _method_args *args;
+
+ if (objectname == NULL || strlen(objectname) == 0) {
+ return -1;
+ }
+ if (property == NULL || strlen(property) == 0) {
+ return -1;
+ }
+ args = (struct _method_args*)malloc(sizeof(struct _method_args));
+ if (args == NULL) {
+ return -1;
+ }
+ args->objectname = strdup(objectname);
+ args->property = strdup(property);
+ args->findcb = cb;
+ args->zone = zone;
+ args->dtype = type;
+ args->mtype = METHOD_FIND;
+ args->user_data = user_data;
+
+ return getproperty(args);
+}
+
int getproperty(struct _method_args *args) {
DBusMessage *msg;
#ifdef LATER1024
@@ -242,14 +271,31 @@ void getproperty_cb(void *data, DBusMessage *msg, DBusError *error) {
struct _signal_handler *_sig_handler, *head;
struct timeval tv;
+ args = (struct _method_args*)data;
+
if (!msg) {
- if (error) {
- fprintf(stderr, "%s: %s\n", error->name, error->message);
+ if (NULL != args && NULL != error) {
+ ICO_ERR("FindProperty[%s]: %s : %s", args->property,
+ error->name, error->message);
+ if (METHOD_FIND == args->mtype) {
+ ico_dbus_error_t ico_error;
+ ico_error.name = error->name;
+ ico_error.message = error->message;
+ if (NULL != args->findcb) {
+ args->findcb(args->objectname, args->property, args->dtype,
+ args->user_data, &ico_error);
+ }
+ free(args->objectname);
+ free(args->property);
+ free(args);
+ }
+ }
+ else {
+ ICO_ERR("FindProperty: %s : %s", error->name, error->message);
}
return;
}
dbus_error_init(&e);
- args = (struct _method_args*)data;
dbus_message_get_args(msg, &e, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID);
//printf("Object Path:%s\n", path);
@@ -339,6 +385,15 @@ void getproperty_cb(void *data, DBusMessage *msg, DBusError *error) {
break;
case METHOD_UNSUBSCRIBE :
break;
+ case METHOD_FIND :
+ if (NULL != args->findcb) {
+ args->findcb(args->objectname, args->property, args->dtype,
+ args->user_data, NULL);
+ free(args->objectname);
+ free(args->property);
+ free(args);
+ }
+ break;
default:
break;
}