QJson home page
/builddir/build/BUILD/qjson-0.8.1/src/serializer.h
00001 /* This file is part of qjson
00002   *
00003   * Copyright (C) 2009 Till Adam <adam@kde.org>
00004   *
00005   * This library is free software; you can redistribute it and/or
00006   * modify it under the terms of the GNU Lesser General Public
00007   * License version 2.1, as published by the Free Software Foundation.
00008   * 
00009   *
00010   * This library is distributed in the hope that it will be useful,
00011   * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013   * Lesser General Public License for more details.
00014   *
00015   * You should have received a copy of the GNU Lesser General Public License
00016   * along with this library; see the file COPYING.LIB.  If not, write to
00017   * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018   * Boston, MA 02110-1301, USA.
00019   */
00020 
00021 #ifndef QJSON_SERIALIZER_H
00022 #define QJSON_SERIALIZER_H
00023 
00024 #include "qjson_export.h"
00025 
00026 class QIODevice;
00027 class QString;
00028 class QVariant;
00029 
00030 namespace QJson {
00062   enum IndentMode {
00063     IndentNone,
00064     IndentCompact,
00065     IndentMinimum,
00066     IndentMedium,
00067     IndentFull
00068   };
00110   class QJSON_EXPORT Serializer {
00111   public:
00112     Serializer();
00113     ~Serializer();
00114 
00123     void serialize( const QVariant& variant, QIODevice* out, bool* ok);
00124 
00136     QByteArray serialize( const QVariant& variant);
00137 
00148     QByteArray serialize( const QVariant& variant, bool *ok);
00149 
00153     void allowSpecialNumbers(bool allow);
00154 
00158     bool specialNumbersAllowed() const;
00159 
00163     void setIndentMode(IndentMode mode = QJson::IndentNone);
00164 
00165 
00170     void setDoublePrecision(int precision);
00171 
00175     IndentMode indentMode() const;
00176 
00180     QString errorMessage() const;
00181 
00182   private:
00183     Q_DISABLE_COPY(Serializer)
00184     class SerializerPrivate;
00185     SerializerPrivate* const d;
00186   };
00187 }
00188 
00189 #endif // QJSON_SERIALIZER_H

SourceForge Logo hosts this site. Send comments to:
QJson Developers