Back to home page

EIC code displayed by LXR

 
 

    


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