Version 4.2

The ASN.1 compiler now supports combining the -exeri and -code options and generates a code file for encoding and decoding Extended XER (E-XER) data using the Time-Optimized (TOED) runtime.

The TOED runtime now supports the Extended XER encoding rules. You must use version 4.2 or later of the ASN.1 compiler and specify -exer and -code on the compiler command line in order to generate the code file to use E-XER with TOED.

The ASN.1 compiler has been changed to automatically select the -ignoreIncompleteItems option if the
-relaxedMode option is specified.

A new runtime function, asn1_describe_error_code(), provides useful debugging information. It displays full textual descriptions corresponding to the numeric codes returned by any runtime OSS/C++ API function. It works with error codes set by ASN.1/C++ constructors as well.

Version 4.1

OSS ASN.1 Tools for C++ version 4.1 supports the full range of time types as specified in ISO 8601 (TIME, DATE, TIME-OF-DAY, DATE-TIME, DURATION). These representations of date and time were standardized to avoid misinterpretations when communicating across national boundaries. A new class, OssTime, supports these new types, while new utility classes OssTimePoint, OssDuration, and OssTimeInterval, allow you to easily split the time values into their components. Support for time types is available in the Space-Optimized Encoder/Decoder (SOED).

New classes for compression support, OssCompressor and OssZlibCompressor, allow you to compact data with the ready-to-use zlib compression algorithm or with your own custom compression methods. Improve storage and transmission by further compacting your already efficient ASN.1 binary and text encodings.

The –relaySafe option is now supported for XER and E-XER in the TOED (Time Optimized Encoder/Decoder) and LED (Lean Encoder Decoder) Runtimes of the OSS ASN.1 Tools for C++ . When –relaySafe is specified, the decoder will not discard unrecognized extension additions encountered, but instead will preserve them for later re-encoding.

A new OSS-specific directive, OSS.ExtensibleUseType, can be applied locally or globally to selected extensible CHOICE types being encoded in E-XER. The new directive instructs the E-XER decoder to handle unknown alternatives of an extensible CHOICE type as unknown extensions, so that the complete XML or binary encoding of the unknown type is preserved when –relaySafe is in effect.

A new OSS-specific directive, OSS.ExerNumericBoolean, can be applied locally or globally to BOOLEAN types causing the E-XER encoder to produce numeric BOOLEAN values (0 and 1) instead of textual values (true/false or their replacements as set using the TEXT encoding instruction).

Version 4.0.2

A new compiler option, -ignoreIncompleteItems, instructs the compiler to ignore incomplete ASN.1 definitions that appear within ASN.1 modules and directly or indirectly reference undefined types or values. This allows you to successfully utilize specs that have unresolved references that don’t affect your application.

A new OSS-specific directive, OSS.SelfCompleteWildcard, can be applied globally or locally to types that contain an “ANY-ELEMENT XER” encoding instruction. This directive will mark the associated type as a self-complete entity whose content will be taken as a complete XML document that can be passed to another application or function. This new directive is supported in the LED and SOED runtimes, with TOED support coming soon.

When the -relaySafe compiler option is present, the compiler now generates methods, for every extensible SEQUENCE, SET, or CHOICE type, which allow manipulation of unknown extension information in the encoding.

New methods, ossSetXMLEncodingRules() / getXMLEncodingRules(), allow you to specify the XML encoding rules (Basic XER, Canonical XER or Extended XER) to be used by the ossXML2Binary() and ossBinary2XML() methods for performing direct conversions from XML to binary and vice versa.

New API methods, enableSkipPadBytes() / disableSkipPadBytes(), allow you to skip “padding” bytes when decoding.

New methods, getCompatibilityFlags() / setCompatibilityFlags() allow you to direct the encoder and decoder to emulate specific backward compatibility behaviors via various flags.

The TOED XER and LED XER/E-XER encoders have been optimized for the encoding of REAL values. Encoding of character REAL values (when the exponential form is not used) is up to 20% faster than the previous version.

Version 4.0.1

25% Faster - TOED PER/UPER encoding, now up to 25% faster for the following ASN.1 types:

  • BIT STRING
  • OCTET STRING
  • ENUMERATED
  • INTEGER (with a value range greater than 64K)

The ASN.1/C++ Runtime now includes support for "memory pools", which allow the user to:

  • decrease the number of calls to the system 'malloc' and 'free' functions when encoding and decoding,
  • reuse allocated dynamic memory blocks when the encoder and decoder are being run in a loop,
  • significantly speed up the freeing of complex representation objects.
On some platforms that have relatively heavy malloc/free usage, the use of "memory pools" can result in a significant speedup of encoder/decoder, copying, freeing and other runtime operations.

Version 4.0

E-XER (Extended XML Encoding Rules) is now supported in the OSS ASN.1 Tools for C++. Now you can have the full capabilities of XML with ASN.1.

ASN.1/C++ now supports the Time Optimized Encoder Decoder (TOED) library for the BER, CER, DER, PER, UPER, XER and CXER encoding rules. The TOED runtime emphasizes minimal CPU utilization (it is the fastest of our runtime libraries).

A new compiler option, -namespace, provides namespace support. All the compiler-generated classes are placed in a C++ namespace. This avoids potential clashes of the compiler-generated class names with other class names used in the application.

A new compiler option, -restrictedContraintChecking, allows runtime constraint checking to be applied selectively (for individually selected types).

The ASN.1/C++ compiler now supports the contents constraints subtype in the SOED (Space Optimized Encoder Decoder) and LED (Lean Encoder Decoder) runtimes.

A new compiler option, -relaxMode, has been added so that you can control whether relaxed checking is performed. Relaxed checking will eliminate the generation of warning messages, and some insignificant error messages, by the compiler. Additionally, a runtime flag, STRICT_ENCODING_DECODING_RULES, has been added to enable strict checking of encodings.

New APIs allow users to set various debugging levels to control the amount of debug data that is generated at runtime while encoding or decoding. The PrintHex() method of the OSSControl class has been enhanced to display the hex data and its ASCII equivalent.

The LED Runtime has been enhanced to produce more descriptive (SOED-like) error messages.

A new utility API, the ASN.1/C++ XML time/date API, allows easy conversion of date/time types between the numeric format and text formats which conform to XSD builtin types.

Version 3.1

The OSS ASN.1 Tools for C++ version 3.1 now gives more support for XML. The OSS ASN.1 Tools for C++ runtime API now has new methods:

  1. printXML() allows printing of the XML-encoded buffer (with either XER or CXER encoding) to the console. The function is able to reformat the input XML buffer to print a tree-like document (one way in which this is useful is for displaying CXER encodings that have no white space between XML tags).
  2. binary2XML() and XML2Binary() allow the conversion of any of the ASN.1 binary encodings (BER, PER, UPER, CER, DER) to XML (Basic-XER) and vice versa.
The Lean encoder/decoder (LED) now supports XER. So, you now when you want XER, you have the choice to use either the LED runtime or the SOED runtime.

Version 3.0

The OSS ASN.1 Tools for C++ version 3.0 supports the XML additions to ASN.1 described in the ASN.1:2002 standards documents. The tool includes the following functionality:

The ASN.1 compiler supports the XML value notation that provides a means of representing ASN.1 values using eXtensible Markup Language (XML) with the ASN.1 type definition as the schema. The XML value notation may be present within the same input ASN.1 file as other ASN.1 components.

The space-optimized encoder/decoder has been enhanced to allow you to encode/decode any PDU in the input using the XML encoding rules (XER). You can now add visibility to your ASN.1-described messages via XML.

New compiler command-line options are now available, -xer and -cxer. These options are similar to the -ber/-der/-per/uper options in that they allow the associated set of encoding rules (namely, the XML encoding rules (XER) and the canonical XML encoding rules (CXER)) to be available to the encoder/decoder during runtime.

A new ASN.1 compiler command-line option called "-xsl" has been added to allow you to automatically generate multiple default stylesheets, one for each PDU. Stylesheets allow you to have greater control over the visual aesthetic quality of an XML encoding.

A new compiler directive OSS.Stylesheet has been introduced to allow you greater control over the default stylesheets which are produced by the ASN.1 compiler. Using this directive, you can instruct the ASN.1 compiler to generate a separate stylesheet with your own desired filename for any particular PDU.

A new ASN.1 compiler command line option called "-dtd" has been added to generate XML DTDs (Data Type Definitions)-one for each PDU. This allows you to view and edit XER output of the pdu.encode() in an ASN.1 independent tool, which only recognizes XML.

The new compiler directive OSS.DTD lets you instruct the ASN.1 compiler to generate a DTD with your own desired filename for any particular PDU.

To learn more about the OSS ASN.1 Tools for C++, contact our Sales department at info@oss.com ,
Toll Free +1-888-OSSASN1 (USA & Canada), +1-732-302-0750

 


 

Copyright © 2008 OSS Nokalva, Inc.   All Rights Reserved.