How to use variant
P. Durante
shackan at gmail.com
Mon Jul 9 05:47:23 PDT 2007
Hi,
On 7/9/07, Naveen Verma <ernaveenverma at gmail.com> wrote:
> Hi,
>
> Thanks a lot for your help.
>
> It was easy, but I am still stuck in an issue. In another function which
> return and array of struct and one of the struct member is variant. When I
> call the function from another program. I receive "DBus::Error" , "what():
> unknown type". The interesting part is I did not receive this error if I
> return only structure not the array of structure, or return the array of
> structure without variant as members.
>
> So something is wrong in combination of array and variant. The function
> example which gives and error is as:
>
> std::vector< DBus::Struct<DBus::String, DBus::UInt32,
> DBus::String, DBus::Variant> >
> CManager::GetParameters(const DBus::String &pto)
> {
> std::cerr << "Method GetParameters\n";
>
> DBus::Struct< DBus::String, DBus::UInt32,
> DBus::String,DBus::Variant > param;
>
> param._1 = "protocol";
> param._2 = 1;
> param._3 = "string";
>
> // Add the variant
> DBus::MessageIter i = param._4.writer();
> i << DBus::String("None");
>
> std::vector < DBus::Struct< DBus::String, DBus::UInt32,
> DBus::String,DBus::Variant> > temp;
> temp.push_back(param);
>
> return temp;
> }
>
> In this function if I removed variant from the structure or remove vector
> and just keep struct then it works fine, otherwise the remote caller
> function terminate with "DBus::Error" , "what(): unknown type" error.
>
> Could anyone please help me to figure out the problem?
>
> -Thanks & Regards
> Naveen
>
>
sorry, it's been just fixed in the trunk
thanks and best regards,
Paolo
More information about the dbus
mailing list