summaryrefslogtreecommitdiffstats
path: root/qt/integrator.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt/integrator.h')
-rw-r--r--qt/integrator.h78
1 files changed, 25 insertions, 53 deletions
diff --git a/qt/integrator.h b/qt/integrator.h
index f66cce64..71336e95 100644
--- a/qt/integrator.h
+++ b/qt/integrator.h
@@ -26,18 +26,36 @@
#include <qobject.h>
#include <qintdict.h>
-#include <qptrlist.h>
+#include <qptrdict.h>
#include "dbus/dbus.h"
+class QTimer;
+
namespace DBusQt
{
class Connection;
namespace Internal
{
- struct QtWatch;
- struct DBusQtTimeout;
+ struct Watch;
+
+ class Timeout : public QObject
+ {
+ Q_OBJECT
+ public:
+ Timeout( QObject *parent, DBusTimeout *t );
+ public:
+ void start();
+ signals:
+ void timeout( DBusTimeout* );
+ protected slots:
+ void slotTimeout();
+ private:
+ QTimer *m_timer;
+ DBusTimeout *m_timeout;
+ };
+
class Integrator : public QObject
{
Q_OBJECT
@@ -50,65 +68,19 @@ namespace DBusQt
protected slots:
void slotRead( int );
void slotWrite( int );
+ void slotTimeout( DBusTimeout *timeout );
- protected:
+ public:
void addWatch( DBusWatch* );
void removeWatch( DBusWatch* );
void addTimeout( DBusTimeout* );
void removeTimeout( DBusTimeout* );
private:
- QIntDict<QtWatch> m_watches;
- QPtrList<DBusQtTimeout> m_timeouts;
+ QIntDict<Watch> m_watches;
+ QPtrDict<Timeout> m_timeouts;
Connection* m_parent;
-
- private:
- friend dbus_bool_t dbusAddWatch( DBusWatch*, void* );
- friend void dbusRemoveWatch( DBusWatch*, void* );
- friend void dbusToggleWatch( DBusWatch*, void* );
-
- friend dbus_bool_t dbusAddTimeout( DBusTimeout*, void* );
- friend void dbusRemoveTimeout( DBusTimeout*, void* );
- friend void dbusToggleTimeout( DBusTimeout*, void* );
};
-
- //////////////////////////////////////////////////////////////
- //Friends
- dbus_bool_t dbusAddWatch( DBusWatch *watch, void *data )
- {
- Integrator *con = static_cast<Integrator*>( data );
- con->addWatch( watch );
- return true;
- }
- void dbusRemoveWatch( DBusWatch *watch, void *data )
- {
- Integrator *con = static_cast<Integrator*>( data );
- con->removeWatch( watch );
- }
-
- void dbusToggleWatch( DBusWatch*, void* )
- {
- //I don't know how to handle this one right now
-//#warning "FIXME: implement"
- }
-
- dbus_bool_t dbusAddTimeout( DBusTimeout *timeout, void *data )
- {
- Integrator *con = static_cast<Integrator*>( data );
- con->addTimeout( timeout );
- return true;
- }
-
- void dbusRemoveTimeout( DBusTimeout *timeout, void *data )
- {
- Integrator *con = static_cast<Integrator*>( data );
- }
-
- void dbusToggleTimeout( DBusTimeout *timeout, void *data )
- {
- Integrator *con = static_cast<Integrator*>( data );
- }
- /////////////////////////////////////////////////////////////
}
}