Каждая порция данных в SOP обрамляется в виде пакета со специальным заголовком в начале. Данный заголовок содержит размер содержательной части пакета в байтах и специальное контрольное поле.
Размер содержательной части используется для управления чтением пакета из коммуникационного канала. Т.е. сначала считывается заголовок пакета, который имеет заранее определенный размер. Затем считывается столько байт, сколько указано в заголовке пакета. После чего пакет считается полностью прочитанным.
Контрольное поле используется для проверки того, что читается действительно SOP пакет подходящей версии.
Открытые типы | |
enum | { e_image_size } |
typedef unsigned int | uint32_t |
32-битовое беззнаковое целое. | |
Открытые члены | |
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 и длину содержательной части пакета. | |
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 |
Записать заголовок пакета в указанный поток. | |
std::string | debug_string_representation () 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. Подробнее... |
anonymous enum |
so_4::sop::package_header_t::package_header_t | ( | const magic_number_t & | value | ) |
Конструктор, который позволяет установить только значение magic_number.
Перекрестные ссылки calc_check_field().
so_4::sop::package_header_t::package_header_t | ( | uint32_t | package_size | ) | [explicit] |
Конструктор, который позволяет установить только длину содержательной части пакета.
package_size | Размер содержательной части пакета в байтах. |
Перекрестные ссылки set_size().
so_4::sop::package_header_t::package_header_t | ( | const magic_number_t & | value, | |
uint32_t | package_size | |||
) |
Конструктор, который позволяет установить значение magic_number и длину содержательной части пакета.
value | Значение magic_number. |
package_size | Размер содержательной части пакета в байтах. |
Перекрестные ссылки set_size().
bool so_4::sop::package_header_t::is_valid | ( | ) | const |
Проверка корректности заголовка пакета.
Перекрестные ссылки m_check_field, m_magic_number и m_size.
void so_4::sop::package_header_t::set_size | ( | uint32_t | package_size | ) |
Установить длину содержательной части пакета.
package_size | Размер в байтах. |
Перекрестные ссылки calc_check_field() и m_size.
Используется в package_header_t().
void so_4::sop::package_header_t::read | ( | oess_1::io::ibinstream_t & | from | ) |
Прочитать заголовок пакета из указанного потока.
from | Чтение осуществляется с текущей позиции. |
Перекрестные ссылки m_check_field и m_size.
Используется в so_4::sop::operator>>().
void so_4::sop::package_header_t::write | ( | oess_1::io::obinstream_t & | to | ) | const |
Записать заголовок пакета в указанный поток.
to | Запись осуществляется в текущую позицию. |
Перекрестные ссылки m_check_field и m_size.
Используется в so_4::rt::comm::sop_with_transformation_data_processor_t::append_outgoing_data(), so_4::rt::comm::simple_sop_data_processor_t::append_outgoing_data(), so_4::sop::operator<<() и so_4::rt::comm::zlib_transformator_t::out_transform().
std::string so_4::sop::package_header_t::debug_string_representation | ( | ) | const |
Создание отладочного представления.
Перекрестные ссылки m_check_field, m_magic_number и m_size.
Документация по SObjectizer v.4.4 'Тебуломста'. Последние изменения: Thu Sep 18 10:26:50 2008. Создано системой 1.5.6 |