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  Q_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 
89  void emitPendingCallReply(const TQT_DBusMessage& message);
90 
91 signals:
92  void dbusSignal(const TQT_DBusMessage& message);
93 
94  void dbusPendingCallReply(const TQT_DBusMessage& message);
95 
96 public slots:
97  void socketRead(int);
98  void socketWrite(int);
99 
100  void objectDestroyed(TQObject* object);
101 
102  void purgeRemovedWatches();
103 
104  void scheduleDispatch();
105  void dispatch();
106 
107 public:
108  DBusError error;
110 
112 
113  // FIXME TQAtomic ref;
116  DBusConnection *connection;
117  DBusServer *server;
118 
119  TQTimer* dispatcher;
120 
121  static int messageMetaType;
122  static int registerMessageMetaType();
123  int sendWithReplyAsync(const TQT_DBusMessage &message, TQObject *receiver,
124  const char *method);
125  void flush();
126 
127  struct Watcher
128  {
129  Watcher(): watch(0), read(0), write(0) {}
130  DBusWatch *watch;
131  TQSocketNotifier *read;
132  TQSocketNotifier *write;
133  };
134  // FIXME typedef TQMultiHash<int, Watcher> WatcherHash;
137  typedef TQMap<int, WatcherList> WatcherHash;
139 
140  // FIXME typedef TQHash<int, DBusTimeout *> TimeoutHash;
141  typedef TQMap<int, DBusTimeout*> TimeoutHash;
143 
144  typedef TQMap<TQString, TQT_DBusObjectBase*> ObjectMap;
146 
148 
150  {
151  TQGuardedPtr<TQObject> receiver;
152  TQCString method;
153  DBusPendingCall *pending;
154  };
155  typedef TQMap<DBusPendingCall*, TQT_DBusPendingCall*> PendingCallMap;
157 
160 
162 
164 
165 public:
167 
168 private slots:
171 
172 private:
175 };
176 
177 #endif
TQT_DBusConnectionPrivate::timeouts
TimeoutHash timeouts
Definition: tqdbusconnection_p.h:142
TQT_DBusError
Class for transporting D-Bus errors.
Definition: tqdbuserror.h:40
TQT_DBusConnectionPrivate::connection
DBusConnection * connection
Definition: tqdbusconnection_p.h:116
TQT_DBusConnectionPrivate::WatcherList
TQValueList< Watcher > WatcherList
Definition: tqdbusconnection_p.h:135
Atomic
Definition: tqdbusatomic.h:27
TQT_DBusConnectionPrivate::purgeRemovedWatches
void purgeRemovedWatches()
Definition: tqdbusintegrator.cpp:425
tqdbusobject.h
TQT_DBusResultInfo::message
TQT_DBusMessage message
Definition: tqdbusconnection_p.h:63
TQT_DBusConnectionPrivate::setServer
void setServer(DBusServer *server)
Definition: tqdbusintegrator.cpp:530
TQT_DBusConnectionPrivate::messageMetaType
static int messageMetaType
Definition: tqdbusconnection_p.h:121
TQT_DBusConnectionPrivate::registeredObjects
ObjectMap registeredObjects
Definition: tqdbusconnection_p.h:145
TQT_DBusConnectionPrivate::TQT_DBusPendingCall::pending
DBusPendingCall * pending
Definition: tqdbusconnection_p.h:153
TQT_DBusResultInfo::method
TQCString method
Definition: tqdbusconnection_p.h:65
TQT_DBusConnectionPrivate::Watcher::watch
DBusWatch * watch
Definition: tqdbusconnection_p.h:130
TQT_DBusConnectionPrivate::error
DBusError error
Definition: tqdbusconnection_p.h:108
TQT_DBusConnectionPrivate::closeConnection
void closeConnection()
Definition: tqdbusintegrator.cpp:310
TQT_DBusConnectionPrivate::pendingTimeouts
TQValueList< DBusTimeout * > pendingTimeouts
Definition: tqdbusconnection_p.h:147
TQT_DBusConnectionPrivate::sendWithReplyAsync
int sendWithReplyAsync(const TQT_DBusMessage &message, TQObject *receiver, const char *method)
Definition: tqdbusintegrator.cpp:628
TQT_DBusConnectionPrivate::registerMessageMetaType
static int registerMessageMetaType()
Definition: tqdbusintegrator.cpp:267
TQT_DBusConnectionPrivate::TQT_DBusPendingCall::method
TQCString method
Definition: tqdbusconnection_p.h:152
TQT_DBusConnectionPrivate::~TQT_DBusConnectionPrivate
~TQT_DBusConnectionPrivate()
Definition: tqdbusintegrator.cpp:292
TQT_DBusConnectionPrivate::bindToApplication
void bindToApplication()
Definition: tqdbusintegrator.cpp:347
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:463
TQT_DBusConnectionPrivate::dispatcher
TQTimer * dispatcher
Definition: tqdbusconnection_p.h:119
TQT_DBusConnectionPrivate::server
DBusServer * server
Definition: tqdbusconnection_p.h:117
TQT_DBusConnectionPrivate::ClientMode
Definition: tqdbusconnection_p.h:111
TQT_DBusConnectionPrivate::mode
ConnectionMode mode
Definition: tqdbusconnection_p.h:115
TQT_DBusConnectionPrivate::TimeoutHash
TQMap< int, DBusTimeout * > TimeoutHash
Definition: tqdbusconnection_p.h:141
TQT_DBusConnectionPrivate::TQT_DBusPendingCall
Definition: tqdbusconnection_p.h:149
TQT_DBusConnectionPrivate::ObjectMap
TQMap< TQString, TQT_DBusObjectBase * > ObjectMap
Definition: tqdbusconnection_p.h:144
TQT_DBusConnectionPrivate::flush
void flush()
Definition: tqdbusintegrator.cpp:660
TQT_DBusConnectionPrivate::WatcherHash
TQMap< int, WatcherList > WatcherHash
Definition: tqdbusconnection_p.h:137
TQT_DBusConnectionPrivate
Definition: tqdbusconnection_p.h:69
TQT_DBusConnectionPrivate::Watcher::Watcher
Watcher()
Definition: tqdbusconnection_p.h:129
TQT_DBusConnectionPrivate::m_messageEmissionQueueTimer
TQTimer * m_messageEmissionQueueTimer
Definition: tqdbusconnection_p.h:174
TQT_DBusConnectionPrivate::watchers
WatcherHash watchers
Definition: tqdbusconnection_p.h:138
TQT_DBusConnectionPrivate::dbusSignal
void dbusSignal(const TQT_DBusMessage &message)
tqdbuserror.h
TQT_DBusConnectionPrivate::handleObjectCall
bool handleObjectCall(DBusMessage *message)
Definition: tqdbusintegrator.cpp:500
TQT_DBusConnectionPrivate::handleSignal
bool handleSignal(DBusMessage *msg)
Definition: tqdbusintegrator.cpp:511
TQT_DBusConnectionPrivate::Watcher::read
TQSocketNotifier * read
Definition: tqdbusconnection_p.h:131
TQT_DBusConnectionPrivate::emitPendingCallReply
void emitPendingCallReply(const TQT_DBusMessage &message)
Definition: tqdbusintegrator.cpp:342
TQValueList< TQT_DBusResultInfo >
TQT_DBusConnectionPrivate::transmitMessageEmissionQueue
void transmitMessageEmissionQueue()
Definition: tqdbusintegrator.cpp:489
TQT_DBusConnectionPrivate::inDispatch
bool inDispatch
Definition: tqdbusconnection_p.h:161
TQT_DBusConnectionPrivate::InvalidMode
Definition: tqdbusconnection_p.h:111
TQT_DBusConnectionPrivate::socketRead
void socketRead(int)
Definition: tqdbusintegrator.cpp:372
TQT_DBusConnectionPrivate::dispatch
void dispatch()
Definition: tqdbusintegrator.cpp:468
TQT_DBusConnectionPrivate::pendingMessages
PendingMessagesForEmit pendingMessages
Definition: tqdbusconnection_p.h:159
TQT_DBusConnectionPrivate::TQT_DBusPendingCall::receiver
TQGuardedPtr< TQObject > receiver
Definition: tqdbusconnection_p.h:151
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:156
TQT_DBusConnectionPrivate::PendingMessagesForEmit
TQValueList< TQT_DBusMessage > PendingMessagesForEmit
Definition: tqdbusconnection_p.h:158
TQT_DBusConnectionPrivate::lastError
TQT_DBusError lastError
Definition: tqdbusconnection_p.h:109
TQT_DBusConnectionPrivate::ServerMode
Definition: tqdbusconnection_p.h:111
TQT_DBusConnectionPrivate::m_resultEmissionQueue
TQT_DBusResultInfoList m_resultEmissionQueue
Definition: tqdbusconnection_p.h:163
TQT_DBusConnectionPrivate::ref
Atomic ref
Definition: tqdbusconnection_p.h:114
TQT_DBusResultInfo
Definition: tqdbusconnection_p.h:60
TQT_DBusConnectionPrivate::dbusPendingCallReply
void dbusPendingCallReply(const TQT_DBusMessage &message)
TQT_DBusConnectionPrivate::ConnectionMode
ConnectionMode
Definition: tqdbusconnection_p.h:111
TQT_DBusConnectionPrivate::m_resultEmissionQueueTimer
TQTimer * m_resultEmissionQueueTimer
Definition: tqdbusconnection_p.h:173
TQT_DBusConnectionPrivate::socketWrite
void socketWrite(int)
Definition: tqdbusintegrator.cpp:389
TQT_DBusConnectionPrivate::transmitResultEmissionQueue
void transmitResultEmissionQueue()
Definition: tqdbusintegrator.cpp:672
TQT_DBusConnectionPrivate::removedWatches
WatcherList removedWatches
Definition: tqdbusconnection_p.h:136
TQT_DBusConnectionPrivate::newMethodInResultEmissionQueue
void newMethodInResultEmissionQueue()
Definition: tqdbusintegrator.cpp:667
tqdbusatomic.h
TQT_DBusConnectionPrivate::PendingCallMap
TQMap< DBusPendingCall *, TQT_DBusPendingCall * > PendingCallMap
Definition: tqdbusconnection_p.h:155
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:132
TQT_DBusConnectionPrivate::setConnection
void setConnection(DBusConnection *connection)
Definition: tqdbusintegrator.cpp:553
TQT_DBusConnectionPrivate::Watcher
Definition: tqdbusconnection_p.h:127
TQT_DBusConnectionPrivate::objectDestroyed
void objectDestroyed(TQObject *object)
Definition: tqdbusintegrator.cpp:404