Information Object Set

NOTE: Information Object Set code generation is only done when the -tables option is selected.

This additional code is generated to support the processing required to verify table constraints which is intended for use only in compiler-generated code. Therefore, it is not necessary for the average user to understand the mappings in order to use the product. The information presented here is informative only to provide a better understanding of how the compiler handles table constraints.

Information Object code will be generated in a C# source file with a special class to hold the values. The name of the source file and class is of the following format:

   _<ModuleName>Values.cs

In this definition, <ModuleName> would be replaced with the name of the ASN.1 module in which the Information Object Sets are defined.

Each Information Object Set specification causes a C# constant to be generated containing an array of Information Object values. Each object in the array is an instance of the equivalent C# class representing the corresponding ASN.1 information object

As of this writing, a static array is used to hold the objects, but this could be changed to something like a linked list or hash.

ASN.1 definition:

   <name> <ClassName> ::= { <Information Object1> | <Information Object2> }

Generated C# constants:

   public static readonly <ClassName> <name> =
      new <ClassName> {<Information Object1>, <Information Object1> };

For example, consider the following Information Object Set declaration for above ATTRIBUTE definition:

   SupportedAttributes ATTRIBUTE ::= { name | commonName }

This would result in the following C# constant being generated:

   public static readonly ATTRIBUTE[] SupportedAttributes =
new ATTRIBUTE[] {
_TestValues.name,
_TestValues.commonName
};