xmlrpc/variant.h

    00001 // vim:tabstop=4:shiftwidth=4:expandtab:cinoptions=(s,U1,m1
    00002 // Copyright (C) 2005 Dmitry Poplavsky <dima@thekompany.com>
    00003
    00004 #ifndef XMLRPC_VARIANT_H
    00005 #define XMLRPC_VARIANT_H
    00006
    00007 #include <QtCore>
    00008 #include <QtXml>
    00009
    00010 namespace  xmlrpc {
    00011
    00024 class Variant : public QVariant {
    00025 public:
    00026     Variant();
    00027     Variant( const Variant& );
    00028     Variant( const QDomElement& );
    00029
    00032     Variant ( uint val );
    00033     Variant ( int val );
    00034     Variant ( bool val );
    00035     Variant ( double val );
    00036     Variant ( const QByteArray & val );
    00037     Variant ( const QString & val );
    00038     Variant ( const QStringList & val );
    00039     Variant ( const QDateTime & val );
    00040     Variant ( const QList<Variant> & val );
    00041     Variant ( const QMap<QString, Variant> & val );
    00042
    00044     Variant ( const QChar & c );
    00045
    00046     virtual ~Variant();
    00047
    00049     QDomElement toDomElement( QDomDocument& ) const;
    00050
    00051     QString pprint();
    00052
    00053 private:
    00054     static QString   encodeDateTimeIso8601(QDateTime);
    00055     static QDateTime decodeDateTimeIso8601(QString, bool *ok=0);
    00056
    00058     static Variant decodeStruct( const QDomElement& node );
    00059
    00061     static Variant decodeArray( const QDomElement& node );
    00062
    00069     Variant( const QVariant& );
    00070
    00071     QString pprint( int column );
    00072 };
    00073
    00074
    00075 } // namespace
    00076 #endif // XMLRPC_VARIANT_H
    00077