Каждая порция данных в SOP обрамляется в виде пакета со специальным заголовком в начале. Данный заголовок содержит размер содержательной части пакета в байтах и специальное контрольное поле.
Размер содержательной части используется для управления чтением пакета из коммуникационного канала. Т.е. сначала считывается заголовок пакета, который имеет заранее определенный размер. Затем считывается столько байт, сколько указано в заголовке пакета. После чего пакет считается полностью прочитанным.
Контрольное поле используется для проверки того, что читается действительно SOP пакет подходящей версии.
Открытые типы | |
| typedef unsigned int | uint32_t |
| 32-битовое беззнаковое целое. | |
| enum | { e_image_size } |
Открытые члены | |
| package_header_t (const magic_number_t &value) | |
| magic_number. | |
| package_header_t (uint32_t package_size) | |
| содержательной части пакета. | |
| package_header_t (const magic_number_t &value, uint32_t package_size) | |
| magic_number и длину содержательной части пакета. | |
| package_header_t (const package_header_t &o) | |
| Конструктор копирования. | |
| package_header_t & | operator= (const package_header_t &o) |
| Оператор копирования. | |
| bool | is_valid () const |
| Проверка корректности заголовка пакета. | |
| uint32_t | size () const |
| Длина содержательной части пакета в байтах. | |
| void | set_size (uint32_t package_size) |
| Установить длину содержательной части пакета. | |
| void | read (oess_1::io::ibinstream_t &from) |
| Прочитать заголовок пакета из указанного потока. | |
| void | write (oess_1::io::obinstream_t &to) const |
| Записать заголовок пакета в указанный поток. | |
Закрытые члены | |
| void | calc_check_field () |
| Пересчитать значение контрольного поля. | |
Закрытые данные | |
| uint32_t | m_magic_number |
| Значение magic_number. | |
| uint32_t | m_size |
| Размер содержательной части пакета в байтах. | |
| uint32_t | m_check_field |
| Контрольное поле. | |
Классы | |
| struct | magic_number_t |
| Хранитель значения для специфического magic_number. Подробнее... | |
|
|
|
|
|
magic_number.
|
|
|
содержательной части пакета.
|
|
||||||||||||
|
magic_number и длину содержательной части пакета.
|
|
|
Проверка корректности заголовка пакета.
|
|
|
Прочитать заголовок пакета из указанного потока.
|
|
|
Установить длину содержательной части пакета.
|
|
|
Записать заголовок пакета в указанный поток.
|
1.4.6-NO