Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/bin


Modified Files:
        ecore_dbus_hal_test.c ecore_dbus_test.c 


Log Message:
Use callbacks for method return, not events

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/bin/ecore_dbus_hal_test.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- ecore_dbus_hal_test.c       27 Jul 2006 13:29:43 -0000      1.2
+++ ecore_dbus_hal_test.c       27 Jul 2006 15:06:13 -0000      1.3
@@ -7,13 +7,16 @@
 
 static int ecore_dbus_event_server_add(void *udata, int ev_type, void *ev);
 static int ecore_dbus_event_server_del(void *udata, int ev_type, void *ev);
-static int ecore_dbus_event_server_method_return(void *udata, int ev_type, 
void *ev);
+
+static void ecore_dbus_method_name_has_owner_cb(void *data, 
Ecore_DBus_Message_Type type,
+                                               Ecore_DBus_Method_Return 
*reply);
+static void ecore_dbus_method_add_match_cb(void *data, Ecore_DBus_Message_Type 
type,
+                                          Ecore_DBus_Method_Return *reply);
+
 static int ecore_dbus_event_server_signal(void *udata, int ev_type, void *ev);
 
 static const char *event_type_get(Ecore_DBus_Message_Type type);
 
-static int state = 0;
-
 static Ecore_DBus_Server *svr = NULL;
 
 int
@@ -38,8 +41,6 @@
                                               ecore_dbus_event_server_add, 
NULL);
        handler[i++] = ecore_event_handler_add(ECORE_DBUS_EVENT_SERVER_DEL,
                                               ecore_dbus_event_server_del, 
NULL);
-       handler[i++] = 
ecore_event_handler_add(ECORE_DBUS_EVENT_SERVER_METHOD_RETURN,
-                                              
ecore_dbus_event_server_method_return, NULL);
        handler[i++] = ecore_event_handler_add(ECORE_DBUS_EVENT_SERVER_SIGNAL,
                                               ecore_dbus_event_server_signal, 
NULL);
 
@@ -61,8 +62,8 @@
 
    event = ev;
    printf("ecore_dbus_event_server_add\n");
-   ecore_dbus_method_name_has_owner(event->server, "org.freedesktop.Hal");
-   state++;
+   ecore_dbus_method_name_has_owner(event->server, "org.freedesktop.Hal",
+                                   ecore_dbus_method_name_has_owner_cb, NULL);
    return 0;
 }
 
@@ -78,54 +79,58 @@
    return 0;
 }
 
-static int
-ecore_dbus_event_server_method_return(void *udata, int ev_type, void *ev)
+static void
+ecore_dbus_method_name_has_owner_cb(void *data, Ecore_DBus_Message_Type type,
+                                   Ecore_DBus_Method_Return *reply)
 {
-   Ecore_DBus_Event_Server_Data *event;
-
-   event = ev;
-   printf("ecore_dbus_event_server_method_return %s %s.%s\n", 
event_type_get(event->type),
-                                                             
event->header.interface,
-                                                             
event->header.member);
-   printf("state: %d\n", state);
-   if (state == 1)
-     {
-       int *exists;
-
-       exists = event->args[0].value;
-       if ((!exists) || (!*exists))
-         {
-            printf("No hal\n");
-            ecore_main_loop_quit();
-         }
-       else
-         {
-            printf("Add listener for devices\n");
-            ecore_dbus_method_add_match(event->server,
-                  "type='signal',"
-                  "interface='org.freedesktop.Hal.Manager',"
-                  "sender='org.freedesktop.Hal',"
-                  "path='/org/freedesktop/Hal/Manager'");
-
-            state++;
-         }
+   unsigned int *exists;
+   if (type != ECORE_DBUS_MESSAGE_TYPE_METHOD_RETURN)
+     {
+       ecore_main_loop_quit();
+       return;
      }
-   else if (state == 2)
+   printf("ecore_dbus_event_server_method_return %s %s.%s\n", 
event_type_get(reply->type),
+                                                             
reply->header.interface,
+                                                             
reply->header.member);
+
+   exists = reply->args[0].value;
+   if ((!exists) || (!*exists))
      {
-       printf("Should be listening for device changes!\n");
+       printf("No hal\n");
+       ecore_main_loop_quit();
      }
    else
      {
-       printf("Hm: %s\n", event->header.member);
-       ecore_dbus_message_print(event->message);
+       printf("Add listener for devices\n");
+       ecore_dbus_method_add_match(reply->server,
+                                   "type='signal',"
+                                   "interface='org.freedesktop.Hal.Manager',"
+                                   "sender='org.freedesktop.Hal',"
+                                   "path='/org/freedesktop/Hal/Manager'",
+                                   ecore_dbus_method_add_match_cb, NULL);
+
      }
-   return 0;
+}
+
+static void
+ecore_dbus_method_add_match_cb(void *data, Ecore_DBus_Message_Type type,
+                              Ecore_DBus_Method_Return *reply)
+{
+   if (type != ECORE_DBUS_MESSAGE_TYPE_METHOD_RETURN)
+     {
+       ecore_main_loop_quit();
+       return;
+     }
+   printf("ecore_dbus_event_server_method_return %s %s.%s\n", 
event_type_get(reply->type),
+                                                             
reply->header.interface,
+                                                             
reply->header.member);
+   printf("Should be listening for device changes!\n");
 }
 
 static int
 ecore_dbus_event_server_signal(void *udata, int ev_type, void *ev)
 {
-   Ecore_DBus_Event_Server_Data *event;
+   Ecore_DBus_Event_Server_Signal *event;
 
    event = ev;
    printf("ecore_dbus_event_server_signal %s %s.%s\n", 
event_type_get(event->type),
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/bin/ecore_dbus_test.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- ecore_dbus_test.c   27 Jul 2006 13:29:43 -0000      1.8
+++ ecore_dbus_test.c   27 Jul 2006 15:06:13 -0000      1.9
@@ -7,7 +7,10 @@
 
 static int ecore_dbus_event_server_add(void *udata, int ev_type, void *ev);
 static int ecore_dbus_event_server_del(void *udata, int ev_type, void *ev);
-static int ecore_dbus_event_server_method_return(void *udata, int ev_type, 
void *ev);
+
+static void ecore_dbus_method_list_names_cb(void *data,
+                                           Ecore_DBus_Message_Type type,
+                                           Ecore_DBus_Method_Return *ev);
 
 static const char * event_type_get(Ecore_DBus_Message_Type type);
 
@@ -34,12 +37,10 @@
                                               ecore_dbus_event_server_add, 
NULL);
        handler[i++] = ecore_event_handler_add(ECORE_DBUS_EVENT_SERVER_DEL,
                                               ecore_dbus_event_server_del, 
NULL);
-       handler[i++] = 
ecore_event_handler_add(ECORE_DBUS_EVENT_SERVER_METHOD_RETURN,
-                                              
ecore_dbus_event_server_method_return, NULL);
 
        ecore_main_loop_begin();
 
-       for (i = 0; i < 3; i++)
+       for (i = 0; i < 2; i++)
          ecore_event_handler_del(handler[i]);
 
        if (svr) ecore_dbus_server_del(svr);
@@ -55,7 +56,7 @@
 
    event = ev;
    printf("ecore_dbus_event_server_add\n");
-   ecore_dbus_method_list_names(event->server);
+   ecore_dbus_method_list_names(event->server, 
ecore_dbus_method_list_names_cb, NULL);
    return 0;
 }
 
@@ -71,19 +72,19 @@
    return 0;
 }
 
-static int
-ecore_dbus_event_server_method_return(void *udata, int ev_type, void *ev)
+static void
+ecore_dbus_method_list_names_cb(void *data,
+                               Ecore_DBus_Message_Type type,
+                               Ecore_DBus_Method_Return *reply)
 {
-   Ecore_DBus_Event_Server_Data *event;
    Ecore_List *names;
 
-   event = ev;
-   printf("ecore_dbus_event_server_data %s %s.%s\n", 
event_type_get(event->type),
-                                                    event->header.interface,
-                                                    event->header.member);
+   printf("ecore_dbus_event_server_data %s %s.%s\n", 
event_type_get(reply->type),
+                                                    reply->header.interface,
+                                                    reply->header.member);
 
-   printf("Got names %c\n", event->args[0].type);
-   names = event->args[0].value;
+   names = reply->args[0].value;
+   printf("Got names %c\n", reply->args[0].type);
    if (names)
      {
        char *name;



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to