Re[5]: асинхронная сериализация
От: niXman Ниоткуда https://github.com/niXman
Дата: 27.12.13 20:45
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Собственно это то, как оно будет реализовано на нижнем уровне — скидываем один буфер, в хэндлере async_write — запись следующего и так далее.

EP>Вопрос в том, как это сделать в удобном виде, а не в рукопашку раскладывать сериализацию каждой структуры на хэндлеры-continutaions.
как вариант — написать обертку над yas::*_oarchive:
struct my_oarchive {
   template<typename T>
   my_oarchive& operator& (const T &o) {
      yas::*_oarchive::operator& (o);
      yield();
      return *this;
   }
};


EP>Меня же интересует — существуют ли какие-нибудь другие удобные способы?

мне такие не известны. если найдешь — расскажи плиз.

EP>Нет, изменение дерева не происходит.

так если у тебя неизменяемый объект — то что мешает таки реализовать свой ostream класс, и в нем, когда его внутренний буфер достигает предельного размера — отсылать собранные данные, и снова заполнять буфер следующими данными?
чтоб не было бауз в использовании сети — завести два буфера: первый отдаешь на отправку, второй — для сериализации в него. в хендлере отправки данных переключаешь буфера — второй на отправку, а первый для сериализации.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.