Hello Rock-Devs,

long time not seen :).
I currently play around with typekit and orogen in one of our projects.
I did the basic build system integration and if we continue using it, i might 
need to extend orogen (castxml handling) with cmake support soon, but this is a 
differnt story.

So, I currently struggle to create bindings/serialization helper for some 
special types we use:

1) Typelib[WARN]: 
/home/a/workspace/athena/build/vfc/include/vfc/memory/vfc_fixedblock_allocator.hpp:198:
 cannot create the /vfc/TFixedBlockAllocator<SOMETHING>/storage_type typedef, 
as it points to  which is ignored
2) Typelib[WARN]: 
/home/a/workspace/athena/build/vfc/include/vfc/memory/vfc_fixedblock_allocator.hpp:89:
 ignoring /vfc/TFixedBlockAllocator<SOMETHING,200> since its field m_memblock 
is of the ignored type /vfc/TFixedBlockAllocator<SOMETHING,200>/storage_type
3) Typelib[WARN]: 
/home/a/workspace/athena/build/vfc/include/vfc/container/vfc_fixedvector.hpp:453:
 ignoring /vfc/TFixedVector<SOMETHING,200,SOMETHING,200>>/storage_type as it 
has a non-public access specifier: private
4) Typelib[WARN]: 
/home/a/workspace/athena/build/vfc/include/vfc/container/vfc_fixedvector.hpp:93:
 ignoring 
/vfc/TFixedVector<SOMETHING,200,/vfc/TFixedBlockAllocator<SOMETHING,200>> since 
its field m_memory is of the ignored type 
/vfc/TFixedVector<SOMETHING,200,/vfc/TFixedBlockAllocator<SOMETHING,200>>/storage_type

And i see several issues in:
1) there is a "points to <MISSING?> which is ignored" so obvisously here is 
something wrong in the error message (and i havwe to trace down the 
/storage_type which i have no clue where its comming from
2,3) private fields, normal error, see below....
4) simliar to one

To solve the issues I thought provide a own serialization/deserialization 
method to prevent the usage inside RTT.

I wanted to go for a "specialize" of the types. However adding the the 
following specialize to my .orogen project:

________________________________

Typelib.specialize '/vfc/TFixedBlockAllocator<>' do

    include Typelib::ContainerType::StdVector #something should hopefully not 
YET madder, to be written later

  end


  Typelib.specialize '/vfc/TFixedVector<>' do

    include Typelib::ContainerType::StdVector #something should hopefully not 
YET madder, to be written later

  end

________________________________
does not have any effect. Same as if i would add it to typelib directly:


________________________________

diff --git a/bindings/ruby/lib/typelib/standard_convertions.rb 
b/bindings/ruby/lib/typelib/standard_convertions.rb

index fb3e3fb..f917070 100644

--- a/bindings/ruby/lib/typelib/standard_convertions.rb

+++ b/bindings/ruby/lib/typelib/standard_convertions.rb

@@ -59,6 +59,10 @@ def concat(other_string)

         include Typelib::ContainerType::StdVector

     end



+    specialize '/vfc/TFixedVector<>' do

+        include Typelib::ContainerType::FixedVector #something should 
hopefully not YET madder, to be written later

+    end

+

     ####

     # C string handling

     if String.instance_methods.include? :ord

________________________________

So my questions are:
* Since i am out of rock, am i going the right way, why the specialize is not 
taken into account?
** Cant it bypass the private fields, do i have to change my underlaying core 
datatypes (if so are there other ways which are copy free?, I would like to 
prevent going down this path)
* Can I prevent a copy this way, or will the data strucutres be copied if i go 
for a "specialize"?I
Thanks for your help

Best and stay safe,
Matthias
_______________________________________________
Rock-dev mailing list
[email protected]
https://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev

Reply via email to