mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2025-04-19 23:50:38 +02:00
Compare commits
3 Commits
master
...
svn-releas
Author | SHA1 | Date | |
---|---|---|---|
![]() |
1e9892addb | ||
![]() |
c2eabf0cf8 | ||
![]() |
3269eefd84 |
4
NEWS.txt
4
NEWS.txt
@ -13,6 +13,10 @@
|
|||||||
Notes: you need to setup the environment by running vcvars32.bat
|
Notes: you need to setup the environment by running vcvars32.bat
|
||||||
(e.g. MSVC 2008 command prompt in start menu) before running scons.
|
(e.g. MSVC 2008 command prompt in start menu) before running scons.
|
||||||
|
|
||||||
|
- Added support for amalgated source and header generation (a la sqlite).
|
||||||
|
Refer to README.txt section "Generating amalgated source and header"
|
||||||
|
for detail.
|
||||||
|
|
||||||
* Value
|
* Value
|
||||||
|
|
||||||
- Removed experimental ValueAllocator, it caused static
|
- Removed experimental ValueAllocator, it caused static
|
||||||
|
37
README.txt
37
README.txt
@ -5,8 +5,8 @@ JSON (JavaScript Object Notation) is a lightweight data-interchange format.
|
|||||||
It can represent integer, real number, string, an ordered sequence of
|
It can represent integer, real number, string, an ordered sequence of
|
||||||
value, and a collection of name/value pairs.
|
value, and a collection of name/value pairs.
|
||||||
|
|
||||||
JsonCpp is a simple API to manipulate JSON value, handle serialization
|
JsonCpp (http://jsoncpp.sourceforge.net/) is a simple API to manipulate
|
||||||
and unserialization to string.
|
JSON value, handle serialization and unserialization to string.
|
||||||
|
|
||||||
It can also preserve existing comment in unserialization/serialization steps,
|
It can also preserve existing comment in unserialization/serialization steps,
|
||||||
making it a convenient format to store user input files.
|
making it a convenient format to store user input files.
|
||||||
@ -90,6 +90,39 @@ Notes that the documentation is also available for download as a tarball.
|
|||||||
The documentation of the latest release is available online at:
|
The documentation of the latest release is available online at:
|
||||||
http://jsoncpp.sourceforge.net/
|
http://jsoncpp.sourceforge.net/
|
||||||
|
|
||||||
|
* Generating amalgated source and header
|
||||||
|
======================================
|
||||||
|
|
||||||
|
JsonCpp is provided with a script to generate a single header and a single
|
||||||
|
source file to ease inclusion in an existing project.
|
||||||
|
|
||||||
|
The amalgated source can be generated at any time by running the following
|
||||||
|
command from the top-directory (requires python 2.6):
|
||||||
|
|
||||||
|
python amalgate.py
|
||||||
|
|
||||||
|
It is possible to specify header name. See -h options for detail. By default,
|
||||||
|
the following files are generated:
|
||||||
|
- dist/jsoncpp.cpp: source file that need to be added to your project
|
||||||
|
- dist/json/json.h: header file corresponding to use in your project. It is
|
||||||
|
equivalent to including json/json.h in non-amalgated source. This header
|
||||||
|
only depends on standard headers.
|
||||||
|
- dist/json/json-forwards.h: header the provides forward declaration
|
||||||
|
of all JsonCpp types. This typically what should be included in headers to
|
||||||
|
speed-up compilation.
|
||||||
|
|
||||||
|
The amalgated sources are generated by concatenating JsonCpp source in the
|
||||||
|
correct order and defining macro JSON_IS_AMALGATED to prevent inclusion of
|
||||||
|
other headers.
|
||||||
|
|
||||||
|
* Using json-cpp in your project:
|
||||||
|
===============================
|
||||||
|
|
||||||
|
include/ should be added to your compiler include path. jsoncpp headers
|
||||||
|
should be included as follow:
|
||||||
|
|
||||||
|
#include <json/json.h>
|
||||||
|
|
||||||
|
|
||||||
* Adding a reader/writer test:
|
* Adding a reader/writer test:
|
||||||
============================
|
============================
|
||||||
|
147
amalgate.py
Normal file
147
amalgate.py
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
"""Amalgate json-cpp library sources into a single source and header file.
|
||||||
|
|
||||||
|
Requires Python 2.6
|
||||||
|
|
||||||
|
Example of invocation (must be invoked from json-cpp top directory):
|
||||||
|
python amalgate.py
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
|
||||||
|
class AmalagatedFile:
|
||||||
|
def __init__( self, top_dir ):
|
||||||
|
self.top_dir = top_dir
|
||||||
|
self.blocks = []
|
||||||
|
|
||||||
|
def add_text( self, text ):
|
||||||
|
if not text.endswith( '\n' ):
|
||||||
|
text += '\n'
|
||||||
|
self.blocks.append( text )
|
||||||
|
|
||||||
|
def add_file( self, relative_input_path, wrap_in_comment=False ):
|
||||||
|
def add_marker( prefix ):
|
||||||
|
self.add_text( '' )
|
||||||
|
self.add_text( '// ' + '/'*70 )
|
||||||
|
self.add_text( '// %s of content of file: %s' % (prefix, relative_input_path.replace('\\','/')) )
|
||||||
|
self.add_text( '// ' + '/'*70 )
|
||||||
|
self.add_text( '' )
|
||||||
|
add_marker( 'Beginning' )
|
||||||
|
f = open( os.path.join( self.top_dir, relative_input_path ), 'rt' )
|
||||||
|
content = f.read()
|
||||||
|
if wrap_in_comment:
|
||||||
|
content = '/*\n' + content + '\n*/'
|
||||||
|
self.add_text( content )
|
||||||
|
f.close()
|
||||||
|
add_marker( 'End' )
|
||||||
|
self.add_text( '\n\n\n\n' )
|
||||||
|
|
||||||
|
def get_value( self ):
|
||||||
|
return ''.join( self.blocks ).replace('\r\n','\n')
|
||||||
|
|
||||||
|
def write_to( self, output_path ):
|
||||||
|
output_dir = os.path.dirname( output_path )
|
||||||
|
if output_dir and not os.path.isdir( output_dir ):
|
||||||
|
os.makedirs( output_dir )
|
||||||
|
f = open( output_path, 'wb' )
|
||||||
|
f.write( self.get_value() )
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
def amalgate_source( source_top_dir=None,
|
||||||
|
target_source_path=None,
|
||||||
|
header_include_path=None ):
|
||||||
|
"""Produces amalgated source.
|
||||||
|
Parameters:
|
||||||
|
source_top_dir: top-directory
|
||||||
|
target_source_path: output .cpp path
|
||||||
|
header_include_path: generated header path relative to target_source_path.
|
||||||
|
"""
|
||||||
|
print 'Amalgating header...'
|
||||||
|
header = AmalagatedFile( source_top_dir )
|
||||||
|
header.add_text( '/// Json-cpp amalgated header (http://jsoncpp.sourceforge.net/).' )
|
||||||
|
header.add_text( '/// It is intented to be used with #include <%s>' % header_include_path )
|
||||||
|
header.add_file( 'LICENSE', wrap_in_comment=True )
|
||||||
|
header.add_text( '#ifndef JSON_AMALGATED_H_INCLUDED' )
|
||||||
|
header.add_text( '# define JSON_AMALGATED_H_INCLUDED' )
|
||||||
|
header.add_text( '/// If defined, indicates that the source file is amalgated' )
|
||||||
|
header.add_text( '/// to prevent private header inclusion.' )
|
||||||
|
header.add_text( '#define JSON_IS_AMALGATED' )
|
||||||
|
header.add_file( 'include/json/config.h' )
|
||||||
|
header.add_file( 'include/json/forwards.h' )
|
||||||
|
header.add_file( 'include/json/features.h' )
|
||||||
|
header.add_file( 'include/json/value.h' )
|
||||||
|
header.add_file( 'include/json/reader.h' )
|
||||||
|
header.add_file( 'include/json/writer.h' )
|
||||||
|
header.add_text( '#endif //ifndef JSON_AMALGATED_H_INCLUDED' )
|
||||||
|
|
||||||
|
target_header_path = os.path.join( os.path.dirname(target_source_path), header_include_path )
|
||||||
|
print 'Writing amalgated header to %r' % target_header_path
|
||||||
|
header.write_to( target_header_path )
|
||||||
|
|
||||||
|
base, ext = os.path.splitext( header_include_path )
|
||||||
|
forward_header_include_path = base + '-forwards' + ext
|
||||||
|
print 'Amalgating forward header...'
|
||||||
|
header = AmalagatedFile( source_top_dir )
|
||||||
|
header.add_text( '/// Json-cpp amalgated forward header (http://jsoncpp.sourceforge.net/).' )
|
||||||
|
header.add_text( '/// It is intented to be used with #include <%s>' % forward_header_include_path )
|
||||||
|
header.add_text( '/// This header provides forward declaration for all JsonCpp types.' )
|
||||||
|
header.add_file( 'LICENSE', wrap_in_comment=True )
|
||||||
|
header.add_text( '#ifndef JSON_FORWARD_AMALGATED_H_INCLUDED' )
|
||||||
|
header.add_text( '# define JSON_FORWARD_AMALGATED_H_INCLUDED' )
|
||||||
|
header.add_text( '/// If defined, indicates that the source file is amalgated' )
|
||||||
|
header.add_text( '/// to prevent private header inclusion.' )
|
||||||
|
header.add_text( '#define JSON_IS_AMALGATED' )
|
||||||
|
header.add_file( 'include/json/config.h' )
|
||||||
|
header.add_file( 'include/json/forwards.h' )
|
||||||
|
header.add_text( '#endif //ifndef JSON_FORWARD_AMALGATED_H_INCLUDED' )
|
||||||
|
|
||||||
|
target_forward_header_path = os.path.join( os.path.dirname(target_source_path),
|
||||||
|
forward_header_include_path )
|
||||||
|
print 'Writing amalgated forward header to %r' % target_forward_header_path
|
||||||
|
header.write_to( target_forward_header_path )
|
||||||
|
|
||||||
|
print 'Amalgating source...'
|
||||||
|
source = AmalagatedFile( source_top_dir )
|
||||||
|
source.add_text( '/// Json-cpp amalgated source (http://jsoncpp.sourceforge.net/).' )
|
||||||
|
source.add_text( '/// It is intented to be used with #include <%s>' % header_include_path )
|
||||||
|
source.add_file( 'LICENSE', wrap_in_comment=True )
|
||||||
|
source.add_text( '' )
|
||||||
|
source.add_text( '#include <%s>' % header_include_path )
|
||||||
|
source.add_text( '' )
|
||||||
|
source.add_file( 'src/lib_json\json_tool.h' )
|
||||||
|
source.add_file( 'src/lib_json\json_reader.cpp' )
|
||||||
|
source.add_file( 'src/lib_json\json_batchallocator.h' )
|
||||||
|
source.add_file( 'src/lib_json\json_valueiterator.inl' )
|
||||||
|
source.add_file( 'src/lib_json\json_value.cpp' )
|
||||||
|
source.add_file( 'src/lib_json\json_writer.cpp' )
|
||||||
|
|
||||||
|
print 'Writing amalgated source to %r' % target_source_path
|
||||||
|
source.write_to( target_source_path )
|
||||||
|
|
||||||
|
def main():
|
||||||
|
usage = """%prog [options]
|
||||||
|
Generate a single amalgated source and header file from the sources.
|
||||||
|
"""
|
||||||
|
from optparse import OptionParser
|
||||||
|
parser = OptionParser(usage=usage)
|
||||||
|
parser.allow_interspersed_args = False
|
||||||
|
parser.add_option('-s', '--source', dest="target_source_path", action='store', default='dist/jsoncpp.cpp',
|
||||||
|
help="""Output .cpp source path. [Default: %default]""")
|
||||||
|
parser.add_option('-i', '--include', dest="header_include_path", action='store', default='json/json.h',
|
||||||
|
help="""Header include path. Used to include the header from the amalgated source file. [Default: %default]""")
|
||||||
|
parser.add_option('-t', '--top-dir', dest="top_dir", action='store', default=os.getcwd(),
|
||||||
|
help="""Source top-directory. [Default: %default]""")
|
||||||
|
parser.enable_interspersed_args()
|
||||||
|
options, args = parser.parse_args()
|
||||||
|
|
||||||
|
msg = amalgate_source( source_top_dir=options.top_dir,
|
||||||
|
target_source_path=options.target_source_path,
|
||||||
|
header_include_path=options.header_include_path )
|
||||||
|
if msg:
|
||||||
|
sys.stderr.write( msg + '\n' )
|
||||||
|
sys.exit( 1 )
|
||||||
|
else:
|
||||||
|
print 'Source succesfully amalagated'
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
@ -1,14 +1,4 @@
|
|||||||
/*! \page roadmap JsonCpp roadmap
|
/*! \page roadmap JsonCpp roadmap
|
||||||
\section ms_64bits Adds support for 64 bits integer
|
|
||||||
There has been many request to add support for 64 bits integer. Use case for this are:
|
|
||||||
- time is nowdays commonly represented with a 64 bits integer
|
|
||||||
- 64 bits integer are frequently used as primary key id in many systems
|
|
||||||
|
|
||||||
Plans to add support is:
|
|
||||||
- must be optional, a configuration option since not all platforms provides 64 bits integer types.
|
|
||||||
- move definition of Int and UInt from forwards.h to config.h, with the required platform magic.
|
|
||||||
- C++ defines no standard to define 64 bits integer. Rely on msvc extension, and long long type that
|
|
||||||
is widely supported.
|
|
||||||
\section ms_release Makes JsonCpp ready for release
|
\section ms_release Makes JsonCpp ready for release
|
||||||
- Build system clean-up:
|
- Build system clean-up:
|
||||||
- Fix build on Windows (shared-library build is broken)
|
- Fix build on Windows (shared-library build is broken)
|
||||||
@ -34,7 +24,7 @@
|
|||||||
Some typical use-case involve an application specific structure to/from a JSON document.
|
Some typical use-case involve an application specific structure to/from a JSON document.
|
||||||
- Event base parser to allow unserializing a Json document directly in datastructure instead of
|
- Event base parser to allow unserializing a Json document directly in datastructure instead of
|
||||||
using the intermediate Json::Value.
|
using the intermediate Json::Value.
|
||||||
- "Stream" based parser to serialized a Json document without using Json::Value as input.
|
- Stream based parser to serialized a Json document without using Json::Value as input.
|
||||||
- Performance oriented parser/writer:
|
- Performance oriented parser/writer:
|
||||||
- Provides an event based parser. Should allow pulling & skipping events for ease of use.
|
- Provides an event based parser. Should allow pulling & skipping events for ease of use.
|
||||||
- Provides a JSON document builder: fast only.
|
- Provides a JSON document builder: fast only.
|
||||||
@ -42,4 +32,6 @@
|
|||||||
- Provides support for static property name definition avoiding allocation
|
- Provides support for static property name definition avoiding allocation
|
||||||
- Static property dictionnary can be provided to JSON reader
|
- Static property dictionnary can be provided to JSON reader
|
||||||
- Performance scenario & benchmarking
|
- Performance scenario & benchmarking
|
||||||
|
\section testing Testing
|
||||||
|
- Adds more tests for unicode parsing (e.g. including surrogate and error detection).
|
||||||
*/
|
*/
|
||||||
|
@ -28,6 +28,12 @@
|
|||||||
/// instead of C assert macro.
|
/// instead of C assert macro.
|
||||||
# define JSON_USE_EXCEPTION 1
|
# define JSON_USE_EXCEPTION 1
|
||||||
|
|
||||||
|
/// If defined, indicates that the source file is amalgated
|
||||||
|
/// to prevent private header inclusion.
|
||||||
|
/// Remarks: it is automatically defined in the generated amalgated header.
|
||||||
|
// #define JSON_IS_AMALGATED
|
||||||
|
|
||||||
|
|
||||||
# ifdef JSON_IN_CPPTL
|
# ifdef JSON_IN_CPPTL
|
||||||
# include <cpptl/config.h>
|
# include <cpptl/config.h>
|
||||||
# ifndef JSON_USE_CPPTL
|
# ifndef JSON_USE_CPPTL
|
||||||
|
@ -6,7 +6,9 @@
|
|||||||
#ifndef CPPTL_JSON_FEATURES_H_INCLUDED
|
#ifndef CPPTL_JSON_FEATURES_H_INCLUDED
|
||||||
# define CPPTL_JSON_FEATURES_H_INCLUDED
|
# define CPPTL_JSON_FEATURES_H_INCLUDED
|
||||||
|
|
||||||
|
#if !defined(JSON_IS_AMALGATED)
|
||||||
# include "forwards.h"
|
# include "forwards.h"
|
||||||
|
#endif // if !defined(JSON_IS_AMALGATED)
|
||||||
|
|
||||||
namespace Json {
|
namespace Json {
|
||||||
|
|
||||||
|
@ -6,7 +6,9 @@
|
|||||||
#ifndef JSON_FORWARDS_H_INCLUDED
|
#ifndef JSON_FORWARDS_H_INCLUDED
|
||||||
# define JSON_FORWARDS_H_INCLUDED
|
# define JSON_FORWARDS_H_INCLUDED
|
||||||
|
|
||||||
|
#if !defined(JSON_IS_AMALGATED)
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
|
#endif // if !defined(JSON_IS_AMALGATED)
|
||||||
|
|
||||||
namespace Json {
|
namespace Json {
|
||||||
|
|
||||||
|
@ -6,8 +6,10 @@
|
|||||||
#ifndef CPPTL_JSON_READER_H_INCLUDED
|
#ifndef CPPTL_JSON_READER_H_INCLUDED
|
||||||
# define CPPTL_JSON_READER_H_INCLUDED
|
# define CPPTL_JSON_READER_H_INCLUDED
|
||||||
|
|
||||||
|
#if !defined(JSON_IS_AMALGATED)
|
||||||
# include "features.h"
|
# include "features.h"
|
||||||
# include "value.h"
|
# include "value.h"
|
||||||
|
#endif // if !defined(JSON_IS_AMALGATED)
|
||||||
# include <deque>
|
# include <deque>
|
||||||
# include <stack>
|
# include <stack>
|
||||||
# include <string>
|
# include <string>
|
||||||
@ -49,7 +51,9 @@ namespace Json {
|
|||||||
bool collectComments = true );
|
bool collectComments = true );
|
||||||
|
|
||||||
/** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a> document.
|
/** \brief Read a Value from a <a HREF="http://www.json.org">JSON</a> document.
|
||||||
* \param document UTF-8 encoded string containing the document to read.
|
* \param beginDoc Pointer on the beginning of the UTF-8 encoded string of the document to read.
|
||||||
|
* \param endDoc Pointer on the end of the UTF-8 encoded string of the document to read.
|
||||||
|
\ Must be >= beginDoc.
|
||||||
* \param root [out] Contains the root value of the document if it was
|
* \param root [out] Contains the root value of the document if it was
|
||||||
* successfully parsed.
|
* successfully parsed.
|
||||||
* \param collectComments \c true to collect comment and allow writing them back during
|
* \param collectComments \c true to collect comment and allow writing them back during
|
||||||
|
@ -6,7 +6,9 @@
|
|||||||
#ifndef CPPTL_JSON_H_INCLUDED
|
#ifndef CPPTL_JSON_H_INCLUDED
|
||||||
# define CPPTL_JSON_H_INCLUDED
|
# define CPPTL_JSON_H_INCLUDED
|
||||||
|
|
||||||
|
#if !defined(JSON_IS_AMALGATED)
|
||||||
# include "forwards.h"
|
# include "forwards.h"
|
||||||
|
#endif // if !defined(JSON_IS_AMALGATED)
|
||||||
# include <string>
|
# include <string>
|
||||||
# include <vector>
|
# include <vector>
|
||||||
|
|
||||||
|
@ -6,7 +6,9 @@
|
|||||||
#ifndef JSON_WRITER_H_INCLUDED
|
#ifndef JSON_WRITER_H_INCLUDED
|
||||||
# define JSON_WRITER_H_INCLUDED
|
# define JSON_WRITER_H_INCLUDED
|
||||||
|
|
||||||
|
#if !defined(JSON_IS_AMALGATED)
|
||||||
# include "value.h"
|
# include "value.h"
|
||||||
|
#endif // if !defined(JSON_IS_AMALGATED)
|
||||||
# include <vector>
|
# include <vector>
|
||||||
# include <string>
|
# include <string>
|
||||||
# include <iostream>
|
# include <iostream>
|
||||||
|
@ -6,7 +6,7 @@ Example of invocation (use to test the script):
|
|||||||
python makerelease.py --platform=msvc6,msvc71,msvc80,msvc90,mingw -ublep 0.6.0 0.7.0-dev
|
python makerelease.py --platform=msvc6,msvc71,msvc80,msvc90,mingw -ublep 0.6.0 0.7.0-dev
|
||||||
|
|
||||||
When testing this script:
|
When testing this script:
|
||||||
python makerelease.py --force --retag --platform=msvc6,msvc71,msvc80,mingw -ublep test-0.5.0 test-0.6.0-dev
|
python makerelease.py --force --retag --platform=msvc6,msvc71,msvc80,mingw -ublep test-0.6.0 test-0.6.1-dev
|
||||||
|
|
||||||
Example of invocation when doing a release:
|
Example of invocation when doing a release:
|
||||||
python makerelease.py 0.5.0 0.6.0-dev
|
python makerelease.py 0.5.0 0.6.0-dev
|
||||||
@ -23,6 +23,7 @@ import tempfile
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
from devtools import antglob, fixeol, tarball
|
from devtools import antglob, fixeol, tarball
|
||||||
|
import amalgate
|
||||||
|
|
||||||
SVN_ROOT = 'https://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/'
|
SVN_ROOT = 'https://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/'
|
||||||
SVN_TAG_ROOT = SVN_ROOT + 'tags/jsoncpp'
|
SVN_TAG_ROOT = SVN_ROOT + 'tags/jsoncpp'
|
||||||
@ -322,6 +323,14 @@ Warning: --force should only be used when developping/testing the release script
|
|||||||
print 'Generating source tarball to', source_tarball_path
|
print 'Generating source tarball to', source_tarball_path
|
||||||
tarball.make_tarball( source_tarball_path, [export_dir], export_dir, prefix_dir=source_dir )
|
tarball.make_tarball( source_tarball_path, [export_dir], export_dir, prefix_dir=source_dir )
|
||||||
|
|
||||||
|
amalgated_tarball_path = 'dist/%s-amalgated.tar.gz' % source_dir
|
||||||
|
print 'Generating amalgated source tarball to', amalgated_tarball_path
|
||||||
|
amalgated_dir = 'dist/amalgated'
|
||||||
|
amalgate.amalgate_source( export_dir, '%s/jsoncpp.cpp' % amalgated_dir, 'json/json.h' )
|
||||||
|
amalgated_source_dir = 'jsoncpp-src-amalgated' + release_version
|
||||||
|
tarball.make_tarball( amalgated_tarball_path, [amalgated_dir],
|
||||||
|
amalgated_dir, prefix_dir=amalgated_source_dir )
|
||||||
|
|
||||||
# Decompress source tarball, download and install scons-local
|
# Decompress source tarball, download and install scons-local
|
||||||
distcheck_dir = 'dist/distcheck'
|
distcheck_dir = 'dist/distcheck'
|
||||||
distcheck_top_dir = distcheck_dir + '/' + source_dir
|
distcheck_top_dir = distcheck_dir + '/' + source_dir
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
||||||
|
|
||||||
// included by json_value.cpp
|
// included by json_value.cpp
|
||||||
// everything is within Json namespace
|
|
||||||
|
namespace Json {
|
||||||
|
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
@ -451,3 +452,5 @@ ValueInternalArray::compare( const ValueInternalArray &other ) const
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace Json
|
||||||
|
@ -4,7 +4,8 @@
|
|||||||
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
||||||
|
|
||||||
// included by json_value.cpp
|
// included by json_value.cpp
|
||||||
// everything is within Json namespace
|
|
||||||
|
namespace Json {
|
||||||
|
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
@ -610,3 +611,5 @@ ValueInternalMap::distance( const IteratorState &x, const IteratorState &y )
|
|||||||
increment( it );
|
increment( it );
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace Json
|
||||||
|
@ -3,9 +3,11 @@
|
|||||||
// recognized in your jurisdiction.
|
// recognized in your jurisdiction.
|
||||||
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
||||||
|
|
||||||
#include <json/reader.h>
|
#if !defined(JSON_IS_AMALGATED)
|
||||||
#include <json/value.h>
|
# include <json/reader.h>
|
||||||
#include "json_tool.h"
|
# include <json/value.h>
|
||||||
|
# include "json_tool.h"
|
||||||
|
#endif // if !defined(JSON_IS_AMALGATED)
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
@ -3,9 +3,14 @@
|
|||||||
// recognized in your jurisdiction.
|
// recognized in your jurisdiction.
|
||||||
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
||||||
|
|
||||||
|
#if !defined(JSON_IS_AMALGATED)
|
||||||
|
# include <json/value.h>
|
||||||
|
# include <json/writer.h>
|
||||||
|
# ifndef JSON_USE_SIMPLE_INTERNAL_ALLOCATOR
|
||||||
|
# include "json_batchallocator.h"
|
||||||
|
# endif // #ifndef JSON_USE_SIMPLE_INTERNAL_ALLOCATOR
|
||||||
|
#endif // if !defined(JSON_IS_AMALGATED)
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <json/value.h>
|
|
||||||
#include <json/writer.h>
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
@ -14,9 +19,6 @@
|
|||||||
# include <cpptl/conststring.h>
|
# include <cpptl/conststring.h>
|
||||||
#endif
|
#endif
|
||||||
#include <cstddef> // size_t
|
#include <cstddef> // size_t
|
||||||
#ifndef JSON_USE_SIMPLE_INTERNAL_ALLOCATOR
|
|
||||||
# include "json_batchallocator.h"
|
|
||||||
#endif // #ifndef JSON_USE_SIMPLE_INTERNAL_ALLOCATOR
|
|
||||||
|
|
||||||
#define JSON_ASSERT_UNREACHABLE assert( false )
|
#define JSON_ASSERT_UNREACHABLE assert( false )
|
||||||
#define JSON_ASSERT( condition ) assert( condition ); // @todo <= change this into an exception throw
|
#define JSON_ASSERT( condition ) assert( condition ); // @todo <= change this into an exception throw
|
||||||
@ -70,6 +72,7 @@ releaseStringValue( char *value )
|
|||||||
free( value );
|
free( value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace Json
|
||||||
|
|
||||||
|
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
@ -79,13 +82,16 @@ releaseStringValue( char *value )
|
|||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
#ifdef JSON_VALUE_USE_INTERNAL_MAP
|
#if !defined(JSON_IS_AMALGATED)
|
||||||
# include "json_internalarray.inl"
|
# ifdef JSON_VALUE_USE_INTERNAL_MAP
|
||||||
# include "json_internalmap.inl"
|
# include "json_internalarray.inl"
|
||||||
#endif // JSON_VALUE_USE_INTERNAL_MAP
|
# include "json_internalmap.inl"
|
||||||
|
# endif // JSON_VALUE_USE_INTERNAL_MAP
|
||||||
|
|
||||||
# include "json_valueiterator.inl"
|
# include "json_valueiterator.inl"
|
||||||
|
#endif // if !defined(JSON_IS_AMALGATED)
|
||||||
|
|
||||||
|
namespace Json {
|
||||||
|
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
||||||
|
|
||||||
// included by json_value.cpp
|
// included by json_value.cpp
|
||||||
// everything is within Json namespace
|
|
||||||
|
|
||||||
|
namespace Json {
|
||||||
|
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
// //////////////////////////////////////////////////////////////////
|
// //////////////////////////////////////////////////////////////////
|
||||||
@ -295,3 +295,5 @@ ValueIterator::operator =( const SelfType &other )
|
|||||||
copy( other );
|
copy( other );
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace Json
|
||||||
|
@ -3,8 +3,10 @@
|
|||||||
// recognized in your jurisdiction.
|
// recognized in your jurisdiction.
|
||||||
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
// See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
|
||||||
|
|
||||||
#include <json/writer.h>
|
#if !defined(JSON_IS_AMALGATED)
|
||||||
#include "json_tool.h"
|
# include <json/writer.h>
|
||||||
|
# include "json_tool.h"
|
||||||
|
#endif // if !defined(JSON_IS_AMALGATED)
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user