diff options
Diffstat (limited to 'dbusIncludes/DBusWrapper.h')
-rw-r--r-- | dbusIncludes/DBusWrapper.h | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/dbusIncludes/DBusWrapper.h b/dbusIncludes/DBusWrapper.h index 12bbb9a..42190a5 100644 --- a/dbusIncludes/DBusWrapper.h +++ b/dbusIncludes/DBusWrapper.h @@ -28,16 +28,18 @@ #include "DBusConfiguration.h" +#include "SocketHandler.h" #include <dbus/dbus.h> #include <string> #include <list> +namespace am { /** * This wraps dbus and provides everything needed to anyone who wants to use dbus (including plugins) */ class DBusWrapper { public: - DBusWrapper(); + DBusWrapper(SocketHandler* socketHandler); virtual ~DBusWrapper(); /** @@ -60,13 +62,44 @@ public: */ void dbusMainLoop(); + static dbus_bool_t addWatch(DBusWatch *watch, void *userData); + static void removeWatch(DBusWatch *watch, void *userData); + static void toogleWatch(DBusWatch *watch, void *userData); + + static dbus_bool_t addTimeout(DBusTimeout *timeout,void* userData); + static void removeTimeout(DBusTimeout *timeout, void* userData); + static void toggleTimeout(DBusTimeout *timeout, void* userData); + + bool dbusDispatchCallback(const sh_pollHandle_t handle, void* userData); + shPollDispatch_T<DBusWrapper> pDbusDispatchCallback; + + bool dbusCheckCallback(const sh_pollHandle_t handle, void* userData); + shPollCheck_T<DBusWrapper> pDbusCheckCallback; + + void dbusFireCallback(const pollfd pollfd,const sh_pollHandle_t handle, void* userData); + shPollFired_T<DBusWrapper> pDbusFireCallback; + + void dbusTimerCallback(sh_timerHandle_t handle, void* userData); + TSpecificTimerCallback<DBusWrapper> pDbusTimerCallback; + private: static DBusWrapper* mReference; static DBusHandlerResult cbRootIntrospection(DBusConnection *conn, DBusMessage *msg, void *reference); + dbus_bool_t addWatchDelegate(DBusWatch * watch,void* userData); + void removeWatchDelegate(DBusWatch *watch, void *userData); + void toogleWatchDelegate(DBusWatch *watch, void *userData); + dbus_bool_t addTimeoutDelegate(DBusTimeout *timeout,void* userData); + void removeTimeoutDelegate(DBusTimeout *timeout, void* userData); + void toggleTimeoutDelegate(DBusTimeout *timeout, void* userData); DBusObjectPathVTable mObjectPathVTable; DBusConnection* mDbusConnection; DBusError mDBusError; std::list<std::string> mNodesList; + std::vector<sh_timerHandle_t*> mListTimerhandlePointer; + SocketHandler *mSocketHandler; + std::map<DBusWatch*,sh_pollHandle_t> mMapHandleWatch; }; +} + #endif /* DBUSWRAPPER_H_ */ |