QXmlRPC 1.1
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