00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __DBUSXX_CONNECTION_P_H
00026 #define __DBUSXX_CONNECTION_P_H
00027
00028 #ifdef HAVE_CONFIG_H
00029 #include <config.h>
00030 #endif
00031
00032 #include <dbus-c++/connection.h>
00033 #include <dbus-c++/server.h>
00034 #include <dbus-c++/dispatcher.h>
00035 #include <dbus-c++/refptr_impl.h>
00036
00037 #include <dbus/dbus.h>
00038
00039 #include <string>
00040
00041 namespace DBus {
00042
00043 struct DXXAPILOCAL Connection::Private
00044 {
00045 DBusConnection * conn;
00046
00047 std::vector<std::string> names;
00048
00049 Dispatcher *dispatcher;
00050 bool do_dispatch();
00051
00052 MessageSlot disconn_filter;
00053 bool disconn_filter_function(const Message &);
00054
00055 Server::Private *server;
00056 void detach_server();
00057
00058 Private(DBusConnection *, Server::Private * = NULL);
00059
00060 Private(DBusBusType);
00061
00062 ~Private();
00063
00064 void init();
00065
00066 DBusDispatchStatus dispatch_status();
00067 bool has_something_to_dispatch();
00068
00069 static void dispatch_status_stub(DBusConnection *, DBusDispatchStatus, void *);
00070
00071 static DBusHandlerResult message_filter_stub(DBusConnection *, DBusMessage *, void *);
00072 };
00073
00074 }
00075
00076 #endif//__DBUSXX_CONNECTION_P_H