привет!
название чудное получилось...
дано: некоторый составной тип, который сериализуется в byte-массив. каждый такой byte-массив кладется в очередь для последующей отправки.
проблема: допустим, в очередь положили несколько типов состоящих из двух int32. очередь не успела отправить все получившиеся byte-массивы, а мы добавляет в составной тип еще один int32. и тут начинается веселье, ибо в очереди оказываются два разных типа, которые требуют разной обработки на стороне получателя.
вопрос в том, как идентифицировать эти byte-массивы, точнее то, из чего они получаются?
составные типы могут содержать не только фундаментальные типы.
интерфейс к очереди у меня такой:
struct queue {
void push(yas::shared_buffer buf); // https://github.com/niXman/yas/blob/master/include/yas/buffers.hpp#L67
void pop();
bool empty() const;
yas::shared_buffer front();
};
т.е.
queue ничего не знает о типах.
идей у меня две, и обе незаконченные:
1. сделать
queue шаблонным, и далее как-то использовать параметр
2. в сериализуемый тип добавить метаинформацию
выскажитесь, пожалуйста, по сабжу.
спасибо!
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)