1 /****************************************************************************
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 ** This file is part of the test suite of the Qt Toolkit.
8 ** $QT_BEGIN_LICENSE:LGPL$
10 ** This file contains pre-release code and may not be distributed.
11 ** You may use this file in accordance with the terms and conditions
12 ** contained in the either Technology Preview License Agreement or the
13 ** Beta Release License Agreement.
15 ** GNU Lesser General Public License Usage
16 ** Alternatively, this file may be used under the terms of the GNU Lesser
17 ** General Public License version 2.1 as published by the Free Software
18 ** Foundation and appearing in the file LICENSE.LGPL included in the
19 ** packaging of this file. Please review the following information to
20 ** ensure the GNU Lesser General Public License version 2.1 requirements
21 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23 ** In addition, as a special exception, Nokia gives you certain
24 ** additional rights. These rights are described in the Nokia Qt LGPL
25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
28 ** GNU General Public License Usage
29 ** Alternatively, this file may be used under the terms of the GNU
30 ** General Public License version 3.0 as published by the Free Software
31 ** Foundation and appearing in the file LICENSE.GPL included in the
32 ** packaging of this file. Please review the following information to
33 ** ensure the GNU General Public License version 3.0 requirements will be
34 ** met: http://www.gnu.org/copyleft/gpl.html.
36 ** If you are unsure which license is appropriate for your use, please
37 ** contact the sales department at http://www.qtsoftware.com/contact.
40 ****************************************************************************/
45 #include <QtCore/QObject>
46 #include <QtDBus/QDBusArgument>
50 inline RegisteredType(const QString
&str
= QString()) : s(str
) {}
51 inline bool operator==(const RegisteredType
&other
) const { return s
== other
.s
; }
54 Q_DECLARE_METATYPE(RegisteredType
)
56 inline QDBusArgument
&operator<<(QDBusArgument
&s
, const RegisteredType
&data
)
64 inline const QDBusArgument
&operator>>(const QDBusArgument
&s
, RegisteredType
&data
)
72 struct UnregisteredType
76 Q_DECLARE_METATYPE(UnregisteredType
)
78 class Interface
: public QObject
81 Q_CLASSINFO("D-Bus Interface", "com.trolltech.QtDBus.Pinger")
82 Q_PROPERTY(QString stringProp READ stringProp WRITE setStringProp SCRIPTABLE
true)
83 Q_PROPERTY(QDBusVariant variantProp READ variantProp WRITE setVariantProp SCRIPTABLE
true)
84 Q_PROPERTY(RegisteredType complexProp READ complexProp WRITE setComplexProp SCRIPTABLE
true)
86 friend class tst_QDBusAbstractInterface
;
88 QDBusVariant m_variantProp
;
89 RegisteredType m_complexProp
;
94 QString
stringProp() const { return m_stringProp
; }
95 void setStringProp(const QString
&s
) { m_stringProp
= s
; }
96 QDBusVariant
variantProp() const { return m_variantProp
; }
97 void setVariantProp(const QDBusVariant
&v
) { m_variantProp
= v
; }
98 RegisteredType
complexProp() const { return m_complexProp
; }
99 void setComplexProp(const RegisteredType
&r
) { m_complexProp
= r
; }
102 Q_SCRIPTABLE
void voidMethod() {}
103 Q_SCRIPTABLE QString
stringMethod() { return "Hello, world"; }
104 Q_SCRIPTABLE RegisteredType
complexMethod() { return RegisteredType("Hello, world"); }
105 Q_SCRIPTABLE QString
multiOutMethod(int &value
) { value
= 42; return "Hello, world"; }
108 Q_SCRIPTABLE
void voidSignal();
109 Q_SCRIPTABLE
void stringSignal(const QString
&);
110 Q_SCRIPTABLE
void complexSignal(RegisteredType
);
113 #endif // INTERFACE_H