summaryrefslogtreecommitdiffstats
path: root/qt/integrator.cpp
diff options
context:
space:
mode:
authorZack Rusin <zack@kde.org>2003-11-25 15:30:03 +0000
committerZack Rusin <zack@kde.org>2003-11-25 15:30:03 +0000
commit6d9f72b9e651d90fcbd191b43b5e91ba7bd63789 (patch)
tree0cf6c6c4c660cd3d61d5d3e642a66d981011f44e /qt/integrator.cpp
parent27f6dca9ce4680dbbe8dc20a862f5ad63b709609 (diff)
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.
Diffstat (limited to 'qt/integrator.cpp')
-rw-r--r--qt/integrator.cpp44
1 files changed, 39 insertions, 5 deletions
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<Integrator*>( 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<DBusConnection*>( 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