9 #include <tqstringlist.h>
12 #include <tqdbusdata.h>
13 #include <tqdbusdatalist.h>
14 #include <tqdbusdatamap.h>
15 #include <tqdbuserror.h>
16 #include <tqdbusmessage.h>
17 #include <tqdbusobjectpath.h>
29 interfaceElement.setAttribute(
"name",
"org.freedesktop.DBus.ObjectManager");
31 TQDomDocument document = interfaceElement.ownerDocument();
32 TQDomElement methodElement = document.createElement(
"method");
33 methodElement.setAttribute(
"name",
"GetManagedObjects");
35 TQDomElement argumentElement = document.createElement(
"arg");
36 argumentElement.setAttribute(
"name",
"objects");
37 argumentElement.setAttribute(
"type",
"a{oa{sa{sv}}}");
38 argumentElement.setAttribute(
"direction",
"out");
39 methodElement.appendChild(argumentElement);
41 interfaceElement.appendChild(methodElement);
43 methodElement = document.createElement(
"signal");
44 methodElement.setAttribute(
"name",
"InterfacesAdded");
46 argumentElement = document.createElement(
"arg");
47 argumentElement.setAttribute(
"name",
"object");
48 argumentElement.setAttribute(
"type",
"o");
49 argumentElement.setAttribute(
"direction",
"out");
50 methodElement.appendChild(argumentElement);
52 argumentElement = document.createElement(
"arg");
53 argumentElement.setAttribute(
"name",
"interfaces");
54 argumentElement.setAttribute(
"type",
"a{sa{sv}}");
55 argumentElement.setAttribute(
"direction",
"out");
56 methodElement.appendChild(argumentElement);
58 interfaceElement.appendChild(methodElement);
60 methodElement = document.createElement(
"signal");
61 methodElement.setAttribute(
"name",
"InterfacesRemoved");
63 argumentElement = document.createElement(
"arg");
64 argumentElement.setAttribute(
"name",
"object");
65 argumentElement.setAttribute(
"type",
"o");
66 argumentElement.setAttribute(
"direction",
"out");
67 methodElement.appendChild(argumentElement);
69 argumentElement = document.createElement(
"arg");
70 argumentElement.setAttribute(
"name",
"interfaces");
71 argumentElement.setAttribute(
"type",
"as");
72 argumentElement.setAttribute(
"direction",
"out");
73 methodElement.appendChild(argumentElement);
75 interfaceElement.appendChild(methodElement);
81 Q_ASSERT(!path.isEmpty());
83 TQT_DBusMessage message = TQT_DBusMessage::signal(path,
"org.freedesktop.DBus.ObjectManager",
"InterfacesAdded");
85 message << TQT_DBusData::fromObjectPath(
object);
86 message << TQT_DBusData::fromStringKeyMap(interfaces);
94 Q_ASSERT(!path.isEmpty());
96 TQT_DBusMessage message = TQT_DBusMessage::signal(path,
"org.freedesktop.DBus.ObjectManager",
"InterfacesRemoved");
98 message << TQT_DBusData::fromObjectPath(
object);
99 message << TQT_DBusData::fromList((interfaces));
108 TQT_DBusMessage reply;
114 reply = TQT_DBusMessage::methodReply(message);
115 reply << TQT_DBusData::fromObjectPathKeyMap(_objects);
119 if (!error.isValid())
121 tqWarning(
"Call to implementation of org::freedesktop::DBus::ObjectManagerInterface::GetManagedObjects returned 'false' but error object is not valid!");
123 error = TQT_DBusError::stdFailed(
"org.freedesktop.DBus.ObjectManager.GetManagedObjects execution failed");
126 reply = TQT_DBusMessage::methodError(message, error);
134 if (message.interface() !=
"org.freedesktop.DBus.ObjectManager")
return false;
136 if (message.member() ==
"GetManagedObjects")
static void buildIntrospectionData(TQDomElement &interfaceElement)
virtual void handleMethodReply(const TQT_DBusMessage &reply)=0
virtual bool handleMethodCall(const TQT_DBusMessage &message)
virtual TQString objectPath() const =0
virtual bool handleSignalSend(const TQT_DBusMessage &reply)=0
TQT_DBusMessage callGetManagedObjects(const TQT_DBusMessage &message)
virtual bool emitInterfacesAdded(const TQT_DBusObjectPath &object, const TQT_DBusDataMap< TQString > &interfaces)
virtual bool emitInterfacesRemoved(const TQT_DBusObjectPath &object, const TQStringList &interfaces)
virtual bool GetManagedObjects(TQT_DBusDataMap< TQT_DBusObjectPath > &objects, TQT_DBusError &error)=0