MARBEN ASNSDK TCE-C++ encompasses an ASN.1 Compiler together with C++ ASN.1 BER, DER, PER (both aligned and unaligned), XER and CXER runtime providing a C++ API.
The C++ API is a set of C++ classes generated by the ASN.1 Compiler and depending on the input ASN.1 abstract syntax (a C++ class is generated for each ASN.1 type).
The TCE ASN.1 runtime is fully re-entrant in order to run on multithreaded system.
The ASN.1 Compiler takes in input an ASN.1 description, performs syntax and semantic checks and produces, if needed, the corresponding error messages. It generates C++ classes, associated with the ASN.1 types, and an information table that the runtime will use to encode/decode data. The ASN.1 Compiler supports the latest ASN.1 standards.
Based on the input ASN.1 description, the ASN.1 Compiler can also generate an XML schema (XSD) that conforms to XER (XML Encoding Rules) together with default XML Style sheet (XSL). Used in conjunction with the ASNSDK TCE-C++ XER runtime, these features enable you to:
The ASN.1 Runtime provides encoding/decoding services as well as constraints check and traces services. The user application has access to the C++ BER, DER, PER, XER and CXER encoding/decoding services through the C++ API generated by the ASN.1 Compiler. The ASN.1 Runtime also offers customization mechanism for the adaptation and the porting of the application in various environments.
The C++ API is user-friendly. To each type of the input ASN.1 description corresponds a C++ class. An ASN.1 value is an instance of a C++ class. To encode or decode a value, the PER, BER, DER, XER and CXER encoding or decoding method has simply to be called. The TCE runtime reduces the complexity of your application programs by being able to automatically encode or decode open type values.
The TCE-C++ ASN.1 Runtime is highly customizable, to enable users to port and tune the runtime to various platforms. All customization entry points are located in the same include file. They fully cover basic types and memory management definitions.
The default customization delivered with the runtime can be used without any changes on most of Unix/Linux platforms.
Once you have developed your application code above the C++ API generated by the ASN.1 Compiler, your application shall be C++ compiled and then linked with the encoding/decoding runtime library to build up your final executable file.
TCE-C++ ASN.1 Compiler:
TCE-C++ ASN.1 runtime: