jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=b7a4bf5ae3f77ddcce8154959d2cf8d3c163e946

commit b7a4bf5ae3f77ddcce8154959d2cf8d3c163e946
Author: Daniel Zaoui <daniel.za...@samsung.com>
Date:   Tue Mar 18 16:40:24 2014 +0200

    Eolian: Integration of App Client
---
 src/bin/test_task_switcher.c |   6 +-
 src/lib/Makefile.am          |  10 ++-
 src/lib/elm_app_client.c     | 143 ++++++++-----------------------------------
 src/lib/elm_app_client.eo    |  70 +++++++++++++++++++++
 src/lib/elm_app_client_eo.h  |  18 +++---
 5 files changed, 118 insertions(+), 129 deletions(-)

diff --git a/src/bin/test_task_switcher.c b/src/bin/test_task_switcher.c
index 6f110fb..f1911ce 100644
--- a/src/bin/test_task_switcher.c
+++ b/src/bin/test_task_switcher.c
@@ -307,11 +307,11 @@ _app_open(const char *package)
    app = eo_add_custom(ELM_APP_CLIENT_CLASS, NULL,
                        elm_app_client_constructor(package));
    eo_do(app,
-         eo_event_callback_add(ELM_APP_CLIENT_EV_VIEW_LIST_LOADED,
+         eo_event_callback_add(ELM_APP_CLIENT_EVENT_VIEW_LIST_LOADED,
                                _view_list_update_cb, table),
-         eo_event_callback_add(ELM_APP_CLIENT_EV_VIEW_CREATED,
+         eo_event_callback_add(ELM_APP_CLIENT_EVENT_VIEW_CREATED,
                                _view_list_update_cb, table),
-         eo_event_callback_add(ELM_APP_CLIENT_EV_VIEW_DELETED,
+         eo_event_callback_add(ELM_APP_CLIENT_EVENT_VIEW_DELETED,
                                _view_list_update_cb, table));
    apps_list = eina_list_append(apps_list, app);
 }
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
index 2e83e12..2fa04ce 100644
--- a/src/lib/Makefile.am
+++ b/src/lib/Makefile.am
@@ -541,7 +541,9 @@ BUILT_SOURCES = \
                elm_access.eo.c \
                elm_access.eo.h \
                elm_actionslider.eo.c \
-               elm_actionslider.eo.h
+               elm_actionslider.eo.h \
+               elm_app_client.eo.c \
+               elm_app_client.eo.h
 
 EXTRA_DIST += \
             elm_widget.eo \
@@ -552,7 +554,8 @@ EXTRA_DIST += \
             elm_frame.eo \
             elm_hover.eo \
             elm_access.eo \
-            elm_actionslider.eo
+            elm_actionslider.eo \
+            elm_app_client.eo
 
 nodist_includesunstable_HEADERS = \
                                  elm_widget.eo.h \
@@ -563,5 +566,6 @@ nodist_includesunstable_HEADERS = \
                                  elm_frame.eo.h \
                                  elm_access.eo.h \
                                  elm_hover.eo.h \
-                                 elm_actionslider.eo.h
+                                 elm_actionslider.eo.h \
+                                 elm_app_client.eo.h
 
diff --git a/src/lib/elm_app_client.c b/src/lib/elm_app_client.c
index ae10286..64eb9d5 100644
--- a/src/lib/elm_app_client.c
+++ b/src/lib/elm_app_client.c
@@ -5,28 +5,10 @@
 #include <Elementary.h>
 #include "elm_priv.h"
 
-EAPI Eo_Op ELM_APP_CLIENT_BASE_ID = EO_NOOP;
-
 #define MY_CLASS ELM_APP_CLIENT_CLASS
 
 #define MY_CLASS_NAME "Elm_App_Client"
 
-EAPI const Eo_Event_Description _ELM_APP_CLIENT_EV_VIEW_CREATED =
-         EO_EVENT_DESCRIPTION("view,created",
-                              "Called when a view of this application is 
created.");
-
-EAPI const Eo_Event_Description _ELM_APP_CLIENT_EV_VIEW_DELETED =
-         EO_EVENT_DESCRIPTION("view,deleted",
-                              "Called when a view of this application is 
deleted.");
-
-EAPI const Eo_Event_Description _ELM_APP_CLIENT_EV_VIEW_LIST_LOADED =
-         EO_EVENT_DESCRIPTION("view_list,loaded",
-                              "Called when list of view is loaded.");
-
-EAPI const Eo_Event_Description _ELM_APP_CLIENT_EV_TERMINATED =
-         EO_EVENT_DESCRIPTION("application,terminated",
-                              "Called when application is terminated.");
-
 typedef struct
 {
    Eldbus_Proxy *app_proxy;
@@ -59,7 +41,7 @@ _sub_path_process(Elm_App_Client *eo, Eldbus_Message_Iter 
*obj_iter, Elm_App_Cli
                              elm_app_client_view_constructor(obj_path));
         eina_hash_add(data->views, obj_path, view);
         if (!loading_list)
-          eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EV_VIEW_CREATED, 
view, NULL));
+          eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EVENT_VIEW_CREATED, 
view, NULL));
      }
 }
 
@@ -78,7 +60,7 @@ _objects_get(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending EINA
    while (eldbus_message_iter_get_and_next(array_path, '{', &path))
      _sub_path_process(eo, path, cdata, EINA_TRUE);
 
-   eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EV_VIEW_LIST_LOADED,
+   eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EVENT_VIEW_LIST_LOADED,
                                     NULL, NULL));
 }
 
@@ -123,7 +105,7 @@ _iface_del(void *data, const Eldbus_Message *msg)
           }
 
         eina_hash_del(cdata->views, path, NULL);
-        eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EV_VIEW_DELETED,
+        eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EVENT_VIEW_DELETED,
                                          view, NULL));
         eo_del(view);
      }
@@ -165,17 +147,15 @@ _pkg_name_owner_changed_cb(void *data, const char *bus 
EINA_UNUSED, const char *
           }
 
         eina_hash_del(cdata->views, path, NULL);
-        eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EV_VIEW_DELETED,
+        eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EVENT_VIEW_DELETED,
                                          view, NULL));
         eo_del(view);
      }
 }
 
-static void
-_app_client_constructor(Eo *eo, void *_pd, va_list *list)
+EOLIAN static void
+_elm_app_client_constructor(Eo *eo, Elm_App_Client_Data *data, const char *pkg)
 {
-   Elm_App_Client_Data *data = _pd;
-   const char *pkg = va_arg(*list, const char *);
    Eldbus_Connection *conn;
    Eldbus_Object *obj;
    char *path;
@@ -244,7 +224,7 @@ _create_view_cb(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
         view = eo_add_custom(ELM_APP_CLIENT_VIEW_CLASS, eo,
                              elm_app_client_view_constructor(view_path));
         eina_hash_add(cdata->views, view_path, view);
-        eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EV_VIEW_CREATED,
+        eo_do(eo, eo_event_callback_call(ELM_APP_CLIENT_EVENT_VIEW_CREATED,
                                          view, NULL));
      }
 
@@ -258,14 +238,9 @@ _create_view_cb(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending)
      cb(user_data, view, NULL, NULL);
 }
 
-static void
-_view_open(Eo *eo, void *_pd, va_list *list)
+EOLIAN static Elm_App_Client_Pending *
+_elm_app_client_view_open(Eo *eo, Elm_App_Client_Data *data, Eina_Value *args, 
Elm_App_Client_Open_View_Cb cb, const void *user_data)
 {
-   Elm_App_Client_Data *data = _pd;
-   Eina_Value *args = va_arg(*list, Eina_Value *);
-   Elm_App_Client_Open_View_Cb cb = va_arg(*list, Elm_App_Client_Open_View_Cb);
-   const void *user_data = va_arg(*list, const void *);
-   Elm_App_Client_Pending **view_open_pending = va_arg(*list, 
Elm_App_Client_Pending**);
    Eldbus_Message *msg;
    Eldbus_Pending *pending;
 
@@ -278,7 +253,7 @@ _view_open(Eo *eo, void *_pd, va_list *list)
              eldbus_message_unref(msg);
              //TODO test to find out what type eina_value must be
              ERR("Eina_Value of args don't have a structure of a{sv}");
-             return;
+             return NULL;
           }
      }
    else
@@ -296,62 +271,52 @@ _view_open(Eo *eo, void *_pd, va_list *list)
    if (cb)
      eldbus_pending_data_set(pending, "user_cb", cb);
 
-   if (view_open_pending)
-     *view_open_pending = pending;
+   return pending;
 }
 
-static void
-_views_get(Eo *eo EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Iterator*
+_elm_app_client_views_get(Eo *eo EINA_UNUSED, Elm_App_Client_Data *data)
 {
-   Elm_App_Client_Data *data = _pd;
-   Eina_Iterator **view_iter = va_arg(*list, Eina_Iterator **);
-
-   *view_iter = eina_hash_iterator_data_new(data->views);
+   return eina_hash_iterator_data_new(data->views);
 }
 
 static void
-_all_close(Eo *eo EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED)
+_elm_app_client_view_all_close(Eo *obj EINA_UNUSED, Elm_App_Client_Data *data)
 {
-   Elm_App_Client_Data *data = _pd;
    eldbus_proxy_call(data->app_proxy, "CloseAllViews", NULL, NULL, -1, "");
 }
 
-static void
-_terminate(Eo *eo EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_app_client_terminate(Eo *eo EINA_UNUSED, Elm_App_Client_Data *data)
 {
-   Elm_App_Client_Data *data = _pd;
    eldbus_proxy_call(data->app_proxy, "Terminate", NULL, NULL, -1, "");
 }
 
-static void
-_package_get(Eo *eo EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static const char*
+_elm_app_client_package_get(Eo *eo EINA_UNUSED, Elm_App_Client_Data *data)
 {
-   Elm_App_Client_Data *data = _pd;
    Eldbus_Object *obj;
-   const char **package = va_arg(*list, const char **);
 
    obj = eldbus_proxy_object_get(data->app_proxy);
-   *package = eldbus_object_bus_name_get(obj);
+   return eldbus_object_bus_name_get(obj);
 }
 
-static void
-_view_open_cancel(Eo *eo EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_app_client_view_open_cancel(Eo *eo EINA_UNUSED, Elm_App_Client_Data *_pd 
EINA_UNUSED, Elm_App_Client_Pending *pending)
 {
-   Elm_App_Client_Pending *pending = va_arg(*list, Elm_App_Client_Pending *);
    eldbus_pending_cancel(pending);
 }
 
-static void
-_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_app_client_eo_base_constructor(Eo *obj, Elm_App_Client_Data *_pd 
EINA_UNUSED)
 {
    eo_error_set(obj);
    ERR("Only custom constructor can be used with '%s' class", MY_CLASS_NAME);
 }
 
-static void
-_destructor(Eo *eo, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_app_client_eo_base_destructor(Eo *eo, Elm_App_Client_Data *data)
 {
-   Elm_App_Client_Data *data = _pd;
    Eldbus_Object *obj;
    Eldbus_Connection *conn;
    Eina_Iterator *iter;
@@ -375,58 +340,4 @@ _destructor(Eo *eo, void *_pd, va_list *list EINA_UNUSED)
    eo_do_super(eo, MY_CLASS, eo_destructor());
 }
 
-static void
-_class_constructor(Eo_Class *klass)
-{
-   const Eo_Op_Func_Description func_desc[] = {
-      EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
-      EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_DESTRUCTOR), _destructor),
-      EO_OP_FUNC(ELM_APP_CLIENT_ID(ELM_APP_CLIENT_SUB_ID_CONSTRUCTOR), 
_app_client_constructor),
-      EO_OP_FUNC(ELM_APP_CLIENT_ID(ELM_APP_CLIENT_SUB_ID_VIEW_OPEN), 
_view_open),
-      EO_OP_FUNC(ELM_APP_CLIENT_ID(ELM_APP_CLIENT_SUB_ID_VIEWS_GET), 
_views_get),
-      EO_OP_FUNC(ELM_APP_CLIENT_ID(ELM_APP_CLIENT_SUB_ID_VIEWS_ALL_CLOSE), 
_all_close),
-      EO_OP_FUNC(ELM_APP_CLIENT_ID(ELM_APP_CLIENT_SUB_ID_TERMINATE), 
_terminate),
-      EO_OP_FUNC(ELM_APP_CLIENT_ID(ELM_APP_CLIENT_SUB_ID_PACKAGE_GET), 
_package_get),
-      EO_OP_FUNC(ELM_APP_CLIENT_ID(ELM_APP_CLIENT_SUB_ID_VIEW_OPEN_CANCEL), 
_view_open_cancel),
-      EO_OP_FUNC_SENTINEL
-   };
-   eo_class_funcs_set(klass, func_desc);
-}
-
-static const Eo_Op_Description op_desc[] = {
-     EO_OP_DESCRIPTION(ELM_APP_CLIENT_SUB_ID_CONSTRUCTOR,
-                       "Constructor of elm_app_client."),
-     EO_OP_DESCRIPTION(ELM_APP_CLIENT_SUB_ID_VIEW_OPEN, "Open a view."),
-     EO_OP_DESCRIPTION(ELM_APP_CLIENT_SUB_ID_VIEWS_GET,
-                       "Return a iterator with all views of application."),
-     EO_OP_DESCRIPTION(ELM_APP_CLIENT_SUB_ID_VIEWS_ALL_CLOSE,
-                       "Close all views of application."),
-     EO_OP_DESCRIPTION(ELM_APP_CLIENT_SUB_ID_TERMINATE,
-                       "Terminate applicaiton"),
-     EO_OP_DESCRIPTION(ELM_APP_CLIENT_SUB_ID_PACKAGE_GET,
-                       "Return the package name of application"),
-     EO_OP_DESCRIPTION(ELM_APP_CLIENT_SUB_ID_VIEW_OPEN_CANCEL,
-                       "Cancel view opening."),
-     EO_OP_DESCRIPTION_SENTINEL
-};
-
-static const Eo_Event_Description *event_desc[] = {
-     ELM_APP_CLIENT_EV_VIEW_CREATED,
-     ELM_APP_CLIENT_EV_VIEW_DELETED,
-     ELM_APP_CLIENT_EV_VIEW_LIST_LOADED,
-     ELM_APP_CLIENT_EV_TERMINATED,
-     NULL
-};
-
-static const Eo_Class_Description class_desc = {
-     EO_VERSION,
-     MY_CLASS_NAME,
-     EO_CLASS_TYPE_REGULAR,
-     EO_CLASS_DESCRIPTION_OPS(&ELM_APP_CLIENT_BASE_ID, op_desc, 
ELM_APP_CLIENT_SUB_ID_LAST),
-     event_desc,
-     sizeof(Elm_App_Client_Data),
-     _class_constructor,
-     NULL
-};
-
-EO_DEFINE_CLASS(elm_app_client_class_get, &class_desc, EO_BASE_CLASS, NULL);
+#include "elm_app_client.eo.c"
diff --git a/src/lib/elm_app_client.eo b/src/lib/elm_app_client.eo
new file mode 100644
index 0000000..5237ddf
--- /dev/null
+++ b/src/lib/elm_app_client.eo
@@ -0,0 +1,70 @@
+class Elm_App_Client (Eo_Base)
+{
+   eo_prefix: elm_app_client;
+   constructors {
+      constructor {
+         /*@ Class constructor of elm_app_client. */
+         params {
+            @in const char *package; /*@ Package of application */
+         }
+      }
+   }
+   properties {
+      views {
+         get {
+            /*@ Return a iterator with all views of application. */
+            legacy null;
+         }
+         values {
+            Eina_Iterator *ret; /*@ the iterator with all views, must be freed 
after use */
+         }
+      }
+      package {
+         get {
+            /*@ Return the application package. */
+            legacy null;
+         }
+         values {
+            const char *ret; /*@ application package */
+         }
+      }
+   }
+   methods {
+      view_all_close {
+         /*@ Close all views of application. */
+         legacy null;
+      }
+      terminate {
+         /*@ Terminate application. */
+         legacy null;
+      }
+      view_open {
+         /*@ Open a application view. */
+         params {
+            @in Eina_Value *args; /*@ an array of */
+            @in Elm_App_Client_Open_View_Cb view_open_cb; /*@ callback to be 
called when view open */
+            @in const void *data; /*@ calback user data */
+         }
+         return Elm_App_Client_Pending *; /* handler to cancel the view 
opening if it takes to long */
+         legacy null;
+      }
+      view_open_cancel {
+         /*@ Cancel a pending elm_app_client_view_open(). */
+         params {
+            @in Elm_App_Client_Pending *pending; /*@ the view open handler */
+         }
+         legacy null;
+      }
+   }
+   implements {
+      Eo_Base::constructor;
+      Eo_Base::destructor;
+   }
+   events {
+      view,created; /*@ Called when a view of this application is created. */
+      view,deleted; /*@ Called when a view of this application is deleted. */
+      view_list,loaded; /*@ Called when list of view is loaded. */
+      application,terminated; /*@ Called when application is terminated. */
+   }
+
+}
diff --git a/src/lib/elm_app_client_eo.h b/src/lib/elm_app_client_eo.h
index 5337196..02e7006 100644
--- a/src/lib/elm_app_client_eo.h
+++ b/src/lib/elm_app_client_eo.h
@@ -1,3 +1,13 @@
+typedef Eo Elm_App_Client;
+typedef Eo Elm_App_Client_View;
+
+typedef Eldbus_Pending Elm_App_Client_Pending;
+
+typedef void (*Elm_App_Client_Open_View_Cb)(void *data, Elm_App_Client_View 
*view, const char *error, const char *error_message);
+
+#include "elm_app_client.eo.h"
+
+#if 0
 #define ELM_APP_CLIENT_CLASS elm_app_client_class_get()
 
 const Eo_Class *elm_app_client_class_get(void) EINA_CONST;
@@ -16,13 +26,6 @@ enum
    ELM_APP_CLIENT_SUB_ID_LAST
 };
 
-typedef Eo Elm_App_Client;
-typedef Eo Elm_App_Client_View;
-
-typedef Eldbus_Pending Elm_App_Client_Pending;
-
-typedef void (*Elm_App_Client_Open_View_Cb)(void *data, Elm_App_Client_View 
*view, const char *error, const char *error_message);
-
 #define ELM_APP_CLIENT_ID(sub_id) (ELM_APP_CLIENT_BASE_ID + sub_id)
 
 /**
@@ -109,3 +112,4 @@ extern EAPI const Eo_Event_Description 
_ELM_APP_CLIENT_EV_VIEW_LIST_LOADED;
 
 extern EAPI const Eo_Event_Description _ELM_APP_CLIENT_EV_TERMINATED;
 #define ELM_APP_CLIENT_EV_TERMINATED (&(_ELM_APP_CLIENT_EV_TERMINATED))
+#endif

-- 


Reply via email to