[Interest] Support for multiple 'out' parameters in qdbusxml2cpp

Matt Hoosier matt.hoosier at gmail.com
Fri Jul 26 22:27:21 CEST 2013


I've observed that qdbusxml2cpp doesn't emit the QMetaCall that would
forward a D-Bus method-call message from the adaptor along to the "business
logic" class that provides slots to implement all the various methods.
E.g., if I have:

  <method name="Foo">
    <arg name="inValue" direction="in" type="s"/>
    <arg name="outValue1" direction="out" type="s"/>
    <arg name="outValue2" direction="out" type="s"/>
  </method>

the adaptor code for this method ends up looking like:

  ...
  public Q_SLOTS:
    QString MyInterfaceAdaptor::Foo(const QString &inValue, QString
&outValue2)
    {
        // handle method call MyInterfaceAdaptor.Foo
        //return static_cast<YourObjectType *>(parent())->Hello(inValue,
outValue);
    }

Is there a design reason behind this? I examined the source to
qdbusxml2cpp, and it doesn't give any rationale why this type of call isn't
marshaled through a QMetaObject::invokeMethod() call the same as the
others. Passing the additional 'out' parameters as by-ref variables would
seem straightforward enough.

-Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20130726/af751924/attachment.html>


More information about the Interest mailing list