metadata_and_c++
Подскажите пожалуйста, есть ли какие-либо библиотеки, которые осуществляют serialize/deserialize объектов, извлекают метаданные из классов. Программирую под Unix. Почитал об RTTI, но везде пишут только про приведение типов.
Есть хорошая реализация в boost.
Все равно в классах придеться определять методы сериализации, но весь механизм работы довольно удобный и универсальный.
Можно посмотреть в boost/serialization
Там же есть документация или в онлайне http://www.boost.org/libs/serialization/doc/index.html
В документации приводятся ссылки еще на некоторые библиотеки для сериализации, которые были изученны в процессе работы а так же рассмотренны их достоинства и недостатки.
Например:
http://www.gnu.org/software/commoncpp/
и
http://www.s11n.net/
Так же наткнулся сейчас на библиотеку http://sourceforge.net/projects/eternity-it/, раньше не видел и что там и как не знаю.
Это те у которых нет привязки к конкретной платформе и используется (не знаю насчет всех но в boost точно) только стандарт языка.
Использовать наверное легче всего опять же boost, потому что он уже почти стандарт.
Thanks, сейчас погляжу линки. У меня сейчас определены интерфейсы, и я для каждого объекта сам произвожу сериализацию. Просто хотелось бы средство, в котором имелось бы два средства - serialize и deserialize. Ну или на последний случай - самому извлекать все названия полей объекта (во время выполнения) и производить сериализацию. Пошел смотреть линки. :-)
Кстати, (вопрос вот по тем линкам, которые ты дал), имеются ли там средства для сериализации объектов не на постоянные запоминающие устройства, а для сериализации в память(ОЗУ). Просто мне нужно, чтобы объект сериализовался и отправлялся немедленно.
В принципе сериализуемые данные в boost можно писать в определенный stream. Вполне можно реализовать свою версию, отнаследоваться от стандартных потоков и переопрделить операции записи на свои.