On 08/28/2014 04:39 PM, Thiago Macieira wrote: On Thursday 28 August 2014 20:16:56 Rogers Nate wrote:
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"<http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd><http://www.f reedesktop.org/standards/dbus/1.0/introspect.dtd><http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd>> <node> <interface name="com.GDM.ServiceData"> <method name="serviceErrorLog"> <arg name="serviceErrorLogData" type="a(ss)" direction="out"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="ServiceErrorLogData"/> </method> </interface> </node> and I got this warning... servicedata_adaptor.cpp:36:1: error: 'ServiceErrorLogData' does not name a type That should be QList<ServiceErrorLogData>. If you're using code generation with gdbusxml2cpp, you'll need to pass the -i ServiceData.h option to the generator so it will add the #include. Are you using code generation with qmake? Or is it some other tool? Your use of "qt5/" in your includes leads me to think that you're not using qmake. It builds now with this... <!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"<http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd>> <node> <interface name="com.GDM.ServiceData"> <method name="serviceErrorLog"> <arg name="QList<ServiceErrorLogData>" type="a(ss)" direction="out"/> <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList<ServiceErrorLogData>"/> </method> </interface> </node> but I get this message at runtime... QDBusError("org.freedesktop.DBus.Error.InvalidSignature", "Unexpected reply signature: got "", expected "a(ss)"") I am using qmake, I usually use... qdbuscpp2xml -A ServiceData.h -o ServiceData.xml to make my xml file from my cpp file (I had to enter in the entry for my custom type manually) and then Qt automatically makes my other cpp files when I build. Here are the contents of my .pro files... ------------------------------------- Begin DataProcess.pro ---------------------------------------- #------------------------------------------------- # # Project created by QtCreator 2014-07-16T11:59:31 # #------------------------------------------------- QT += dbus DBUS_ADAPTORS += ServiceData.xml QMAKE_LFLAGS_APP += -rdynamic QT += core QT -= gui TARGET = Data CONFIG += console CONFIG -= app_bundle TEMPLATE = app INCLUDEPATH += \ $${OUT_PWD}/../Data/ SOURCES += main.cpp \ ServiceData.cpp \ ServiceErrorLogData.cpp HEADERS += \ ServiceData.h \ ServiceErrorLogData.h OTHER_FILES += \ ServiceData.xml # Install the dbus system config file application_interfaces.path = /etc/dbus-1/system.d/ application_interfaces.files = com.GDM.ServiceData.conf INSTALLS += application_interfaces # install target.path = /opt/dbustest INSTALLS += target --------------------------------------------- End DataProcess.pro ---------------------------------------------- --------------------------------------------- Begin CommProcess.pro ---------------------------------------------- #------------------------------------------------- # # Project created by QtCreator 2014-04-18T09:19:20 # #------------------------------------------------- QT += dbus DBUS_INTERFACES += ../DataProcess/ServiceData.xml QMAKE_LFLAGS_APP += -rdynamic QT += core QT -= gui TARGET = CanComm CONFIG += console CONFIG -= app_bundle TEMPLATE = app INCLUDEPATH += \ ../DataProcess/ \ $${OUT_PWD}/../CanComm/ \ $${OUT_PWD}/../Data/ SOURCES += main.cpp \ CanData.cpp \ ../DataProcess/ServiceErrorLogData.cpp HEADERS += \ CanData.h \ ../DataProcess/ServiceErrorLogData.h # install target.path = /opt/dbustest INSTALLS += target --------------------------------------------- End CommProcess.pro ---------------------------------------------- The files it generates look like this... ----------------------------------------- Begin servicedata_adaptor.cpp -------------------------------------- /* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -i servicedata_adaptor.h -a :servicedata_adaptor.cpp ../../../dbustest/DataProcess/ServiceData.xml * * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). * * This is an auto-generated file. * Do not edit! All changes made to it will be lost. */ #include "servicedata_adaptor.h" #include <QtCore/QMetaObject> #include <QtCore/QByteArray> #include <QtCore/QList> #include <QtCore/QMap> #include <QtCore/QString> #include <QtCore/QStringList> #include <QtCore/QVariant> /* * Implementation of adaptor class ServiceDataAdaptor */ ServiceDataAdaptor::ServiceDataAdaptor(QObject *parent) : QDBusAbstractAdaptor(parent) { // constructor setAutoRelaySignals(true); } ServiceDataAdaptor::~ServiceDataAdaptor() { // destructor } void ServiceDataAdaptor::serviceErrorLog() { // handle method call com.GDM.ServiceData.serviceErrorLog QMetaObject::invokeMethod(parent(), "serviceErrorLog"); } ----------------------------------------- End servicedata_adaptor.cpp -------------------------------------- ----------------------------------------- Begin servicedata_adaptor.h -------------------------------------- /* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -a servicedata_adaptor.h: ../../../dbustest/DataProcess/ServiceData.xml * * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). * * This is an auto-generated file. * This file may have been hand-edited. Look for HAND-EDIT comments * before re-generating it. */ #ifndef SERVICEDATA_ADAPTOR_H_1409677747 #define SERVICEDATA_ADAPTOR_H_1409677747 #include <QtCore/QObject> #include <QtDBus/QtDBus> QT_BEGIN_NAMESPACE class QByteArray; template<class T> class QList; template<class Key, class Value> class QMap; class QString; class QStringList; class QVariant; QT_END_NAMESPACE /* * Adaptor class for interface com.GDM.ServiceData */ class ServiceDataAdaptor: public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "com.GDM.ServiceData") Q_CLASSINFO("D-Bus Introspection", "" " <interface name=\"com.GDM.ServiceData\">\n" " <method name=\"serviceErrorLog\"/>\n" " </interface>\n" "") public: ServiceDataAdaptor(QObject *parent); virtual ~ServiceDataAdaptor(); public: // PROPERTIES public Q_SLOTS: // METHODS void serviceErrorLog(); Q_SIGNALS: // SIGNALS }; #endif ----------------------------------------- End servicedata_adaptor.h -------------------------------------- ----------------------------------------- Begin servicedata_interface.cpp -------------------------------------- /* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -i servicedata_interface.h -p :servicedata_interface.cpp ../../../dbustest/DataProcess/ServiceData.xml * * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). * * This is an auto-generated file. * This file may have been hand-edited. Look for HAND-EDIT comments * before re-generating it. */ #include "servicedata_interface.h" /* * Implementation of interface class ComGDMServiceDataInterface */ ComGDMServiceDataInterface::ComGDMServiceDataInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent) : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent) { } ComGDMServiceDataInterface::~ComGDMServiceDataInterface() { } ----------------------------------------- End servicedata_interface.cpp -------------------------------------- ----------------------------------------- Begin servicedata_interface.h -------------------------------------- /* * This file was generated by qdbusxml2cpp version 0.8 * Command line was: qdbusxml2cpp -p servicedata_interface.h: ../../../dbustest/DataProcess/ServiceData.xml * * qdbusxml2cpp is Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). * * This is an auto-generated file. * Do not edit! All changes made to it will be lost. */ #ifndef SERVICEDATA_INTERFACE_H_1409677606 #define SERVICEDATA_INTERFACE_H_1409677606 #include <QtCore/QObject> #include <QtCore/QByteArray> #include <QtCore/QList> #include <QtCore/QMap> #include <QtCore/QString> #include <QtCore/QStringList> #include <QtCore/QVariant> #include <QtDBus/QtDBus> /* * Proxy class for interface com.GDM.ServiceData */ class ComGDMServiceDataInterface: public QDBusAbstractInterface { Q_OBJECT public: static inline const char *staticInterfaceName() { return "com.GDM.ServiceData"; } public: ComGDMServiceDataInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0); ~ComGDMServiceDataInterface(); public Q_SLOTS: // METHODS inline QDBusPendingReply<> serviceErrorLog() { QList<QVariant> argumentList; return asyncCallWithArgumentList(QLatin1String("serviceErrorLog"), argumentList); } Q_SIGNALS: // SIGNALS }; namespace com { namespace GDM { typedef ::ComGDMServiceDataInterface ServiceData; } } #endif ----------------------------------------- End servicedata_interface.h -------------------------------------- Thanks again for the help! Nate Confidentiality Notice: The preceding e-mail message (including any attachments) contains information that may be confidential, protected by applicable legal privileges, or constitute non-public information. It is intended to be conveyed only to the designated recipient(s). If you are not an intended recipient of this message, please notify the sender by replying to this message and then delete it from your system. Use, dissemination, distribution or reproduction of this message by unintended recipients is not authorized and may be unlawful.
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest