Re: Ещё один подход к сериализации на С++
От: Аноним  
Дата: 08.07.06 12:14
Оценка:
Здравствуйте, Сабельников Андрей Николаевич, Вы писали:

САН>Статья:

САН>Ещё один подход к сериализации на С++
Автор(ы): Сабельников Андрей Николаевич
Дата: 23.05.2006
“Вопросы сохранения данных из объектов, так или иначе, возникают у каждого разработчика”. Именно с этой фразы я начал первую статью посвещённую сериализации, и с этой фразы мне бы хотелось продолжить описание идеи использования карт для организации сериализации.
Если вы пишете на С++, то ваша программа скорее всего состоит из объектов классов, которые в своей совокупности образуют некую систему данных и кода, работающего с этими данныим. И практически всегда вы хотите в какой-то момент сохранить в том или ином виде эти данные – будь то результат многолетних вычислений программы или просто текущее состояние каких-то компонентов системы. А потом снова загрузить эти данные назад, в вашу программу, как будто бы и ничего не происходило. Или искажем отправить эти данные по сети, другой программе. И при этом, очень нехочетатся трартить много времени на программирование сохранения/загрузки, упаковку стрктур в каки-то изобретённые сегодня утром форматы, отладку всего этого, модификацию в связи с появлением в структурах данных новых полей, документирование, и прочую головную боль.
Подход, описаный ниже, я надеюсь, поможет многим сэкономить время и облегчить жизнь.


САН>Авторы:

САН> Сабельников Андрей Николаевич

САН>Аннотация:

САН>Если вы пишете на С++, то ваша программа скорее всего состоит из объектов классов, которые в своей совокупности образуют некую систему данных и кода, работающего с этими данныим. И практически всегда вы хотите в какой-то момент сохранить в том или ином виде эти данные — будь то результат многолетних вычислений программы или просто текущее состояние каких-то компонентов системы. А потом снова загрузить эти данные назад, в вашу программу, как будто бы и ничего не происходило. Или искажем отправить эти данные по сети, другой программе. И при этом, очень нехочется тратить много времени на программирование сохранения/загрузки, упаковку структур в какие-то изобретённые сегодня утром форматы, отладку всего этого, модификацию в связи с появлением в структурах данных новых полей, документирование, и прочую головную боль.
САН>Подход, описаный ниже, я надеюсь, поможет многим сэкономить время и облегчить жизнь.




А чем boost::serialize не подошёл?


Каюсь, сам был грешен, использовал собственный велосипед под названием BrokerStorage — использование типа :

MyBrokerStorage <<SomeObject1 ;
MyBrokerStorage <<SomeObject2 ;
MyBrokerStorage >> SomeFormat;

В boost то же универсальное описание сериализации для всех классов, но нет промежуточного хранилища.
Делаете простенький переходничёк в свой формат, можете оптимизировать с учётом специфики.

Или я чего не понял?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.