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
00044 struct DXXAPILOCAL Connection::Private
00045 {
00046 DBusConnection *conn;
00047
00048 std::vector<std::string> names;
00049
00050 Dispatcher *dispatcher;
00051 bool do_dispatch();
00052
00053 MessageSlot disconn_filter;
00054 bool disconn_filter_function(const Message &);
00055
00056 Server::Private *server;
00057 void detach_server();
00058
00059 Private(DBusConnection *, Server::Private * = NULL);
00060
00061 Private(DBusBusType);
00062
00063 ~Private();
00064
00065 void init();
00066
00067 DBusDispatchStatus dispatch_status();
00068 bool has_something_to_dispatch();
00069
00070 static void dispatch_status_stub(DBusConnection *, DBusDispatchStatus, void *);
00071
00072 static DBusHandlerResult message_filter_stub(DBusConnection *, DBusMessage *, void *);
00073 };
00074
00075 }
00076
00077 #endif//__DBUSXX_CONNECTION_P_H