Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Десерелизация обектов


Автор: a1ien 23.4.2011, 00:32
Нужно распарсить http://en.wikipedia.org/wiki/Action_Message_Format.
С форматом проблем нету все понятно, но встает проблема как сохранять данные.
Щас использую вот такой класс для этого

Код

class AMFData
{
public:
    AMFData & operator[]( const QString & idx ) {
        return map[ idx ];
    }
    AMFData & operator=( const  QVariant& v ) {
        value = v;
        return *this;
    }
    QVariant val() {
        return value;
    }

    static int Type()
    {
        return qRegisterMetaType<AMFData>("AMFData");
    }

    typedef QMap< QString, AMFData > Map;
    Map map;
private:

    QVariant value;
};
Q_DECLARE_METATYPE(AMFData)



Тут есть небольшие проблемы описаны http://forum.vingrad.ru/forum/topic-326110.html
Вот щас думаю, а не выход ли сделать класс в котором будет храниться мапа(QMap, или STL'ный аналог)
В котором будет имя переменной из AMF данных и ссылка на переменную в этом Мапе, тоесть в конструкторе нашего класса будет что-то типа.
mao.insert("name",(void*)&this->name);
mao.insert("varblabla",(void*)&this->varblabla);
И потом делаем функцию которая принимает имя переменной из AMF данный и сохраняет их в нужную переменную в классе.

А как бы вы реализовали дисереализацию Обектов из этого формата?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)