Generated from orogen/lib/orogen/templates/typekit/Opaques.hpp

ifndef _OROGEN_GENERATED<%= typekit.name %>_USER_MARSHALLING_HH define _OROGEN_GENERATED<%= typekit.name %>_USER_MARSHALLING_HH

include <<%= typekit.name %>/typekit/OpaqueFwd.hpp>

namespace orogen_typekits {

<% type_sets.opaque_types.find_all { |op| op.generate_templates? }.each do |opaque_def|
    from = opaque_def.type
    into = typekit.find_type(opaque_def.intermediate)
    if opaque_def.needs_copy? %>
    Converts \c real_type into \c intermediate   
void toIntermediate(<%= into.ref_type %> intermediate, <%= from.arg_type %> real_type);
/** Converts \c intermediate into \c real_type */
void fromIntermediate(<%= from.ref_type %> real_type, <%= into.arg_type %> intermediate);
    <% else %>
/** Returns the intermediate value that is contained in \c real_type */
<%= into.arg_type %> toIntermediate(<%= from.arg_type %> real_type);
/** Stores \c intermediate into \c real_type. \c intermediate is owned by \c
   real_type afterwards. */
bool fromIntermediate(<%= from.ref_type %> real_type, <%= into.cxx_name %>* intermediate);
/** Release ownership of \c real_type on the corresponding intermediate
   pointer.
  /
void release(<%= from.ref_type %> real_type);
    <% end %>
<% end %>

}

endif