From 7950e05b381308a3beb3c6d1538de6af047e5c0c Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Sun, 11 Jan 2015 01:03:07 +0100 Subject: Refactored conversion routines used in the Typesystem class and the Variant class into an own class, implemented missing conversion from string to integer/double, implemented proper JSON serialization of variants --- src/core/common/VariantWriter.hpp | 57 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/core/common/VariantWriter.hpp (limited to 'src/core/common/VariantWriter.hpp') diff --git a/src/core/common/VariantWriter.hpp b/src/core/common/VariantWriter.hpp new file mode 100644 index 0000000..211da34 --- /dev/null +++ b/src/core/common/VariantWriter.hpp @@ -0,0 +1,57 @@ +/* + Ousía + Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file VariantWriter.hpp + * + * Contains the VariantWriter class which provides serialization functions for + * Variant types. + * + * @author Andreas Stöckel (astoecke@techfak.uni-bielefeld.de) + */ + +#ifndef _OUSIA_VARIANT_WRITER_HPP_ +#define _OUSIA_VARIANT_WRITER_HPP_ + +#include + +namespace ousia { + +// Forward declaration +class Variant; + +/** + * Class which provides serialization functions for writing variants to an + * output stream in various formats. + */ +class VariantWriter { +public: + /** + * Dumps the Variant as JSON data. + * + * @param var is the variant that should be serialized. + * @param stream is the stream the result should be written to. + * @param pretty if true, the resulting value is properly indented. + */ + static void writeJson(const Variant &var, std::ostream &stream, + bool pretty = true); +}; +} + +#endif /* _OUSIA_VARIANT_WRITER_HPP_ */ + -- cgit v1.2.3