Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 8825-3-2016 Информационная технология (ИТ). Правила кодирования АСН.1. Часть 3. Спецификация нотации контроля кодирования (ECN)

     9.2 Классы кодирования

9.2.1 Класс кодирования - это неявный признак всех типов АСН.1, который представляет набор всех возможных спецификаций кодирования для конкретного типа. Он дает ссылку, которая позволяет модулям определения кодирования определять правила кодирования для полей структуры кодирования, соответствующие этому типу. Имена классов кодирования начинаются со знака "#".


Пример - Правила кодирования для предопределенного типа АСН.1 INTEGER определяются путем ссылки на класс кодирования #INTEGER, а правила кодирования для определенного пользователем типа "Му-Туре" определяются путем ссылки на класс кодирования #Му-Туре.

9.2.2 Имеются несколько семейств классов кодирования.

9.2.2.1 Предопределенные классы кодирования

Имеются предопределенные классы кодирования, например, с именами #INTEGER и #BOOLEAN. Они позволяют определять конкретные кодирования для простейших типов АСН.1. Имеются также предопределенные классы кодирования для кодирования конструкций, таких как #SEQUENCE, #SEQUENCE-OF и #CHOICE (см. также 9.3.2), а также для определения правил кодирования при обработке факультативных возможностей с помощью #OPTIONAL. Кодирование тегов поддерживается классом #TAG. Наконец, имеются некоторые предопределенные классы (#OUTER, #TRANSFORM и другие), которые позволяют определять процедуры кодирования, составляющие часть процесса кодирования-декодирования, но не относящиеся прямо к какому-либо конкретному битовому полю или к конструкции АСН.1.

9.2.2.2 Классы кодирования для неявно генерируемых структур кодирования

Они имеют имена, содержащие знак "#", за которым следует "typereference", появившаяся в "TypeAssignment" в модуле АСН.1. Такие классы кодирования неявно генерируют каждый раз, когда "typereference" (непараметризованная) присваивается в модуле АСН.1, и могут импортироваться в модуль определения кодирования, чтобы позволить определение конкретных кодовых последовательностей для соответствующего типа АСН.1. Эти классы кодирования представляют структуру кодирования АСН.1 и формируются из предопределенных классов кодирования, отражая структуру определения типа АСН.1.

9.2.2.3 Классы кодирования для определенных пользователей структур кодирования

Эти классы кодирования определяются пользователем ECN путем указания структуры кодирования (см. 9.3) в виде некоторой структуры, объединяющей битовые поля и конструкторы кодирования. Эти структуры кодирования аналогичны неявно генерируемым структурам кодирования, но пользователь ECN полностью контролирует их структуру. Эти классы позволяют определять комплексные правила кодирования и важны для использования АСН.1 с ECN при спецификации традиционных протоколов, в которых требуются дополнительные битовые поля для кодирования определителей.

9.2.2.4 Классы кодирования для явно генерируемых структур кодирования

Эти классы кодирования образуются из неявно генерируемых структур кодирования путем выборочного изменения имен определяемых классов, чтобы указать места, в которых нужны специализированные кодовые последовательности для факультативных возможностей ("опций"), окончаний "последовательностей-из" и т.п.