The Vortex OpenSplice IDL Pre-processor, idlpp, can be run with the following command line options:
[ -h ]
[ -b <ORB-template-path> ]
[ -n <include-suffix> ]
[ -I <path> ]
[ -D <macro>[=<definition>] ]
< -S | -C >
< -l (c | c++ | cpp | java | cs | isocpp | isoc++ | c99 | simulink) >
[ -F ]
[ -j [old]:<new>]
[ -o <dds-types> | <custom-psm> | <no-equality> | <deprecated-c++11-mapping>]
[ -d <output-directory> ]
[ -P <dll_macro_name>[,<header_file>] ]
[ -N ]
<filename>
All of these options are described in full detail below.
Selects the target language. Note that the Vortex OpenSplice IDL Pre-processor does not support every combination of modes and languages. This option is mandatory; when no language is selected the OpenSplice IDL Pre-processor reports an error.
For the c, c++, cpp, java and cs target languages the types will default to the standard types. For the isocpp and isoc++ target languages the types will default to the ISOC++ types that comply with the ISO/IEC C++ 2003 Language DDS PSM. When using isocpp, isoc++ isocpp2 or isoc++2 an equality operator will also be generated for types unless this feature is explicitly disabled.
Please note that isocpp and isoc++ target languages are DEPRECATED since V6.6.0. Please use isocpp2 or isoc++2 instead.
For the Standalone mode in C (when using the -S flag and the c language option), OSPL_ORB_PATH will by default be set to value SAC, which is the default location for the standalone C specialized class template files.
For the CORBA cohabitation mode in C++ (when using the -C flag and the c++ or cpp language option) the OSPL_ORB_PATH will, by default, be set to:
CCPP/DDS_OpenFusion_1_6_1 for Unix-based platforms.
CCPP\DDS_OpenFusion_1_6_1 for Windows platforms.
These are the default locations for the IDL to C++ specialized class template files of the OpenSplice-Tao ORB. Class templates for other ORBS are also available in separate sub-directories of the CCPP directory, but for more information about using a different ORB, consult the README file in the custom_lib/ccpp directory.
For the Standalone mode in C++ (when using the -S flag and the c++ or cpp language option), OSPL_ORB_PATH will by default be set to value SACPP, which is the default location for the standalone C++ specialized class template files.
For the Standalone mode in Java (when using the -S flag and the java language option), OSPL_ORB_PATH will by default be set to the value of SAJ, which is the default location for the standalone Java specialized class template files.
For the CORBA cohabitation mode in Java (when using the -C flag and the java language option), OSPL_ORB_PATH will by default be set to the value of SAJ, which is the default location for the CORBA Java specialized class template files. This means that the CORBA cohabitated Java API and StandAlone Java API share the same template files.
For the Standalone mode in C# (when using the -S flag and the cs language option), OSPL_ORB_PATH will by default be set to the value of SACS, which is the default location for the standalone CSharp specialized class template files.
For the c99 target language the types will default to the standard types. Except that the primitive types are mapped to the corresponding c99 types and that bound strings are mapped to char arrays with a size one larger than specified in the idl definition to allow for the terminating 0 character.
For Simulink a MATLAB .m file is created representing the simulink bus for the input IDL file. Typically this option is used when invoking a script from MATLAB to import the IDL into Simulink.
See also OpenSplice Modes and Languages for a complete list of supported modes and languages.
This option controls the signature for every external function/class interface. If you want to use the generated code for creating a DLL, then interfaces that need to be accessible from the outside need to be exported. When accessing these operations outside of the DLL, then these external interfaces need to be imported. If the generated code is statically linked, this option can be omitted. The first argument <dll_macro_name> specifies the text that is prepended to the signature of every external function and/or class. For example: defining DDS_API as the macro, the user can define this macro as __declspec(dllexport) when building the DLL containing the generated code, and define the macro as __declspec(dllimport) when using the DLL containing the generated code.
Addtionally a header file can be specified, which contains controls to define the macro. For example the external interface of the generated code is exported when the macro BUILD_MY_DLL is defined, then this file could look like:
#ifdef BUILD_MY_DLL
#define DDS_API __declspec(dllexport)
#else /* !BUILD_MY_DLL */
#define DDS_API __declspec(dllimport)
#endif /* BUILD_MY_DLL */