[Rock-dev] using base::NamedVector<> as ports

Sylvain Joyeux bir.sylvain at gmail.com
Sat Aug 2 15:31:38 CEST 2014


Since typelib knows that the type is being used, it can emit it into a
header (as e.g. a typedef) so that clang emits the type.

This actually could have been done with gccxml already ...

Sylvain

On Fri, Aug 1, 2014 at 4:18 PM, Janosch Machowinski
<Janosch.Machowinski at dfki.de> wrote:
> Hm,
> I don't see how clang will solve this issue. I know, that the
> typedef will work, and that with clang we can catch template
> declarations in general. But typelib does not support
> templates. Only specialized instantiations.
> Greetings
>      Janosch
>
> Am 01.08.2014 20:52, schrieb Sylvain Joyeux:
>> This is due to a limitation in gccxml (which clang will hopefully not
>> have ...). See
>>
>> http://rock-robotics.org/stable/documentation/orogen/type_definitions.html#the-special-case-of-templates
>>
>> Sylvain
>>
>> On Thu, Jul 31, 2014 at 9:39 AM, Ajish Babu <ajish.babu at dfki.de> wrote:
>>> Hi all,
>>>
>>> I tried to use the base::NamedVector<..> as port types.
>>>
>>> when I include directly in the orogen like output_port("wrenches",
>>> "/base/NamedVector< base/samples/Wrench >")
>>>
>>>      mars_core.orogen:231: type /base/NamedVector< /base/samples/Wrench > is
>>> not declared (Orocos::Generation::ConfigError)
>>>      Typelib[WARN]:
>>> /home/babu-dfki/HDSDA2/DFKI-ROCK/install/include/base/NamedVector.hpp:12:
>>> ignoring the empty struct/class /base/NamedVector</base/samples/Wrench>
>>>      Typelib[WARN]:
>>> /home/babu-dfki/HDSDA2/DFKI-ROCK/simulation/orogen/mars_core/.orogen/typekit/types/simulation/ForceTorqueSensorTypes.hpp:8:
>>> cannot create the /simulation/Wrenches typedef, as it points to
>>> /base/NamedVector</base/samples/Wrench> which is ignored
>>>
>>> and when I do typedef base::NamedVector< base::samples::Wrench > Wrenches;
>>> and then try to use it
>>>
>>>      mars_core.orogen:230: type /simulation/Wrenches is not declared
>>> (Orocos::Generation::ConfigError)
>>>      Typelib[WARN]:
>>> /home/babu-dfki/HDSDA2/DFKI-ROCK/install/include/base/NamedVector.hpp:12:
>>> ignoring the empty struct/class /base/NamedVector</base/samples/Wrench>
>>>      Typelib[WARN]:
>>> /home/babu-dfki/HDSDA2/DFKI-ROCK/simulation/orogen/mars_core/.orogen/typekit/types/simulation/ForceTorqueSensorTypes.hpp:8:
>>> cannot create the /simulation/Wrenches typedef, as it points to
>>> /base/NamedVector</base/samples/Wrench> which is ignored
>>>
>>> It seems to work only if I create a new type like
>>>
>>>      struct Wrenches : public base::NamedVector<Wrench>
>>>      {
>>>      };
>>>
>>> Does anybody know what is going on or how it can be done without a new type?
>>>
>>> best
>>> Ajish Babu
>>>
>>> _______________________________________________
>>> Rock-dev mailing list
>>> Rock-dev at dfki.de
>>> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>>>
>> _______________________________________________
>> Rock-dev mailing list
>> Rock-dev at dfki.de
>> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev


More information about the Rock-dev mailing list