qdbusargument_p.h
来自「奇趣公司比较新的qt/emd版本」· C头文件 代码 · 共 199 行
H
199 行
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the tools applications of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file. Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QDBUSARGUMENT_P_H#define QDBUSARGUMENT_P_H//// W A R N I N G// -------------//// This file is not part of the Qt API. It exists for the convenience// of the QLibrary class. This header file may change from// version to version without notice, or even be removed.//// We mean it.//#include <qdbusargument.h>#include <dbus/dbus.h>class QDBusMarshaller;class QDBusDemarshaller;class QDBusArgumentPrivate{public: inline QDBusArgumentPrivate() : message(0), ref(1) { } ~QDBusArgumentPrivate(); static bool checkRead(QDBusArgumentPrivate *d); static bool checkReadAndDetach(QDBusArgumentPrivate *&d); static bool checkWrite(QDBusArgumentPrivate *&d); QDBusMarshaller *marshaller(); QDBusDemarshaller *demarshaller(); static QByteArray createSignature(int id); static inline QDBusArgument create(QDBusArgumentPrivate *d) { QDBusArgument q(d); return q; } static inline QDBusArgumentPrivate *d(QDBusArgument &q) { return q.d; }public: DBusMessage *message; QAtomic ref; enum Direction { Marshalling, Demarshalling } direction;};class QDBusMarshaller: public QDBusArgumentPrivate{public: QDBusMarshaller() : parent(0), ba(0), closeCode(0), ok(true) { direction = Marshalling; } ~QDBusMarshaller(); QString currentSignature(); void append(uchar arg); void append(bool arg); void append(short arg); void append(ushort arg); void append(int arg); void append(uint arg); void append(qlonglong arg); void append(qulonglong arg); void append(double arg); void append(const QString &arg); void append(const QDBusObjectPath &arg); void append(const QDBusSignature &arg); void append(const QStringList &arg); void append(const QByteArray &arg); bool append(const QDBusVariant &arg); // this one can fail QDBusMarshaller *beginStructure(); QDBusMarshaller *endStructure(); QDBusMarshaller *beginArray(int id); QDBusMarshaller *endArray(); QDBusMarshaller *beginMap(int kid, int vid); QDBusMarshaller *endMap(); QDBusMarshaller *beginMapEntry(); QDBusMarshaller *endMapEntry(); QDBusMarshaller *beginCommon(int code, const char *signature); QDBusMarshaller *endCommon(); void open(QDBusMarshaller &sub, int code, const char *signature); void close(); void error(); bool appendVariantInternal(const QVariant &arg); bool appendRegisteredType(const QVariant &arg); bool appendCrossMarshalling(QDBusDemarshaller *arg);public: DBusMessageIter iterator; QDBusMarshaller *parent; QByteArray *ba; char closeCode; bool ok;private: Q_DISABLE_COPY(QDBusMarshaller)};class QDBusDemarshaller: public QDBusArgumentPrivate{public: inline QDBusDemarshaller() : parent(0) { direction = Demarshalling; } ~QDBusDemarshaller(); QString currentSignature(); uchar toByte(); bool toBool(); ushort toUShort(); short toShort(); int toInt(); uint toUInt(); qlonglong toLongLong(); qulonglong toULongLong(); double toDouble(); QString toString(); QDBusObjectPath toObjectPath(); QDBusSignature toSignature(); QDBusVariant toVariant(); QStringList toStringList(); QByteArray toByteArray(); QDBusDemarshaller *beginStructure(); QDBusDemarshaller *endStructure(); QDBusDemarshaller *beginArray(); QDBusDemarshaller *endArray(); QDBusDemarshaller *beginMap(); QDBusDemarshaller *endMap(); QDBusDemarshaller *beginMapEntry(); QDBusDemarshaller *endMapEntry(); QDBusDemarshaller *beginCommon(); QDBusDemarshaller *endCommon(); QDBusArgument duplicate(); inline void close() { } bool atEnd(); QVariant toVariantInternal();public: DBusMessageIter iterator; QDBusDemarshaller *parent;private: Q_DISABLE_COPY(QDBusDemarshaller)};inline QDBusMarshaller *QDBusArgumentPrivate::marshaller(){ return static_cast<QDBusMarshaller *>(this); }inline QDBusDemarshaller *QDBusArgumentPrivate::demarshaller(){ return static_cast<QDBusDemarshaller *>(this); }#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?