|
|
|||
File indexing completed on 2025-12-16 09:27:28
0001 /// Json-cpp amalgamated forward header (http://jsoncpp.sourceforge.net/). 0002 /// It is intended to be used with #include "json/json-forwards.h" 0003 /// This header provides forward declaration for all JsonCpp types. 0004 0005 // ////////////////////////////////////////////////////////////////////// 0006 // Beginning of content of file: LICENSE 0007 // ////////////////////////////////////////////////////////////////////// 0008 0009 /* 0010 The JsonCpp library's source code, including accompanying documentation, 0011 tests and demonstration applications, are licensed under the following 0012 conditions... 0013 0014 Baptiste Lepilleur and The JsonCpp Authors explicitly disclaim copyright in all 0015 jurisdictions which recognize such a disclaimer. In such jurisdictions, 0016 this software is released into the Public Domain. 0017 0018 In jurisdictions which do not recognize Public Domain property (e.g. Germany as of 0019 2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur and 0020 The JsonCpp Authors, and is released under the terms of the MIT License (see below). 0021 0022 In jurisdictions which recognize Public Domain property, the user of this 0023 software may choose to accept it either as 1) Public Domain, 2) under the 0024 conditions of the MIT License (see below), or 3) under the terms of dual 0025 Public Domain/MIT License conditions described here, as they choose. 0026 0027 The MIT License is about as close to Public Domain as a license can get, and is 0028 described in clear, concise terms at: 0029 0030 http://en.wikipedia.org/wiki/MIT_License 0031 0032 The full text of the MIT License follows: 0033 0034 ======================================================================== 0035 Copyright (c) 2007-2010 Baptiste Lepilleur and The JsonCpp Authors 0036 0037 Permission is hereby granted, free of charge, to any person 0038 obtaining a copy of this software and associated documentation 0039 files (the "Software"), to deal in the Software without 0040 restriction, including without limitation the rights to use, copy, 0041 modify, merge, publish, distribute, sublicense, and/or sell copies 0042 of the Software, and to permit persons to whom the Software is 0043 furnished to do so, subject to the following conditions: 0044 0045 The above copyright notice and this permission notice shall be 0046 included in all copies or substantial portions of the Software. 0047 0048 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 0049 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 0050 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 0051 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 0052 BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 0053 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 0054 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 0055 SOFTWARE. 0056 ======================================================================== 0057 (END LICENSE TEXT) 0058 0059 The MIT license is compatible with both the GPL and commercial 0060 software, affording one all of the rights of Public Domain with the 0061 minor nuisance of being required to keep the above copyright notice 0062 and license text in the source code. Note also that by accepting the 0063 Public Domain "license" you can re-license your copy using whatever 0064 license you like. 0065 0066 */ 0067 0068 // ////////////////////////////////////////////////////////////////////// 0069 // End of content of file: LICENSE 0070 // ////////////////////////////////////////////////////////////////////// 0071 0072 0073 0074 0075 0076 #ifndef JSON_FORWARD_AMALGAMATED_H_INCLUDED 0077 # define JSON_FORWARD_AMALGAMATED_H_INCLUDED 0078 /// If defined, indicates that the source file is amalgamated 0079 /// to prevent private header inclusion. 0080 #define JSON_IS_AMALGAMATION 0081 0082 // ////////////////////////////////////////////////////////////////////// 0083 // Beginning of content of file: include/json/config.h 0084 // ////////////////////////////////////////////////////////////////////// 0085 0086 // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors 0087 // Distributed under MIT license, or public domain if desired and 0088 // recognized in your jurisdiction. 0089 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 0090 0091 #ifndef JSON_CONFIG_H_INCLUDED 0092 #define JSON_CONFIG_H_INCLUDED 0093 #include <stddef.h> 0094 #include <string> //typedef String 0095 #include <stdint.h> //typedef int64_t, uint64_t 0096 0097 /// If defined, indicates that json library is embedded in CppTL library. 0098 //# define JSON_IN_CPPTL 1 0099 0100 /// If defined, indicates that json may leverage CppTL library 0101 //# define JSON_USE_CPPTL 1 0102 /// If defined, indicates that cpptl vector based map should be used instead of 0103 /// std::map 0104 /// as Value container. 0105 //# define JSON_USE_CPPTL_SMALLMAP 1 0106 0107 // If non-zero, the library uses exceptions to report bad input instead of C 0108 // assertion macros. The default is to use exceptions. 0109 #ifndef JSON_USE_EXCEPTION 0110 #define JSON_USE_EXCEPTION 1 0111 #endif 0112 0113 /// If defined, indicates that the source file is amalgamated 0114 /// to prevent private header inclusion. 0115 /// Remarks: it is automatically defined in the generated amalgamated header. 0116 // #define JSON_IS_AMALGAMATION 0117 0118 #ifdef JSON_IN_CPPTL 0119 #include <cpptl/config.h> 0120 #ifndef JSON_USE_CPPTL 0121 #define JSON_USE_CPPTL 1 0122 #endif 0123 #endif 0124 0125 #ifdef JSON_IN_CPPTL 0126 #define JSON_API CPPTL_API 0127 #elif defined(JSON_DLL_BUILD) 0128 #if defined(_MSC_VER) || defined(__MINGW32__) 0129 #define JSON_API __declspec(dllexport) 0130 #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING 0131 #endif // if defined(_MSC_VER) 0132 #elif defined(JSON_DLL) 0133 #if defined(_MSC_VER) || defined(__MINGW32__) 0134 #define JSON_API __declspec(dllimport) 0135 #define JSONCPP_DISABLE_DLL_INTERFACE_WARNING 0136 #endif // if defined(_MSC_VER) 0137 #endif // ifdef JSON_IN_CPPTL 0138 #if !defined(JSON_API) 0139 #define JSON_API 0140 #endif 0141 0142 // If JSON_NO_INT64 is defined, then Json only support C++ "int" type for 0143 // integer 0144 // Storages, and 64 bits integer support is disabled. 0145 // #define JSON_NO_INT64 1 0146 0147 #if defined(_MSC_VER) // MSVC 0148 # if _MSC_VER <= 1200 // MSVC 6 0149 // Microsoft Visual Studio 6 only support conversion from __int64 to double 0150 // (no conversion from unsigned __int64). 0151 # define JSON_USE_INT64_DOUBLE_CONVERSION 1 0152 // Disable warning 4786 for VS6 caused by STL (identifier was truncated to '255' 0153 // characters in the debug information) 0154 // All projects I've ever seen with VS6 were using this globally (not bothering 0155 // with pragma push/pop). 0156 # pragma warning(disable : 4786) 0157 # endif // MSVC 6 0158 0159 # if _MSC_VER >= 1500 // MSVC 2008 0160 /// Indicates that the following function is deprecated. 0161 # define JSONCPP_DEPRECATED(message) __declspec(deprecated(message)) 0162 # endif 0163 0164 #endif // defined(_MSC_VER) 0165 0166 // In c++11 the override keyword allows you to explicitly define that a function 0167 // is intended to override the base-class version. This makes the code more 0168 // manageable and fixes a set of common hard-to-find bugs. 0169 #if __cplusplus >= 201103L 0170 # define JSONCPP_OVERRIDE override 0171 # define JSONCPP_NOEXCEPT noexcept 0172 # define JSONCPP_OP_EXPLICIT explicit 0173 #elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900 0174 # define JSONCPP_OVERRIDE override 0175 # define JSONCPP_NOEXCEPT throw() 0176 # if _MSC_VER >= 1800 // MSVC 2013 0177 # define JSONCPP_OP_EXPLICIT explicit 0178 # else 0179 # define JSONCPP_OP_EXPLICIT 0180 # endif 0181 #elif defined(_MSC_VER) && _MSC_VER >= 1900 0182 # define JSONCPP_OVERRIDE override 0183 # define JSONCPP_NOEXCEPT noexcept 0184 # define JSONCPP_OP_EXPLICIT explicit 0185 #else 0186 # define JSONCPP_OVERRIDE 0187 # define JSONCPP_NOEXCEPT throw() 0188 # define JSONCPP_OP_EXPLICIT 0189 #endif 0190 0191 #ifndef JSON_HAS_RVALUE_REFERENCES 0192 0193 #if defined(_MSC_VER) && _MSC_VER >= 1600 // MSVC >= 2010 0194 #define JSON_HAS_RVALUE_REFERENCES 1 0195 #endif // MSVC >= 2010 0196 0197 #ifdef __clang__ 0198 #if __has_feature(cxx_rvalue_references) 0199 #define JSON_HAS_RVALUE_REFERENCES 1 0200 #endif // has_feature 0201 0202 #elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) 0203 #if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L) 0204 #define JSON_HAS_RVALUE_REFERENCES 1 0205 #endif // GXX_EXPERIMENTAL 0206 0207 #endif // __clang__ || __GNUC__ 0208 0209 #endif // not defined JSON_HAS_RVALUE_REFERENCES 0210 0211 #ifndef JSON_HAS_RVALUE_REFERENCES 0212 #define JSON_HAS_RVALUE_REFERENCES 0 0213 #endif 0214 0215 #ifdef __clang__ 0216 # if __has_extension(attribute_deprecated_with_message) 0217 # define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) 0218 # endif 0219 #elif defined __GNUC__ // not clang (gcc comes later since clang emulates gcc) 0220 # if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) 0221 # define JSONCPP_DEPRECATED(message) __attribute__ ((deprecated(message))) 0222 # elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) 0223 # define JSONCPP_DEPRECATED(message) __attribute__((__deprecated__)) 0224 # endif // GNUC version 0225 #endif // __clang__ || __GNUC__ 0226 0227 #if !defined(JSONCPP_DEPRECATED) 0228 #define JSONCPP_DEPRECATED(message) 0229 #endif // if !defined(JSONCPP_DEPRECATED) 0230 0231 #if __GNUC__ >= 6 0232 # define JSON_USE_INT64_DOUBLE_CONVERSION 1 0233 #endif 0234 0235 #if !defined(JSON_IS_AMALGAMATION) 0236 0237 # include "version.h" 0238 0239 # if JSONCPP_USING_SECURE_MEMORY 0240 # include "allocator.h" //typedef Allocator 0241 # endif 0242 0243 #endif // if !defined(JSON_IS_AMALGAMATION) 0244 0245 namespace Json { 0246 typedef int Int; 0247 typedef unsigned int UInt; 0248 #if defined(JSON_NO_INT64) 0249 typedef int LargestInt; 0250 typedef unsigned int LargestUInt; 0251 #undef JSON_HAS_INT64 0252 #else // if defined(JSON_NO_INT64) 0253 // For Microsoft Visual use specific types as long long is not supported 0254 #if defined(_MSC_VER) // Microsoft Visual Studio 0255 typedef __int64 Int64; 0256 typedef unsigned __int64 UInt64; 0257 #else // if defined(_MSC_VER) // Other platforms, use long long 0258 typedef int64_t Int64; 0259 typedef uint64_t UInt64; 0260 #endif // if defined(_MSC_VER) 0261 typedef Int64 LargestInt; 0262 typedef UInt64 LargestUInt; 0263 #define JSON_HAS_INT64 0264 #endif // if defined(JSON_NO_INT64) 0265 #if JSONCPP_USING_SECURE_MEMORY 0266 #define JSONCPP_STRING std::basic_string<char, std::char_traits<char>, Json::SecureAllocator<char> > 0267 #define JSONCPP_OSTRINGSTREAM std::basic_ostringstream<char, std::char_traits<char>, Json::SecureAllocator<char> > 0268 #define JSONCPP_OSTREAM std::basic_ostream<char, std::char_traits<char>> 0269 #define JSONCPP_ISTRINGSTREAM std::basic_istringstream<char, std::char_traits<char>, Json::SecureAllocator<char> > 0270 #define JSONCPP_ISTREAM std::istream 0271 #else 0272 #define JSONCPP_STRING std::string 0273 #define JSONCPP_OSTRINGSTREAM std::ostringstream 0274 #define JSONCPP_OSTREAM std::ostream 0275 #define JSONCPP_ISTRINGSTREAM std::istringstream 0276 #define JSONCPP_ISTREAM std::istream 0277 #endif // if JSONCPP_USING_SECURE_MEMORY 0278 } // end namespace Json 0279 0280 #endif // JSON_CONFIG_H_INCLUDED 0281 0282 // ////////////////////////////////////////////////////////////////////// 0283 // End of content of file: include/json/config.h 0284 // ////////////////////////////////////////////////////////////////////// 0285 0286 0287 0288 0289 0290 0291 // ////////////////////////////////////////////////////////////////////// 0292 // Beginning of content of file: include/json/forwards.h 0293 // ////////////////////////////////////////////////////////////////////// 0294 0295 // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors 0296 // Distributed under MIT license, or public domain if desired and 0297 // recognized in your jurisdiction. 0298 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 0299 0300 #ifndef JSON_FORWARDS_H_INCLUDED 0301 #define JSON_FORWARDS_H_INCLUDED 0302 0303 #if !defined(JSON_IS_AMALGAMATION) 0304 #include "config.h" 0305 #endif // if !defined(JSON_IS_AMALGAMATION) 0306 0307 namespace Json { 0308 0309 // writer.h 0310 class FastWriter; 0311 class StyledWriter; 0312 0313 // reader.h 0314 class Reader; 0315 0316 // features.h 0317 class Features; 0318 0319 // value.h 0320 typedef unsigned int ArrayIndex; 0321 class StaticString; 0322 class Path; 0323 class PathArgument; 0324 class Value; 0325 class ValueIteratorBase; 0326 class ValueIterator; 0327 class ValueConstIterator; 0328 0329 } // namespace Json 0330 0331 #endif // JSON_FORWARDS_H_INCLUDED 0332 0333 // ////////////////////////////////////////////////////////////////////// 0334 // End of content of file: include/json/forwards.h 0335 // ////////////////////////////////////////////////////////////////////// 0336 0337 0338 0339 0340 0341 #endif //ifndef JSON_FORWARD_AMALGAMATED_H_INCLUDED
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|