9#include <tqstringlist.h>
12#include <tqdbusconnection.h>
13#include <tqdbusmessage.h>
35 virtual bool Introspect(TQString& data, TQT_DBusError& error);
56 if (path.isEmpty())
return false;
63 if (!
m_private->connection.registerObject(path,
this))
65 m_private->connection = TQT_DBusConnection();
73 TQString name =
"org.freedesktop.DBus.Introspectable";
74 TQT_DBusObjectBase*
interface =
m_private;
75 m_private->interfaces.insert(name, interface);
88 if (
m_private->objectPath.isEmpty())
return;
92 m_private->connection = TQT_DBusConnection();
98 TQMap<TQString, TQT_DBusObjectBase*>::iterator findIt =
m_private->interfaces.find(message.interface());
99 if (findIt ==
m_private->interfaces.end())
return false;
101 return delegateMethodCall(message, findIt.data());
106 TQMap<TQString, TQT_DBusObjectBase*>::const_iterator it = interfaces.begin();
107 TQMap<TQString, TQT_DBusObjectBase*>::const_iterator endIt = interfaces.end();
108 for (; it != endIt; ++it)
110 TQT_DBusObjectBase*
interface = it.data();
111 if (interface !=
this)
120 if (introspectionData.isEmpty()) cacheIntrospectionData();
122 data = introspectionData;
129 connection.send(reply);
135 TQDomElement interfaceElement;
136 TQDomElement nodeElement = doc.createElement(
"node");
137 if (!objectPath.isEmpty() && objectPath.compare(
"/") != 0)
139 nodeElement.setAttribute (
"name", objectPath );
142 if (interfaces.count()>1) {
143 interfaceElement = doc.createElement(
"interface");
145 nodeElement.appendChild(interfaceElement);
148 if (!childrenNodes.isEmpty()) {
149 for (TQStringList::Iterator it = childrenNodes.begin(); it != childrenNodes.end(); ++it ) {
150 TQDomElement nodeElement1 = doc.createElement(
"node");
151 nodeElement1.setAttribute (
"name", *it );
152 nodeElement.appendChild(nodeElement1);
156 doc.appendChild(nodeElement);
158 introspectionData =
"<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\"\n\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n";
159 introspectionData += doc.toString();
virtual bool Introspect(TQString &data, TQT_DBusError &error)
virtual void handleMethodReply(const TQT_DBusMessage &reply)
virtual void handleMethodReply(const TQT_DBusMessage &reply)
TQString introspectionData
TQStringList childrenNodes
void cacheIntrospectionData()
virtual bool Introspect(TQString &data, TQT_DBusError &error)
TQT_DBusConnection connection
TQMap< TQString, TQT_DBusObjectBase * > interfaces
virtual bool handleMethodCall(const TQT_DBusMessage &message)
bool registerObject(const TQT_DBusConnection &connection, const TQString &path)
void addChildNode(const TQString &child)
static void buildIntrospectionData(TQDomElement &interfaceElement)