LINUX.ORG.RU

На sf появилась первая версия Persistence


0

0

Эта маленькая библиотека позволяет сохранять объекты в DOM дерево и правильно поднимать их оттуда. ex. shared_ptr<Streamable> s = Streamable::load( QDomElement ) if( dynamic_pointer_cast<MyCoolType>( s ) ) dynamic_pointer_cast<MyCoolType>( s )->virtualFunction();

Кто пользовался ранними Borland C++ - вспомнит :-)

PS. Простой (да и не простой) чат делается на раз :) На одной стороне сохраняете объект - сообщение, на другой поднимаете и говорите "печатайся". И ядро больше не трогаете :-) XMLStream брал с psi, ломал для получения серверного варианта... Но пока не дам... больно криво написано...

>>> Подробности

anonymous

Проверено: green

Я ей пользуюсь - удобно. Основана на Qt.

anonymous
()

Narod. A vot kakije alternativy suchestvujut QDOM ? Dopustim ja hochu chtoto tipa QDomNode::getChildNodeByName(...) v qt3.1 etogo net i pishut chto ne budet.

V libxml2 toze netu, a linejnyj poisk delatj ne hochetsja.

anonymous
()
Ответ на: комментарий от anonymous

Ну сделай функцию... А без линейного поиска всё равно не обойтись... Оно у них там на списках всё... И реализация QT считается одной из лучших. Только не помню, где прочитал. Но что было - точно :-)

Кстати, что понимается под словом "name" эт о атрибут? Если да, то никак :-) а если по тегу надо - то эт пожалста - QDomDocument::elementsByTagName()

P.S. А на эту хрень глянь - мы с другом мутили...

adarovsky ★★★★
()

у меня есть простая (200 строк наверное) над bsd db библиотечка
которая сохраняет объекты в последовательности
разные последовательности по разным типам
+ возможность делать дерево (ссылка на родителя)
проход по ней итеративный
сама она синглетон
если надо пришлю

yeolahim
()

Дык у меня примерно то же самое делается...

Берётся инстанция и сохраняется в файл или отправляется по сети. Первая версия либы работала на QDataStream, но в двоичном виде проблемы с просмотром отправленного, и к тому же конфиг не сделаешь...

А сейчас часто получается так: берётся объект из конфига (команда) и отправляется по сети. На той стороне исполняется, и т.д.

adarovsky ★★★★
()
Ответ на: комментарий от adarovsky

у меня немного не так
у меня автоматический подъем из базы
интерфейс итератора:
ставишь на первый или последний объект типа X c родителем или без
и покатил последовательно выбирать
можно присабачить к аллокатору но поведение будет немного не такое
как у стандартныго аллокатора

yeolahim
()

Да... я выложил на fsme.sf.net редактор конечных автоматов... Он эту штуку использует. Графика хранится в таких вот объектах...

Мне показалось не очень удобным писать дерево, потому что из одного файла можно поднимать объекты, совершенно не связанные между собой. А главное - что их пожно гнать по сети. Это в другом проекте используется, но пока он сыроват, так что я замну эту тему :-)

adarovsky ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.