DBus-1-TQt  1.0
tqdbusconnection_p.h
Go to the documentation of this file.
1 /* qdbusconnection_p.h TQT_DBusConnection private object
2  *
3  * Copyright (C) 2005 Harald Fernengel <harry@kdevelop.org>
4  * Copyright (C) 2005 Kevin Krammer <kevin.krammer@gmx.at>
5  *
6  * Licensed under the Academic Free License version 2.1
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
21  * USA.
22  *
23  */
24 
25 //
26 // W A R N I N G
27 // -------------
28 //
29 // This file is not part of the public API. This header file may
30 // change from version to version without notice, or even be
31 // removed.
32 //
33 // We mean it.
34 //
35 //
36 
37 #ifndef TQDBUSCONNECTION_P_H
38 #define TQDBUSCONNECTION_P_H
39 
40 #include <tqguardedptr.h>
41 #include <tqmap.h>
42 #include <tqobject.h>
43 #include <tqvaluelist.h>
44 
45 #include <dbus/dbus.h>
46 
47 #include "tqdbusatomic.h"
48 #include "tqdbuserror.h"
49 #include "tqdbusobject.h"
50 #include "tqdbusmessage.h"
51 
52 class TQT_DBusMessage;
53 class TQSocketNotifier;
54 class TQTimer;
55 class TQTimerEvent;
56 
57 struct DBusConnection;
58 struct DBusServer;
59 
61 {
62  public:
64  TQObject* receiver;
65  TQCString method;
66 };
68 
69 class TQT_DBusConnectionPrivate: public TQObject
70 {
71  TQ_OBJECT
72 
73 
74 public:
75  TQT_DBusConnectionPrivate(TQObject *parent = 0);
77 
78  void bindToApplication();
79 
80  void setConnection(DBusConnection *connection);
81  void setServer(DBusServer *server);
82  void closeConnection();
83  void timerEvent(TQTimerEvent *e);
84 
85  bool handleSignal(DBusMessage *msg);
86  bool handleObjectCall(DBusMessage *message);
87  bool handleError();
88  bool handleUnreadMessages();
89 
90  void emitPendingCallReply(const TQT_DBusMessage& message);
91 
92 signals:
93  void dbusSignal(const TQT_DBusMessage& message);
94 
95  void dbusPendingCallReply(const TQT_DBusMessage& message);
96 
97 public slots:
98  void socketRead(int);
99  void socketWrite(int);
100 
101  void objectDestroyed(TQObject* object);
102 
103  void purgeRemovedWatches();
104 
105  void scheduleDispatch();
106  void dispatch();
107 
108 public:
109  DBusError error;
111 
113 
114  // FIXME TQAtomic ref;
117  DBusConnection *connection;
118  DBusServer *server;
119 
120  TQTimer* dispatcher;
121 
122  static int messageMetaType;
123  static int registerMessageMetaType();
124  int sendWithReplyAsync(const TQT_DBusMessage &message, TQObject *receiver,
125  const char *method);
126  void flush();
127 
128  struct Watcher
129  {
130  Watcher(): watch(0), read(0), write(0) {}
131  DBusWatch *watch;
132  TQSocketNotifier *read;
133  TQSocketNotifier *write;
134  };
135  // FIXME typedef TQMultiHash<int, Watcher> WatcherHash;
138  typedef TQMap<int, WatcherList> WatcherHash;
140 
141  // FIXME typedef TQHash<int, DBusTimeout *> TimeoutHash;
142  typedef TQMap<int, DBusTimeout*> TimeoutHash;
144 
145  typedef TQMap<TQString, TQT_DBusObjectBase*> ObjectMap;
147 
149 
151  {
152  TQGuardedPtr<TQObject> receiver;
153  TQCString method;
154  DBusPendingCall *pending;
155  };
156  typedef TQMap<DBusPendingCall*, TQT_DBusPendingCall*> PendingCallMap;
158 
161 
163 
165 
166 public:
168 
169 private slots:
172 
173 private:
176 };
177 
178 #endif
TQT_DBusConnectionPrivate::timeouts
TimeoutHash timeouts
Definition: tqdbusconnection_p.h:143
TQT_DBusError
Class for transporting D-Bus errors.
Definition: tqdbuserror.h:40
TQT_DBusConnectionPrivate::connection
DBusConnection * connection
Definition: tqdbusconnection_p.h:117
TQT_DBusConnectionPrivate::WatcherList
TQValueList< Watcher > WatcherList
Definition: tqdbusconnection_p.h:136
Atomic
Definition: tqdbusatomic.h:27
TQT_DBusConnectionPrivate::purgeRemovedWatches
void purgeRemovedWatches()
Definition: tqdbusintegrator.cpp:448
tqdbusobject.h
TQT_DBusResultInfo::message
TQT_DBusMessage message
Definition: tqdbusconnection_p.h:63
TQT_DBusConnectionPrivate::setServer
void setServer(DBusServer *server)
Definition: tqdbusintegrator.cpp:553
TQT_DBusConnectionPrivate::messageMetaType
static int messageMetaType
Definition: tqdbusconnection_p.h:122
TQT_DBusConnectionPrivate::registeredObjects
ObjectMap registeredObjects
Definition: tqdbusconnection_p.h:146
TQT_DBusConnectionPrivate::TQT_DBusPendingCall::pending
DBusPendingCall * pending
Definition: tqdbusconnection_p.h:154
TQT_DBusResultInfo::method
TQCString method
Definition: tqdbusconnection_p.h:65
TQT_DBusConnectionPrivate::Watcher::watch
DBusWatch * watch
Definition: tqdbusconnection_p.h:131
TQT_DBusConnectionPrivate::error
DBusError error
Definition: tqdbusconnection_p.h:109
TQT_DBusConnectionPrivate::closeConnection
void closeConnection()
Definition: tqdbusintegrator.cpp:310
TQT_DBusConnectionPrivate::pendingTimeouts
TQValueList< DBusTimeout * > pendingTimeouts
Definition: tqdbusconnection_p.h:148
TQT_DBusConnectionPrivate::sendWithReplyAsync
int sendWithReplyAsync(const TQT_DBusMessage &message, TQObject *receiver, const char *method)
Definition: tqdbusintegrator.cpp:649
TQT_DBusConnectionPrivate::registerMessageMetaType
static int registerMessageMetaType()
Definition: tqdbusintegrator.cpp:267
TQT_DBusConnectionPrivate::TQT_DBusPendingCall::method
TQCString method
Definition: tqdbusconnection_p.h:153
TQT_DBusConnectionPrivate::~TQT_DBusConnectionPrivate
~TQT_DBusConnectionPrivate()
Definition: tqdbusintegrator.cpp:292
TQT_DBusConnectionPrivate::bindToApplication
void bindToApplication()
Definition: tqdbusintegrator.cpp:370
TQT_DBusConnectionPrivate::TQT_DBusConnectionPrivate
TQT_DBusConnectionPrivate(TQObject *parent=0)
Definition: tqdbusintegrator.cpp:274
tqdbusmessage.h
TQT_DBusConnectionPrivate::timerEvent
void timerEvent(TQTimerEvent *e)
Definition: tqdbusconnection.cpp:246
TQT_DBusResultInfo::receiver
TQObject * receiver
Definition: tqdbusconnection_p.h:64
TQT_DBusConnectionPrivate::scheduleDispatch
void scheduleDispatch()
Definition: tqdbusintegrator.cpp:486
TQT_DBusConnectionPrivate::dispatcher
TQTimer * dispatcher
Definition: tqdbusconnection_p.h:120
TQT_DBusConnectionPrivate::server
DBusServer * server
Definition: tqdbusconnection_p.h:118
TQT_DBusConnectionPrivate::ClientMode
@ ClientMode
Definition: tqdbusconnection_p.h:112
TQT_DBusConnectionPrivate::mode
ConnectionMode mode
Definition: tqdbusconnection_p.h:116
TQT_DBusConnectionPrivate::TimeoutHash
TQMap< int, DBusTimeout * > TimeoutHash
Definition: tqdbusconnection_p.h:142
TQT_DBusConnectionPrivate::TQT_DBusPendingCall
Definition: tqdbusconnection_p.h:150
TQT_DBusConnectionPrivate::ObjectMap
TQMap< TQString, TQT_DBusObjectBase * > ObjectMap
Definition: tqdbusconnection_p.h:145
TQT_DBusConnectionPrivate::flush
void flush()
Definition: tqdbusintegrator.cpp:681
TQT_DBusConnectionPrivate::WatcherHash
TQMap< int, WatcherList > WatcherHash
Definition: tqdbusconnection_p.h:138
TQT_DBusConnectionPrivate
Definition: tqdbusconnection_p.h:69
TQT_DBusConnectionPrivate::Watcher::Watcher
Watcher()
Definition: tqdbusconnection_p.h:130
TQT_DBusConnectionPrivate::m_messageEmissionQueueTimer
TQTimer * m_messageEmissionQueueTimer
Definition: tqdbusconnection_p.h:175
TQT_DBusConnectionPrivate::watchers
WatcherHash watchers
Definition: tqdbusconnection_p.h:139
TQT_DBusConnectionPrivate::dbusSignal
void dbusSignal(const TQT_DBusMessage &message)
tqdbuserror.h
TQT_DBusConnectionPrivate::handleObjectCall
bool handleObjectCall(DBusMessage *message)
Definition: tqdbusintegrator.cpp:523
TQT_DBusConnectionPrivate::handleSignal
bool handleSignal(DBusMessage *msg)
Definition: tqdbusintegrator.cpp:534
TQT_DBusConnectionPrivate::Watcher::read
TQSocketNotifier * read
Definition: tqdbusconnection_p.h:132
TQT_DBusConnectionPrivate::emitPendingCallReply
void emitPendingCallReply(const TQT_DBusMessage &message)
Definition: tqdbusintegrator.cpp:365
TQValueList< TQT_DBusResultInfo >
TQT_DBusConnectionPrivate::transmitMessageEmissionQueue
void transmitMessageEmissionQueue()
Definition: tqdbusintegrator.cpp:512
TQT_DBusConnectionPrivate::inDispatch
bool inDispatch
Definition: tqdbusconnection_p.h:162
TQT_DBusConnectionPrivate::InvalidMode
@ InvalidMode
Definition: tqdbusconnection_p.h:112
TQT_DBusConnectionPrivate::socketRead
void socketRead(int)
Definition: tqdbusintegrator.cpp:395
TQT_DBusConnectionPrivate::dispatch
void dispatch()
Definition: tqdbusintegrator.cpp:491
TQT_DBusConnectionPrivate::pendingMessages
PendingMessagesForEmit pendingMessages
Definition: tqdbusconnection_p.h:160
TQT_DBusConnectionPrivate::TQT_DBusPendingCall::receiver
TQGuardedPtr< TQObject > receiver
Definition: tqdbusconnection_p.h:152
TQT_DBusConnectionPrivate::handleError
bool handleError()
Definition: tqdbusintegrator.cpp:334
TQT_DBusResultInfoList
TQValueList< TQT_DBusResultInfo > TQT_DBusResultInfoList
Definition: tqdbusconnection_p.h:67
TQT_DBusConnectionPrivate::pendingCalls
PendingCallMap pendingCalls
Definition: tqdbusconnection_p.h:157
TQT_DBusConnectionPrivate::PendingMessagesForEmit
TQValueList< TQT_DBusMessage > PendingMessagesForEmit
Definition: tqdbusconnection_p.h:159
TQT_DBusConnectionPrivate::lastError
TQT_DBusError lastError
Definition: tqdbusconnection_p.h:110
TQT_DBusConnectionPrivate::ServerMode
@ ServerMode
Definition: tqdbusconnection_p.h:112
TQT_DBusConnectionPrivate::m_resultEmissionQueue
TQT_DBusResultInfoList m_resultEmissionQueue
Definition: tqdbusconnection_p.h:164
TQT_DBusConnectionPrivate::ref
Atomic ref
Definition: tqdbusconnection_p.h:115
TQT_DBusResultInfo
Definition: tqdbusconnection_p.h:60
TQT_DBusConnectionPrivate::dbusPendingCallReply
void dbusPendingCallReply(const TQT_DBusMessage &message)
TQT_DBusConnectionPrivate::ConnectionMode
ConnectionMode
Definition: tqdbusconnection_p.h:112
TQT_DBusConnectionPrivate::handleUnreadMessages
bool handleUnreadMessages()
Definition: tqdbusintegrator.cpp:342
TQT_DBusConnectionPrivate::m_resultEmissionQueueTimer
TQTimer * m_resultEmissionQueueTimer
Definition: tqdbusconnection_p.h:174
TQT_DBusConnectionPrivate::socketWrite
void socketWrite(int)
Definition: tqdbusintegrator.cpp:412
TQT_DBusConnectionPrivate::transmitResultEmissionQueue
void transmitResultEmissionQueue()
Definition: tqdbusintegrator.cpp:693
TQT_DBusConnectionPrivate::removedWatches
WatcherList removedWatches
Definition: tqdbusconnection_p.h:137
TQT_DBusConnectionPrivate::newMethodInResultEmissionQueue
void newMethodInResultEmissionQueue()
Definition: tqdbusintegrator.cpp:688
tqdbusatomic.h
TQT_DBusConnectionPrivate::PendingCallMap
TQMap< DBusPendingCall *, TQT_DBusPendingCall * > PendingCallMap
Definition: tqdbusconnection_p.h:156
TQT_DBusMessage
A message converts and transports data over D-Bus.
Definition: tqdbusmessage.h:115
TQT_DBusConnectionPrivate::Watcher::write
TQSocketNotifier * write
Definition: tqdbusconnection_p.h:133
TQT_DBusConnectionPrivate::setConnection
void setConnection(DBusConnection *connection)
Definition: tqdbusintegrator.cpp:576
TQT_DBusConnectionPrivate::Watcher
Definition: tqdbusconnection_p.h:128
TQT_DBusConnectionPrivate::objectDestroyed
void objectDestroyed(TQObject *object)
Definition: tqdbusintegrator.cpp:427