00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __DBUSXX_ECORE_INTEGRATION_H
00026 #define __DBUSXX_ECORE_INTEGRATION_H
00027
00028 #include <Ecore.h>
00029
00030 #include "api.h"
00031 #include "dispatcher.h"
00032 #include "Ecore.h"
00033
00034 namespace DBus
00035 {
00036
00037 namespace Ecore
00038 {
00039
00040 class BusDispatcher;
00041
00042 class DXXAPI BusTimeout : public Timeout
00043 {
00044 private:
00045
00046 BusTimeout(Timeout::Internal *);
00047
00048 ~BusTimeout();
00049
00050 void toggle();
00051
00052 static Eina_Bool timeout_handler(void *);
00053
00054 void _enable();
00055
00056 void _disable();
00057
00058 private:
00059 Ecore_Timer *_etimer;
00060
00061 friend class BusDispatcher;
00062 };
00063
00064 class DXXAPI BusWatch : public Watch
00065 {
00066 private:
00067
00068 BusWatch(Watch::Internal *);
00069
00070 ~BusWatch();
00071
00072 void toggle();
00073
00074 static Eina_Bool watch_check(void *data, Ecore_Fd_Handler *fdh);
00075 static Eina_Bool watch_prepare(void *data, Ecore_Fd_Handler *fdh);
00076 static Eina_Bool watch_dispatch(void *data, Ecore_Fd_Handler *fdh);
00077
00078 void _enable();
00079
00080 void _disable();
00081
00082 void data(Ecore::BusDispatcher *bd);
00083
00084 private:
00085 Ecore_Fd_Handler *fd_handler;
00086 Ecore::BusDispatcher *_bd;
00087
00088 friend class BusDispatcher;
00089 };
00090
00091 class DXXAPI BusDispatcher : public Dispatcher
00092 {
00093 public:
00094 BusDispatcher();
00095
00096 void enter() {}
00097
00098 void leave() {}
00099
00100 Timeout *add_timeout(Timeout::Internal *);
00101
00102 void rem_timeout(Timeout *);
00103
00104 Watch *add_watch(Watch::Internal *);
00105
00106 void rem_watch(Watch *);
00107
00108 static Eina_Bool dispatch(void *data, Ecore_Fd_Handler *fdh);
00109 static Eina_Bool check(void *data, Ecore_Fd_Handler *fdh);
00110
00111 private:
00112 };
00113
00114 }
00115
00116 }
00117
00118 #endif//__DBUSXX_ECORE_INTEGRATION_H