diff --git a/src/main/java/com/eprosima/fastcdr/idl/templates/TypesSwigInterface.stg b/src/main/java/com/eprosima/fastcdr/idl/templates/TypesSwigInterface.stg index e7e53306..49fd4092 100644 --- a/src/main/java/com/eprosima/fastcdr/idl/templates/TypesSwigInterface.stg +++ b/src/main/java/com/eprosima/fastcdr/idl/templates/TypesSwigInterface.stg @@ -52,7 +52,12 @@ $ctx.directIncludeDependencies : {include | %include "$include$.i"}; separator=" %} %include +$if(ctx.thereIsOptionalAnnotation)$ %import(module="fastdds") "fastcdr/xcdr/optional.hpp" +$endif$ +$if(ctx.thereIsString)$ +%import(module="fastdds") "fastcdr/cdr/fixed_size_string.hpp" +$endif$ %import(module="fastdds") "fastdds/dds/core/LoanableCollection.hpp" %import(module="fastdds") "fastdds/dds/core/LoanableTypedCollection.hpp" %import(module="fastdds") "fastdds/dds/core/LoanableSequence.hpp" @@ -188,6 +193,18 @@ $else$ %ignore $struct_name$::$member.name$(); %rename("%s") $struct_name$::$member.name$() const; +$if(member.typecode.isStringType && member.typecode.isBounded)$ +%template(fixed_string_$member.typecode.maxsize$) eprosima::fastcdr::fixed_string<$member.typecode.maxsize$>; +%extend $struct_name$ +{ + void $member.name$(const std::string& value) + { + eprosima::fastcdr::fixed_string<$member.typecode.maxsize$> tmp(value); + \$self->$member.name$(tmp); + } +} +$endif$ + $endif$ >>