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