Аутсорсинг «сетевой порядок байтов» обработка?

Я использую целый ряд [Filter] модули, которые «обрабатывают данные» и в конце записывают эти данные на разные устройства.

[Filter] -> [Filter] -> [Writer]

Конфигурация зависит от времени выполнения. Проблема в общем [Filter] на самом деле не знает, что это может быть конец цепочки и куда записываются данные.

Немного [Filter]s производит вывод в буферах протокола Google, [Writer] может быть запись в файл. Но в тех случаях, когда структурированные данные создаются и должны передаваться по сети … вот так:

#pragma pack(push,1)
struct data_s {
char a;
int i;
int j;
char str[64];
};
#pragma pack(pop)
data_t d;
//...
d.i = htonl( d.i);
d.j = htonl( d.j);
this->write( d );

В этом случае … есть ли способ сделать это ни в каждом [фильтре], ни в [писателе] … писатель видит только кусок памяти и ничего не структурированный. Есть ли способ сделать

[Filter] -> [Filter] -> [hton_struct] -> [Writer]

Аутсорсинг структурированного сетевого перевода байтов. Существует ли удобный и многократно используемый способ передачи фрагмента памяти с описанием перевода в сетевой порядок байтов? Так что не нужно реализовывать это в [Filter] но компонент, который используется только в том случае, если применяются указанные выше предварительные условия?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector