1 // Copyright 2007-2010 Baptiste Lepilleur 2 // Distributed under MIT license, or public domain if desired and 3 // recognized in your jurisdiction. 4 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 5 6 #ifndef CPPTL_JSON_FEATURES_H_INCLUDED 7 # define CPPTL_JSON_FEATURES_H_INCLUDED 8 9 #if !defined(JSON_IS_AMALGAMATION) 10 # include "forwards.h" 11 #endif // if !defined(JSON_IS_AMALGAMATION) 12 13 namespace Json { 14 15 /** \brief Configuration passed to reader and writer. 16 * This configuration object can be used to force the Reader or Writer 17 * to behave in a standard conforming way. 18 */ 19 class JSON_API Features 20 { 21 public: 22 /** \brief A configuration that allows all features and assumes all strings are UTF-8. 23 * - C & C++ comments are allowed 24 * - Root object can be any JSON value 25 * - Assumes Value strings are encoded in UTF-8 26 */ 27 static Features all(); 28 29 /** \brief A configuration that is strictly compatible with the JSON specification. 30 * - Comments are forbidden. 31 * - Root object must be either an array or an object value. 32 * - Assumes Value strings are encoded in UTF-8 33 */ 34 static Features strictMode(); 35 36 /** \brief Initialize the configuration like JsonConfig::allFeatures; 37 */ 38 Features(); 39 40 /// \c true if comments are allowed. Default: \c true. 41 bool allowComments_; 42 43 /// \c true if root must be either an array or an object value. Default: \c false. 44 bool strictRoot_; 45 }; 46 47 } // namespace Json 48 49 #endif // CPPTL_JSON_FEATURES_H_INCLUDED 50