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 78a87b3d..c51bafbd 100644 --- a/src/main/java/com/eprosima/fastcdr/idl/templates/TypesSwigInterface.stg +++ b/src/main/java/com/eprosima/fastcdr/idl/templates/TypesSwigInterface.stg @@ -46,6 +46,9 @@ $ctx.directIncludeDependencies : {include | %include "$include$.i"}; separator=" %include #if FASTCDR_VERSION_MAJOR > 1 %import(module="fastdds") "fastcdr/xcdr/optional.hpp" +$if(ctx.thereIsString)$ +%import(module="fastdds") "fastcdr/cdr/fixed_size_string.hpp" +$endif$ #endif %import(module="fastdds") "fastdds/dds/core/LoanableCollection.hpp" %import(module="fastdds") "fastdds/dds/core/LoanableTypedCollection.hpp" @@ -205,6 +208,20 @@ $else$ %ignore $struct_name$::$member.name$(); %rename("%s") $struct_name$::$member.name$() const; +$if(member.typecode.isStringType && member.typecode.isBounded)$ +#if FASTCDR_VERSION_MAJOR > 1 +%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$ + $endif$ >>