00001
00002
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 }
00076 #endif // XMLRPC_VARIANT_H
00077