Помогите, срочно нужна помощь в написании библиотеки сериализации и десериализации объектов для C++, аналогично тому, что есть в C# или Java.
Сериализоваться объекты будут в несколько форматов, включая XML.
18.10.07 11:44: Перенесено из 'Декларативное программирование'
Здравствуйте, SpiritOfNIKOPOL, Вы писали:
SON>очень надо..
Через полчаса проект заказчику сдавать? Boost чем не подходит? Там же есть ссылки на альтернативные реализации.
А если во чтобы то ни стало реализовывать ручками — требования хотя бы опиши, и допустимый уровень ограничений...
Здравствуйте, DrDred, Вы писали: DD>Здравствуйте, SpiritOfNIKOPOL, Вы писали: DD>Через полчаса проект заказчику сдавать?
нет не через пол часа , и это я не по заказу а так сказать вроде моего курсрового меня, зам декана дал задание..
требования узнаю тогда напишу немного позже.. я потихоньку уже разбираюсь что-есть что, но написать её пока не знаю как, вот нужна ваша помошь.
Здравствуйте, SpiritOfNIKOPOL, Вы писали:
SON>Помогите, срочно нужна помощь в написании библиотеки сериализации и десериализации объектов для C++, аналогично тому, что есть в C# или Java. SON>Сериализоваться объекты будут в несколько форматов, включая XML.
Видимо, сначала надо понять, как происходит сериализация в джаве или шарпе..
> Через полчаса проект заказчику сдавать? > Boost чем не подходит?
Вот кстати boost::serialization рекомендовать можно только с большой оглядкой Потому что она
1) не thread-safe
2) не дружит с dll
3) трекинг в ней реализован так, что возможно лучше бы его вообще не было...
Часть проблем решается "доработкой напильником", но для этого придется разбираться, как она устроена внутри.
Впрочем, для курсовика потянет.
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
DZ>Видимо, сначала надо понять, как происходит сериализация в джаве или шарпе..
Там Reflection есть, что позволяет сделать default-ную сериализацию для объектов. А в С++ его нет, поэтому поддержку сериализации надо закладывать самому при проектировании иерархии классов. И возможность использвания каких-либо библиотек для сериализации очень сильно зависит от конкретной задачи и проектируемой иерархии.
> S>Вот кстати boost::serialization рекомендовать можно только с большой оглядкой Потому что она > S>1) не thread-safe > > Это как? Одновременно загружать один и тот же объект из двух архивов?
Нет, там есть небезопасные синглтоны. Если какой-то тип впервые сериализуется одновременно из 2 разных потоков, на многопроцессорной машине оно реально может упасть.
Еще у них для xml-архивов спирит используется — для потокобезопасности которого надо определять макрос BOOST_SPIRIT_THREADSAFE, о чем в документации ни слова. Ну а если этот макрос определить, будут проблемы (при желании решаемые) со сборкой библиотеки. Впрочем, это фигня, поскольку в xml-парсере имеется рекурсивное правило, что на реальных данных иногда приводит к переполнению стека. Так что их xml-парсер я просто переписал без спирита
В общем, в серьезных проектах эту либу применять можно только после конкретной доработки напильником.
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, DrDred, Вы писали: DD>А если во чтобы то ни стало реализовывать ручками — требования хотя бы опиши, и допустимый уровень ограничений...
А что такое "допустимый уровень ограничений"?