Change the return type for callbacks 07/175107/1
authorJunghoon Park <jh9216.park@samsung.com>
Mon, 9 Apr 2018 01:56:47 +0000 (10:56 +0900)
committerJunghoon Park <jh9216.park@samsung.com>
Mon, 9 Apr 2018 01:56:47 +0000 (10:56 +0900)
- The return type for callbacks was changed from 'void' to
  'bool' in order to stop the iteration

Change-Id: I2bd5661850658615a774e6d6b603394e94c91335
Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
idlc/c_gen/c_body_gen_base_cb.h
idlc/c_gen/c_header_gen_base_cb.h

index bb4f46e..aa0e527 100644 (file)
@@ -120,7 +120,7 @@ $$
 const char CB_STRUCT_ITERATOR[] =
 R"__c_cb(
 int rpc_port_$$_foreach_$$(rpc_port_$$_h h,
-        void (*callback)($$$$, void *user_data), void *user_data)
+        bool (*callback)($$$$, void *user_data), void *user_data)
 {
     if (!h || !callback) {
         dlog_print(DLOG_ERROR, LOG_TAG, "Invalid parameter");
@@ -288,7 +288,9 @@ R"__c_cb(do {
             continue;
         }
 
-        callback($$, user_data);
+        bool ret = callback($$, user_data);
+        if (!ret)
+            break;
     }
 } while (0);
 )__c_cb";
index 40a0560..b18fe19 100644 (file)
@@ -56,7 +56,7 @@ int rpc_port_$$_get_$$(rpc_port_$$_h h, $$$$);
 const char CB_STRUCT_ITERATOR[] =
 R"__c_cb(
 int rpc_port_$$_foreach_$$(rpc_port_$$_h h,
-        void (*callback)($$$$, void *user_data), void *user_data);
+        bool (*callback)($$$$, void *user_data), void *user_data);
 )__c_cb";
 
 const char CB_STRUCT_CLONER[] =