tdebluez
libtdebluez/interfaces/objectmanagerInterface.cpp
Go to the documentation of this file.
1 // File autogenerated
2 
3 // declaration include
5 
6 // TQt includes
7 #include <tqdom.h>
8 #include <tqstring.h>
9 #include <tqstringlist.h>
10 
11 // TQt D-Bus includes
12 #include <tqdbusdata.h>
13 #include <tqdbusdatalist.h>
14 #include <tqdbusdatamap.h>
15 #include <tqdbuserror.h>
16 #include <tqdbusmessage.h>
17 #include <tqdbusobjectpath.h>
18 
19 
20 namespace org
21 {
22 namespace freedesktop
23 {
24 namespace DBus
25 {
26 
27 void ObjectManagerInterface::buildIntrospectionData(TQDomElement& interfaceElement)
28 {
29  interfaceElement.setAttribute("name", "org.freedesktop.DBus.ObjectManager");
30 
31  TQDomDocument document = interfaceElement.ownerDocument();
32  TQDomElement methodElement = document.createElement("method");
33  methodElement.setAttribute("name", "GetManagedObjects");
34 
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);
40 
41  interfaceElement.appendChild(methodElement);
42 
43  methodElement = document.createElement("signal");
44  methodElement.setAttribute("name", "InterfacesAdded");
45 
46  argumentElement = document.createElement("arg");
47  argumentElement.setAttribute("name", "object");
48  argumentElement.setAttribute("type", "o");
49  argumentElement.setAttribute("direction", "out");
50  methodElement.appendChild(argumentElement);
51 
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);
57 
58  interfaceElement.appendChild(methodElement);
59 
60  methodElement = document.createElement("signal");
61  methodElement.setAttribute("name", "InterfacesRemoved");
62 
63  argumentElement = document.createElement("arg");
64  argumentElement.setAttribute("name", "object");
65  argumentElement.setAttribute("type", "o");
66  argumentElement.setAttribute("direction", "out");
67  methodElement.appendChild(argumentElement);
68 
69  argumentElement = document.createElement("arg");
70  argumentElement.setAttribute("name", "interfaces");
71  argumentElement.setAttribute("type", "as");
72  argumentElement.setAttribute("direction", "out");
73  methodElement.appendChild(argumentElement);
74 
75  interfaceElement.appendChild(methodElement);
76 }
77 
78 bool ObjectManagerInterface::emitInterfacesAdded(const TQT_DBusObjectPath& object, const TQT_DBusDataMap< TQString >& interfaces)
79 {
80  TQString path = objectPath();
81  Q_ASSERT(!path.isEmpty());
82 
83  TQT_DBusMessage message = TQT_DBusMessage::signal(path, "org.freedesktop.DBus.ObjectManager", "InterfacesAdded");
84 
85  message << TQT_DBusData::fromObjectPath(object);
86  message << TQT_DBusData::fromStringKeyMap(interfaces);
87 
88  return handleSignalSend(message);
89 }
90 
91 bool ObjectManagerInterface::emitInterfacesRemoved(const TQT_DBusObjectPath& object, const TQStringList& interfaces)
92 {
93  TQString path = objectPath();
94  Q_ASSERT(!path.isEmpty());
95 
96  TQT_DBusMessage message = TQT_DBusMessage::signal(path, "org.freedesktop.DBus.ObjectManager", "InterfacesRemoved");
97 
98  message << TQT_DBusData::fromObjectPath(object);
99  message << TQT_DBusData::fromList((interfaces));
100 
101  return handleSignalSend(message);
102 }
103 
104 
105 TQT_DBusMessage ObjectManagerInterface::callGetManagedObjects(const TQT_DBusMessage& message)
106 {
107  TQT_DBusError error;
108  TQT_DBusMessage reply;
109 
111 
112  if (GetManagedObjects(_objects, error))
113  {
114  reply = TQT_DBusMessage::methodReply(message);
115  reply << TQT_DBusData::fromObjectPathKeyMap(_objects);
116  }
117  else
118  {
119  if (!error.isValid())
120  {
121  tqWarning("Call to implementation of org::freedesktop::DBus::ObjectManagerInterface::GetManagedObjects returned 'false' but error object is not valid!");
122 
123  error = TQT_DBusError::stdFailed("org.freedesktop.DBus.ObjectManager.GetManagedObjects execution failed");
124  }
125 
126  reply = TQT_DBusMessage::methodError(message, error);
127  }
128 
129  return reply;
130 }
131 
132 bool ObjectManagerInterface::handleMethodCall(const TQT_DBusMessage& message)
133 {
134  if (message.interface() != "org.freedesktop.DBus.ObjectManager") return false;
135 
136  if (message.member() == "GetManagedObjects")
137  {
138  TQT_DBusMessage reply = callGetManagedObjects(message);
139  handleMethodReply(reply);
140 
141  return true;
142  }
143 
144  return false;
145 }
146 
147 }; // namespace DBus
148 
149 }; // namespace freedesktop
150 
151 }; // namespace org
152 
153 // End of File
154 
virtual void handleMethodReply(const TQT_DBusMessage &reply)=0
virtual bool handleSignalSend(const TQT_DBusMessage &reply)=0
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