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