Re[5]: сериализация std::queue
От: NKZ  
Дата: 20.07.07 10:01
Оценка:
Здравствуйте, k732, Вы писали:

K>1. Зачем реализацию выносить в отдельный файл


В принципе не обязательно, я просто переделал исходные бустовские файлы, а у них разнесено по разным файлам (правда там обобщенная имплементация save/load collection)

K>2. Меня смущает временный контейнер в методе save_queue. Ведь семантика queue подразумевает уничтожение объекта при доступе к нему. Полезно ли это или все-таки при сериализации нужно разрушать прочитанные данные ?


В общем случае void save_queue(Archive & ar, const Container &s) тоже самое что и void save_collection(Archive & ar, const Container &s) в бусте, подразумевается, что при сериализации контейнер не модифицируется.

А так все зависит от твоих требований к очереди, например
1. При остановке обработки ты должен сериализовать очередь, а при старте прочитать и обработать. В этом случае можно(но не обязательно), разрушать очередь.
2. Либо серилизовать данные в процессе обработки, например отсылать их для другим модулям для нотификации об изменений данных, тогда не надо разрушать.
3. что-нить еще
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.