From 6d9f72b9e651d90fcbd191b43b5e91ba7bd63789 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Tue, 25 Nov 2003 15:30:03 +0000 Subject: Adding DBusServer wrapper. Switching some thingies, looking pretty and being cool... Anyway, we're done at a very basic level. I have to go back to something else now, but i'll try to commit an example sometime soon. --- qt/integrator.cpp | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) (limited to 'qt/integrator.cpp') diff --git a/qt/integrator.cpp b/qt/integrator.cpp index ca793a0a..4d42a76f 100644 --- a/qt/integrator.cpp +++ b/qt/integrator.cpp @@ -92,6 +92,13 @@ void dbusWakeupMain( void* ) { } +void dbusNewConnection( DBusServer *server, + DBusConnection *new_connection, + void *data ) +{ + Integrator *itg = static_cast( data ); + itg->handleConnection( new_connection ); +} ///////////////////////////////////////////////////////////// Timeout::Timeout( QObject *parent, DBusTimeout *t ) @@ -112,26 +119,47 @@ void Timeout::start() m_timer->start( dbus_timeout_get_interval( m_timeout ) ); } -Integrator::Integrator( Connection *parent ) - : QObject( parent ), m_parent( parent ) +Integrator::Integrator( DBusConnection *conn, QObject *parent ) + : QObject( parent ), m_connection( conn ) { m_timeouts.setAutoDelete( true ); - dbus_connection_set_watch_functions( m_parent->connection(), + dbus_connection_set_watch_functions( m_connection, dbusAddWatch, dbusRemoveWatch, dbusToggleWatch, this, 0 ); - dbus_connection_set_timeout_functions( m_parent->connection(), + dbus_connection_set_timeout_functions( m_connection, dbusAddTimeout, dbusRemoveTimeout, dbusToggleTimeout, this, 0 ); - dbus_connection_set_wakeup_main_function( m_parent->connection(), + dbus_connection_set_wakeup_main_function( m_connection, dbusWakeupMain, this, 0 ); } +Integrator::Integrator( DBusServer *server, QObject *parent ) + : QObject( parent ), m_server( server ) +{ + m_connection = reinterpret_cast( m_server ); + m_timeouts.setAutoDelete( true ); + + dbus_server_set_watch_functions( m_server, + dbusAddWatch, + dbusRemoveWatch, + dbusToggleWatch, + this, 0 ); + dbus_server_set_timeout_functions( m_server, + dbusAddTimeout, + dbusRemoveTimeout, + dbusToggleTimeout, + this, 0 ); + dbus_server_set_new_connection_function( m_server, + dbusNewConnection, + this, 0 ); +} + void Integrator::slotRead( int fd ) { Q_UNUSED( fd ); @@ -199,6 +227,12 @@ void Integrator::removeTimeout( DBusTimeout *timeout ) m_timeouts.remove( timeout ); } +void Integrator::handleConnection( DBusConnection *c ) +{ + Connection *con = new Connection( c, this ); + emit newConnection( con ); +} + }//end namespace Internal }//end namespace DBusQt -- cgit