Suppose you have the following structure: struct reallyComplicatedStruct { int big_number; struct anotherComplicatedStruct[100]; InternalClassDefinedALongTimeAgo legacyClass; .... } Instead of regenerating the serialization/deserialization code by translating the complicated structures and legacy classes into IDL format and running rtiddsgen, you can use your existing serialized classes and treat the entire structure as a string. By doing this, the only data structure you need to run through rtiddsgen is something like: struct OpaqueBuffer { octet data; } Please note: do not use an array of strings for serialization because it does not allow for '0' null characters. To use your own serialize/deserialize functions, replace RTI DDS's default serialize/deserialize functions. If you used rtiddsgen to generate your files, the functions you want to replace depend on your chosen language. For example, when using RTI DDS 4.x, the generated files to modify are as follows: C++: In the file Plugin.cxx, replace Plugin_serialize() and Plugin_deserialize(). C: In the file Plugin.c, replace Plugin_serialize() and Plugin_deserialize(). Java: In the file TypeSupport.java, replace serialize_object() and deserialize_object()