annotate json/json-forwards.h @ 49:178642d134a7 tip

xtra files
author Robert Tubb <rt300@eecs.qmul.ac.uk>
date Wed, 01 May 2013 17:34:33 +0100
parents 346807b47860
children
rev   line source
rt300@9 1 /// Json-cpp amalgated forward header (http://jsoncpp.sourceforge.net/).
rt300@9 2 /// It is intented to be used with #include <json/json-forwards.h>
rt300@9 3 /// This header provides forward declaration for all JsonCpp types.
rt300@9 4
rt300@9 5 // //////////////////////////////////////////////////////////////////////
rt300@9 6 // Beginning of content of file: LICENSE
rt300@9 7 // //////////////////////////////////////////////////////////////////////
rt300@9 8
rt300@9 9 /*
rt300@9 10 The JsonCpp library's source code, including accompanying documentation,
rt300@9 11 tests and demonstration applications, are licensed under the following
rt300@9 12 conditions...
rt300@9 13
rt300@9 14 The author (Baptiste Lepilleur) explicitly disclaims copyright in all
rt300@9 15 jurisdictions which recognize such a disclaimer. In such jurisdictions,
rt300@9 16 this software is released into the Public Domain.
rt300@9 17
rt300@9 18 In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
rt300@9 19 2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
rt300@9 20 released under the terms of the MIT License (see below).
rt300@9 21
rt300@9 22 In jurisdictions which recognize Public Domain property, the user of this
rt300@9 23 software may choose to accept it either as 1) Public Domain, 2) under the
rt300@9 24 conditions of the MIT License (see below), or 3) under the terms of dual
rt300@9 25 Public Domain/MIT License conditions described here, as they choose.
rt300@9 26
rt300@9 27 The MIT License is about as close to Public Domain as a license can get, and is
rt300@9 28 described in clear, concise terms at:
rt300@9 29
rt300@9 30 http://en.wikipedia.org/wiki/MIT_License
rt300@9 31
rt300@9 32 The full text of the MIT License follows:
rt300@9 33
rt300@9 34 ========================================================================
rt300@9 35 Copyright (c) 2007-2010 Baptiste Lepilleur
rt300@9 36
rt300@9 37 Permission is hereby granted, free of charge, to any person
rt300@9 38 obtaining a copy of this software and associated documentation
rt300@9 39 files (the "Software"), to deal in the Software without
rt300@9 40 restriction, including without limitation the rights to use, copy,
rt300@9 41 modify, merge, publish, distribute, sublicense, and/or sell copies
rt300@9 42 of the Software, and to permit persons to whom the Software is
rt300@9 43 furnished to do so, subject to the following conditions:
rt300@9 44
rt300@9 45 The above copyright notice and this permission notice shall be
rt300@9 46 included in all copies or substantial portions of the Software.
rt300@9 47
rt300@9 48 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
rt300@9 49 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
rt300@9 50 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
rt300@9 51 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
rt300@9 52 BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
rt300@9 53 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
rt300@9 54 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
rt300@9 55 SOFTWARE.
rt300@9 56 ========================================================================
rt300@9 57 (END LICENSE TEXT)
rt300@9 58
rt300@9 59 The MIT license is compatible with both the GPL and commercial
rt300@9 60 software, affording one all of the rights of Public Domain with the
rt300@9 61 minor nuisance of being required to keep the above copyright notice
rt300@9 62 and license text in the source code. Note also that by accepting the
rt300@9 63 Public Domain "license" you can re-license your copy using whatever
rt300@9 64 license you like.
rt300@9 65
rt300@9 66 */
rt300@9 67
rt300@9 68 // //////////////////////////////////////////////////////////////////////
rt300@9 69 // End of content of file: LICENSE
rt300@9 70 // //////////////////////////////////////////////////////////////////////
rt300@9 71
rt300@9 72
rt300@9 73
rt300@9 74
rt300@9 75
rt300@9 76 #ifndef JSON_FORWARD_AMALGATED_H_INCLUDED
rt300@9 77 # define JSON_FORWARD_AMALGATED_H_INCLUDED
rt300@9 78 /// If defined, indicates that the source file is amalgated
rt300@9 79 /// to prevent private header inclusion.
rt300@9 80 #define JSON_IS_AMALGATED
rt300@9 81
rt300@9 82 // //////////////////////////////////////////////////////////////////////
rt300@9 83 // Beginning of content of file: include/json/config.h
rt300@9 84 // //////////////////////////////////////////////////////////////////////
rt300@9 85
rt300@9 86 // Copyright 2007-2010 Baptiste Lepilleur
rt300@9 87 // Distributed under MIT license, or public domain if desired and
rt300@9 88 // recognized in your jurisdiction.
rt300@9 89 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
rt300@9 90
rt300@9 91 #ifndef JSON_CONFIG_H_INCLUDED
rt300@9 92 # define JSON_CONFIG_H_INCLUDED
rt300@9 93
rt300@9 94 /// If defined, indicates that json library is embedded in CppTL library.
rt300@9 95 //# define JSON_IN_CPPTL 1
rt300@9 96
rt300@9 97 /// If defined, indicates that json may leverage CppTL library
rt300@9 98 //# define JSON_USE_CPPTL 1
rt300@9 99 /// If defined, indicates that cpptl vector based map should be used instead of std::map
rt300@9 100 /// as Value container.
rt300@9 101 //# define JSON_USE_CPPTL_SMALLMAP 1
rt300@9 102 /// If defined, indicates that Json specific container should be used
rt300@9 103 /// (hash table & simple deque container with customizable allocator).
rt300@9 104 /// THIS FEATURE IS STILL EXPERIMENTAL! There is know bugs: See #3177332
rt300@9 105 //# define JSON_VALUE_USE_INTERNAL_MAP 1
rt300@9 106 /// Force usage of standard new/malloc based allocator instead of memory pool based allocator.
rt300@9 107 /// The memory pools allocator used optimization (initializing Value and ValueInternalLink
rt300@9 108 /// as if it was a POD) that may cause some validation tool to report errors.
rt300@9 109 /// Only has effects if JSON_VALUE_USE_INTERNAL_MAP is defined.
rt300@9 110 //# define JSON_USE_SIMPLE_INTERNAL_ALLOCATOR 1
rt300@9 111
rt300@9 112 /// If defined, indicates that Json use exception to report invalid type manipulation
rt300@9 113 /// instead of C assert macro.
rt300@9 114 # define JSON_USE_EXCEPTION 1
rt300@9 115
rt300@9 116 /// If defined, indicates that the source file is amalgated
rt300@9 117 /// to prevent private header inclusion.
rt300@9 118 /// Remarks: it is automatically defined in the generated amalgated header.
rt300@9 119 // #define JSON_IS_AMALGAMATION
rt300@9 120
rt300@9 121
rt300@9 122 # ifdef JSON_IN_CPPTL
rt300@9 123 # include <cpptl/config.h>
rt300@9 124 # ifndef JSON_USE_CPPTL
rt300@9 125 # define JSON_USE_CPPTL 1
rt300@9 126 # endif
rt300@9 127 # endif
rt300@9 128
rt300@9 129 # ifdef JSON_IN_CPPTL
rt300@9 130 # define JSON_API CPPTL_API
rt300@9 131 # elif defined(JSON_DLL_BUILD)
rt300@9 132 # define JSON_API __declspec(dllexport)
rt300@9 133 # elif defined(JSON_DLL)
rt300@9 134 # define JSON_API __declspec(dllimport)
rt300@9 135 # else
rt300@9 136 # define JSON_API
rt300@9 137 # endif
rt300@9 138
rt300@9 139 // If JSON_NO_INT64 is defined, then Json only support C++ "int" type for integer
rt300@9 140 // Storages, and 64 bits integer support is disabled.
rt300@9 141 // #define JSON_NO_INT64 1
rt300@9 142
rt300@9 143 #if defined(_MSC_VER) && _MSC_VER <= 1200 // MSVC 6
rt300@9 144 // Microsoft Visual Studio 6 only support conversion from __int64 to double
rt300@9 145 // (no conversion from unsigned __int64).
rt300@9 146 #define JSON_USE_INT64_DOUBLE_CONVERSION 1
rt300@9 147 #endif // if defined(_MSC_VER) && _MSC_VER < 1200 // MSVC 6
rt300@9 148
rt300@9 149 #if defined(_MSC_VER) && _MSC_VER >= 1500 // MSVC 2008
rt300@9 150 /// Indicates that the following function is deprecated.
rt300@9 151 # define JSONCPP_DEPRECATED(message) __declspec(deprecated(message))
rt300@9 152 #endif
rt300@9 153
rt300@9 154 #if !defined(JSONCPP_DEPRECATED)
rt300@9 155 # define JSONCPP_DEPRECATED(message)
rt300@9 156 #endif // if !defined(JSONCPP_DEPRECATED)
rt300@9 157
rt300@9 158 namespace Json {
rt300@9 159 typedef int Int;
rt300@9 160 typedef unsigned int UInt;
rt300@9 161 # if defined(JSON_NO_INT64)
rt300@9 162 typedef int LargestInt;
rt300@9 163 typedef unsigned int LargestUInt;
rt300@9 164 # undef JSON_HAS_INT64
rt300@9 165 # else // if defined(JSON_NO_INT64)
rt300@9 166 // For Microsoft Visual use specific types as long long is not supported
rt300@9 167 # if defined(_MSC_VER) // Microsoft Visual Studio
rt300@9 168 typedef __int64 Int64;
rt300@9 169 typedef unsigned __int64 UInt64;
rt300@9 170 # else // if defined(_MSC_VER) // Other platforms, use long long
rt300@9 171 typedef long long int Int64;
rt300@9 172 typedef unsigned long long int UInt64;
rt300@9 173 # endif // if defined(_MSC_VER)
rt300@9 174 typedef Int64 LargestInt;
rt300@9 175 typedef UInt64 LargestUInt;
rt300@9 176 # define JSON_HAS_INT64
rt300@9 177 # endif // if defined(JSON_NO_INT64)
rt300@9 178 } // end namespace Json
rt300@9 179
rt300@9 180
rt300@9 181 #endif // JSON_CONFIG_H_INCLUDED
rt300@9 182
rt300@9 183 // //////////////////////////////////////////////////////////////////////
rt300@9 184 // End of content of file: include/json/config.h
rt300@9 185 // //////////////////////////////////////////////////////////////////////
rt300@9 186
rt300@9 187
rt300@9 188
rt300@9 189
rt300@9 190
rt300@9 191
rt300@9 192 // //////////////////////////////////////////////////////////////////////
rt300@9 193 // Beginning of content of file: include/json/forwards.h
rt300@9 194 // //////////////////////////////////////////////////////////////////////
rt300@9 195
rt300@9 196 // Copyright 2007-2010 Baptiste Lepilleur
rt300@9 197 // Distributed under MIT license, or public domain if desired and
rt300@9 198 // recognized in your jurisdiction.
rt300@9 199 // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
rt300@9 200
rt300@9 201 #ifndef JSON_FORWARDS_H_INCLUDED
rt300@9 202 # define JSON_FORWARDS_H_INCLUDED
rt300@9 203
rt300@9 204 #if !defined(JSON_IS_AMALGAMATION)
rt300@9 205 # include "config.h"
rt300@9 206 #endif // if !defined(JSON_IS_AMALGAMATION)
rt300@9 207
rt300@9 208 namespace Json {
rt300@9 209
rt300@9 210 // writer.h
rt300@9 211 class FastWriter;
rt300@9 212 class StyledWriter;
rt300@9 213
rt300@9 214 // reader.h
rt300@9 215 class Reader;
rt300@9 216
rt300@9 217 // features.h
rt300@9 218 class Features;
rt300@9 219
rt300@9 220 // value.h
rt300@9 221 typedef unsigned int ArrayIndex;
rt300@9 222 class StaticString;
rt300@9 223 class Path;
rt300@9 224 class PathArgument;
rt300@9 225 class Value;
rt300@9 226 class ValueIteratorBase;
rt300@9 227 class ValueIterator;
rt300@9 228 class ValueConstIterator;
rt300@9 229 #ifdef JSON_VALUE_USE_INTERNAL_MAP
rt300@9 230 class ValueMapAllocator;
rt300@9 231 class ValueInternalLink;
rt300@9 232 class ValueInternalArray;
rt300@9 233 class ValueInternalMap;
rt300@9 234 #endif // #ifdef JSON_VALUE_USE_INTERNAL_MAP
rt300@9 235
rt300@9 236 } // namespace Json
rt300@9 237
rt300@9 238
rt300@9 239 #endif // JSON_FORWARDS_H_INCLUDED
rt300@9 240
rt300@9 241 // //////////////////////////////////////////////////////////////////////
rt300@9 242 // End of content of file: include/json/forwards.h
rt300@9 243 // //////////////////////////////////////////////////////////////////////
rt300@9 244
rt300@9 245
rt300@9 246
rt300@9 247
rt300@9 248
rt300@9 249 #endif //ifndef JSON_FORWARD_AMALGATED_H_INCLUDED