dbus/qt connection.cpp,1.7,1.8 connection.h,1.7,1.8
Zack Rusin
zack at pdx.freedesktop.org
Tue Apr 27 15:35:03 EST 2004
Update of /cvs/dbus/dbus/qt
In directory pdx:/tmp/cvs-serv16977
Modified Files:
connection.cpp connection.h
Log Message:
Committing Haralds stuff together with some of my backlog for connection.
Index: connection.cpp
===================================================================
RCS file: /cvs/dbus/dbus/qt/connection.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- a/connection.cpp 28 Jan 2004 03:33:44 -0000 1.7
+++ b/connection.cpp 27 Apr 2004 05:35:01 -0000 1.8
@@ -29,30 +29,60 @@
struct Connection::Private
{
+ Private( Connection *qq );
+ void setConnection( DBusConnection *c );
DBusConnection *connection;
int connectionSlot;
DBusError error;
Integrator *integrator;
int timeout;
+ Connection *q;
};
+Connection::Private::Private( Connection *qq )
+ : connection( 0 ), connectionSlot( 0 ), integrator( 0 ),
+ timeout( -1 ), q( qq )
+{
+ dbus_error_init( &error );
+}
+
+void Connection::Private::setConnection( DBusConnection *c )
+{
+ if (!c) {
+ qDebug( "error: %s, %s", error.name, error.message );
+ dbus_error_free( &error );
+ return;
+ }
+ connection = c;
+ integrator = new Integrator( c, q );
+ connect( integrator, SIGNAL(readReady()), q, SLOT(dispatchRead()) );
+}
+
+Connection::Connection( QObject *parent )
+ : QObject( parent )
+{
+ d = new Private( this );
+}
+
Connection::Connection( const QString& host, QObject *parent )
: QObject( parent )
{
- d = new Private;
+ d = new Private( this );
if ( !host.isEmpty() )
init( host );
}
+Connection::Connection(DBusBusType type, QObject* parent)
+ : QObject( parent )
+{
+ d = new Private(this);
+ d->setConnection( dbus_bus_get(type, &d->error) );
+}
+
void Connection::init( const QString& host )
{
- dbus_error_init( &d->error );
- d->timeout = -1;
- d->connection = dbus_connection_open( host.ascii(), &d->error );
- d->integrator = new Integrator( d->connection, this );
- connect( d->integrator, SIGNAL(readReady()),
- SLOT(dispatchRead()) );
+ d->setConnection( dbus_connection_open( host.ascii(), &d->error) );
//dbus_connection_allocate_data_slot( &d->connectionSlot );
//dbus_connection_set_data( d->connection, d->connectionSlot, 0, 0 );
}
@@ -96,17 +126,13 @@
Connection::Connection( DBusConnection *connection, QObject *parent )
: QObject( parent )
{
- d = new Private;
- dbus_error_init( &d->error );
- d->timeout = -1;
- d->connection = connection;
- d->integrator = new Integrator( d->connection, this );
- connect( d->integrator, SIGNAL(readReady()),
- SLOT(dispatchRead()) );
+ d = new Private(this);
+ d->setConnection(connection);
}
-void Connection::send( const Message& )
+void Connection::send( const Message &m )
{
+ dbus_connection_send(d->connection, m.message(), 0);
}
void Connection::sendWithReply( const Message& )
@@ -117,6 +143,10 @@
{
DBusMessage *reply;
reply = dbus_connection_send_with_reply_and_block( d->connection, m.message(), d->timeout, &d->error );
+ if (dbus_error_is_set(&d->error)) {
+ qDebug("error: %s, %s", d->error.name, d->error.message);
+ dbus_error_free(&d->error);
+ }
return Message( reply );
}
Index: connection.h
===================================================================
RCS file: /cvs/dbus/dbus/qt/connection.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- a/connection.h 26 Jan 2004 07:46:55 -0000 1.7
+++ b/connection.h 27 Apr 2004 05:35:01 -0000 1.8
@@ -39,8 +39,10 @@
{
Q_OBJECT
public:
- Connection( const QString& host = QString::null,
- QObject* parent = 0);
+ Connection( QObject *parent =0 );
+ Connection( const QString& host,
+ QObject *parent = 0 );
+ Connection( DBusBusType type, QObject* parent = 0 );
bool isConnected() const;
bool isAuthenticated() const;
@@ -62,11 +64,13 @@
protected:
void init( const QString& host );
- virtual void* virtual_hook( int id, void* data );
+ virtual void *virtual_hook( int id, void *data );
+
private:
friend class Internal::Integrator;
- DBusConnection* connection() const;
+ DBusConnection *connection() const;
Connection( DBusConnection *connection, QObject *parent );
+
private:
struct Private;
Private *d;
More information about the dbus-commit
mailing list