Qt 4.8
qdbusintrospection_p.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtDBus module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #ifndef QDBUSINTROSPECTION_H
43 #define QDBUSINTROSPECTION_H
44 
45 //
46 // W A R N I N G
47 // -------------
48 //
49 // This file is not part of the Qt API. It exists for the convenience
50 // of the QLibrary class. This header file may change from
51 // version to version without notice, or even be removed.
52 //
53 // We mean it.
54 //
55 
56 #include <QtCore/qstring.h>
57 #include <QtCore/qlist.h>
58 #include <QtCore/qstringlist.h>
59 #include <QtCore/qmap.h>
60 #include <QtCore/qpair.h>
61 #include <QtCore/qshareddata.h>
62 #include <qdbusmacros.h>
63 
65 
67 {
68 public:
69  // forward declarations
70  struct Argument;
71  struct Method;
72  struct Signal;
73  struct Property;
74  struct Interface;
75  struct Object;
76  struct ObjectTree;
77 
78  // typedefs
86 
87 public:
88  // the structs
89 
90  struct Argument
91  {
94 
95  inline bool operator==(const Argument& other) const
96  { return name == other.name && type == other.type; }
97  };
98 
99  struct Method
100  {
102  Arguments inputArgs;
103  Arguments outputArgs;
104  Annotations annotations;
105 
106  inline bool operator==(const Method& other) const
107  { return name == other.name && annotations == other.annotations &&
108  inputArgs == other.inputArgs && outputArgs == other.outputArgs; }
109  };
110 
111  struct Signal
112  {
114  Arguments outputArgs;
115  Annotations annotations;
116 
117  inline bool operator==(const Signal& other) const
118  { return name == other.name && annotations == other.annotations &&
119  outputArgs == other.outputArgs; }
120  };
121 
122  struct Property
123  {
124  enum Access { Read, Write, ReadWrite };
128  Annotations annotations;
129 
130  inline bool operator==(const Property& other) const
131  { return access == other.access && name == other.name &&
132  annotations == other.annotations && type == other.type; }
133  };
134 
135  struct Interface: public QSharedData
136  {
139 
140  Annotations annotations;
141  Methods methods;
142  Signals signals_;
143  Properties properties;
144 
145  inline bool operator==(const Interface &other) const
146  { return !name.isEmpty() && name == other.name; }
147  };
148 
149  struct Object: public QSharedData
150  {
154 
157  };
158 
159  struct ObjectTree: public Object
160  {
161  Interfaces interfaceData;
163  };
164 
165 public:
166  static Interface parseInterface(const QString &xml);
167  static Interfaces parseInterfaces(const QString &xml);
168  static Object parseObject(const QString &xml, const QString &service = QString(),
169  const QString &path = QString());
170  static ObjectTree parseObjectTree(const QString &xml,
171  const QString &service,
172  const QString &path);
173 
174 private:
176 };
177 
179 
180 #endif
QString path
The object&#39;s path on the service.
bool operator==(const Property &other) const
Compares this object against other and return true if they are the same.
QStringList childObjects
The list of child object names in this object.
QStringList interfaces
The list of interface names in this object.
Information about one object on the bus.
QMap< QString, QSharedDataPointer< Interface > > Interfaces
Contains a QMap of interfaces and their names.
Objects childObjectData
A map of object paths and their data.
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
Information about introspected objects and interfaces on D-Bus.
QString name
The method&#39;s name.
QString name
The property&#39;s name.
Arguments outputArgs
A list of the signal&#39;s arguments.
Information about one property.
Annotations annotations
The annotations associated with the method.
One argument to a D-Bus method or signal.
Signals signals_
The signals available in this interface.
Interfaces interfaceData
A map of interfaces and their names.
The QString class provides a Unicode character string.
Definition: qstring.h:83
Properties properties
The properties available in this interface.
bool operator==(const Signal &other) const
Compares this object against other and return true if they are the same.
QMap< QString, QString > Annotations
Contains a QMap of an annotation pair.
QList< Argument > Arguments
Contains a list of arguments to either a Method or a Signal.
Arguments outputArgs
A list of the method&#39;s output arguments (i.
bool operator==(const Argument &other) const
Compares this object against other and return true if they are the same.
QString name
The interface&#39;s name.
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
QMultiMap< QString, Signal > Signals
Contains a QMap of signals and their names.
Arguments inputArgs
A list of the method&#39;s input arguments.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
QMultiMap< QString, Method > Methods
Contains a QMap of methods and their names.
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
Annotations annotations
The annotations associated with the signal.
Complete information about one object node and its descendency.
QString type
The argument type.
QMap< QString, QSharedDataPointer< ObjectTree > > Objects
Contains a QMap of objects and their paths relative to their immediate parent.
Information about one signal.
QString service
The object&#39;s service name.
Annotations annotations
The annotations associated with the interface.
QString introspection
The XML document fragment describing this interface.
QString name
The argument name.
The QSharedData class is a base class for shared data objects.
Definition: qshareddata.h:56
QString type
The property&#39;s type.
Methods methods
The methods available in this interface.
Information about one interface on the bus.
Access
The possible access rights for a property:
#define Q_DBUS_EXPORT
Definition: qglobal.h:1463
bool operator==(const Interface &other) const
Compares this object against other and return true if they are the same.
QString name
The signal&#39;s name.
QMap< QString, Property > Properties
Contains a QMap of properties and their names.
Access access
The property&#39;s access rights.
Annotations annotations
The annotations associated with the property.
Information about one method.
QString introspection
The XML document fragment describing this object, its interfaces and sub-objects at the time of the p...
bool operator==(const Method &other) const
Compares this object against other and return true if they are the same.