Каждая порция данных в 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 и длину содержательной части пакета.
|
|
Проверка корректности заголовка пакета.
|
|
Прочитать заголовок пакета из указанного потока.
|
|
Установить длину содержательной части пакета.
|
|
Записать заголовок пакета в указанный поток.
|