Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
R
rapidjson
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
rapidjson
Commits
8cb978dc
Commit
8cb978dc
authored
Feb 02, 2016
by
Milo Yip
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add fwd.h and extract stream.h
parent
0cf06442
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
550 additions
and
175 deletions
+550
-175
encodedstream.h
include/rapidjson/encodedstream.h
+1
-1
filereadstream.h
include/rapidjson/filereadstream.h
+1
-1
filewritestream.h
include/rapidjson/filewritestream.h
+1
-1
fwd.h
include/rapidjson/fwd.h
+146
-0
regex.h
include/rapidjson/internal/regex.h
+2
-1
stack.h
include/rapidjson/internal/stack.h
+1
-1
strfunc.h
include/rapidjson/internal/strfunc.h
+1
-1
strtod.h
include/rapidjson/internal/strtod.h
+0
-1
memorybuffer.h
include/rapidjson/memorybuffer.h
+1
-1
memorystream.h
include/rapidjson/memorystream.h
+1
-1
rapidjson.h
include/rapidjson/rapidjson.h
+1
-160
reader.h
include/rapidjson/reader.h
+2
-2
schema.h
include/rapidjson/schema.h
+1
-1
stream.h
include/rapidjson/stream.h
+179
-0
stringbuffer.h
include/rapidjson/stringbuffer.h
+2
-1
writer.h
include/rapidjson/writer.h
+1
-1
CMakeLists.txt
test/unittest/CMakeLists.txt
+1
-0
fwdtest.cpp
test/unittest/fwdtest.cpp
+208
-0
strfunctest.cpp
test/unittest/strfunctest.cpp
+0
-1
No files found.
include/rapidjson/encodedstream.h
View file @
8cb978dc
...
...
@@ -15,7 +15,7 @@
#ifndef RAPIDJSON_ENCODEDSTREAM_H_
#define RAPIDJSON_ENCODEDSTREAM_H_
#include "
rapidjson
.h"
#include "
stream
.h"
#ifdef __GNUC__
RAPIDJSON_DIAG_PUSH
...
...
include/rapidjson/filereadstream.h
View file @
8cb978dc
...
...
@@ -15,7 +15,7 @@
#ifndef RAPIDJSON_FILEREADSTREAM_H_
#define RAPIDJSON_FILEREADSTREAM_H_
#include "
rapidjson
.h"
#include "
stream
.h"
#include <cstdio>
#ifdef __clang__
...
...
include/rapidjson/filewritestream.h
View file @
8cb978dc
...
...
@@ -15,7 +15,7 @@
#ifndef RAPIDJSON_FILEWRITESTREAM_H_
#define RAPIDJSON_FILEWRITESTREAM_H_
#include "
rapidjson
.h"
#include "
stream
.h"
#include <cstdio>
#ifdef __clang__
...
...
include/rapidjson/fwd.h
0 → 100644
View file @
8cb978dc
// Tencent is pleased to support the open source community by making RapidJSON available.
//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
//
// Licensed under the MIT License (the "License"); you may not use this file except
// in compliance with the License. You may obtain a copy of the License at
//
// http://opensource.org/licenses/MIT
//
// Unless required by applicable law or agreed to in writing, software distributed
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_FWD_H_
#define RAPIDJSON_FWD_H_
#include "rapidjson.h"
RAPIDJSON_NAMESPACE_BEGIN
// encodings.h
template
<
typename
CharType
>
struct
UTF8
;
template
<
typename
CharType
>
struct
UTF16
;
template
<
typename
CharType
>
struct
UTF16BE
;
template
<
typename
CharType
>
struct
UTF16LE
;
template
<
typename
CharType
>
struct
UTF32
;
template
<
typename
CharType
>
struct
UTF32BE
;
template
<
typename
CharType
>
struct
UTF32LE
;
template
<
typename
CharType
>
struct
ASCII
;
template
<
typename
CharType
>
struct
AutoUTF
;
template
<
typename
SourceEncoding
,
typename
TargetEncoding
>
struct
Transcoder
;
// allocators.h
class
CrtAllocator
;
template
<
typename
BaseAllocator
>
class
MemoryPoolAllocator
;
// stream.h
template
<
typename
Encoding
>
struct
GenericStringStream
;
typedef
GenericStringStream
<
UTF8
<
char
>
>
StringStream
;
template
<
typename
Encoding
>
struct
GenericInsituStringStream
;
typedef
GenericInsituStringStream
<
UTF8
<
char
>
>
InsituStringStream
;
// stringbuffer.h
template
<
typename
Encoding
,
typename
Allocator
>
class
GenericStringBuffer
;
typedef
GenericStringBuffer
<
UTF8
<
char
>
,
CrtAllocator
>
StringBuffer
;
// filereadstream.h
class
FileReadStream
;
// filewritestream.h
class
FileWriteStream
;
// memorybuffer.h
template
<
typename
Allocator
>
struct
GenericMemoryBuffer
;
typedef
GenericMemoryBuffer
<
CrtAllocator
>
MemoryBuffer
;
// memorystream.h
struct
MemoryStream
;
// reader.h
template
<
typename
Encoding
,
typename
Derived
>
struct
BaseReaderHandler
;
template
<
typename
SourceEncoding
,
typename
TargetEncoding
,
typename
StackAllocator
>
class
GenericReader
;
typedef
GenericReader
<
UTF8
<
char
>
,
UTF8
<
char
>
,
CrtAllocator
>
Reader
;
// writer.h
template
<
typename
OutputStream
,
typename
SourceEncoding
,
typename
TargetEncoding
,
typename
StackAllocator
>
class
Writer
;
// document.h
template
<
typename
Encoding
,
typename
Allocator
>
struct
GenericMember
;
template
<
bool
Const
,
typename
Encoding
,
typename
Allocator
>
class
GenericMemberIterator
;
template
<
typename
CharType
>
struct
GenericStringRef
;
template
<
typename
Encoding
,
typename
Allocator
>
class
GenericValue
;
typedef
GenericValue
<
UTF8
<
char
>
,
MemoryPoolAllocator
<
CrtAllocator
>
>
Value
;
template
<
typename
Encoding
,
typename
Allocator
,
typename
StackAllocator
>
class
GenericDocument
;
typedef
GenericDocument
<
UTF8
<
char
>
,
MemoryPoolAllocator
<
CrtAllocator
>
,
CrtAllocator
>
Document
;
// pointer.h
template
<
typename
ValueType
,
typename
Allocator
>
class
GenericPointer
;
typedef
GenericPointer
<
Value
,
CrtAllocator
>
Pointer
;
// schema.h
template
<
typename
SchemaDocumentType
>
class
IGenericRemoteSchemaDocumentProvider
;
template
<
typename
ValueT
,
typename
Allocator
>
class
GenericSchemaDocument
;
typedef
GenericSchemaDocument
<
Value
,
CrtAllocator
>
SchemaDocument
;
typedef
IGenericRemoteSchemaDocumentProvider
<
SchemaDocument
>
IRemoteSchemaDocumentProvider
;
template
<
typename
SchemaDocumentType
,
typename
OutputHandler
,
typename
StateAllocator
>
class
GenericSchemaValidator
;
typedef
GenericSchemaValidator
<
SchemaDocument
,
BaseReaderHandler
<
UTF8
<
char
>
,
void
>
,
CrtAllocator
>
SchemaValidator
;
RAPIDJSON_NAMESPACE_END
#endif // RAPIDJSON_RAPIDJSONFWD_H_
include/rapidjson/internal/regex.h
View file @
8cb978dc
...
...
@@ -15,7 +15,8 @@
#ifndef RAPIDJSON_INTERNAL_REGEX_H_
#define RAPIDJSON_INTERNAL_REGEX_H_
#include "../rapidjson.h"
#include "../allocators.h"
#include "../stream.h"
#include "stack.h"
#ifdef __clang__
...
...
include/rapidjson/internal/stack.h
View file @
8cb978dc
...
...
@@ -15,7 +15,7 @@
#ifndef RAPIDJSON_INTERNAL_STACK_H_
#define RAPIDJSON_INTERNAL_STACK_H_
#include "../
rapidjson
.h"
#include "../
allocators
.h"
#include "swap.h"
#if defined(__clang__)
...
...
include/rapidjson/internal/strfunc.h
View file @
8cb978dc
...
...
@@ -15,7 +15,7 @@
#ifndef RAPIDJSON_INTERNAL_STRFUNC_H_
#define RAPIDJSON_INTERNAL_STRFUNC_H_
#include "../
rapidjson
.h"
#include "../
stream
.h"
RAPIDJSON_NAMESPACE_BEGIN
namespace
internal
{
...
...
include/rapidjson/internal/strtod.h
View file @
8cb978dc
...
...
@@ -15,7 +15,6 @@
#ifndef RAPIDJSON_STRTOD_
#define RAPIDJSON_STRTOD_
#include "../rapidjson.h"
#include "ieee754.h"
#include "biginteger.h"
#include "diyfp.h"
...
...
include/rapidjson/memorybuffer.h
View file @
8cb978dc
...
...
@@ -15,7 +15,7 @@
#ifndef RAPIDJSON_MEMORYBUFFER_H_
#define RAPIDJSON_MEMORYBUFFER_H_
#include "
rapidjson
.h"
#include "
stream
.h"
#include "internal/stack.h"
RAPIDJSON_NAMESPACE_BEGIN
...
...
include/rapidjson/memorystream.h
View file @
8cb978dc
...
...
@@ -15,7 +15,7 @@
#ifndef RAPIDJSON_MEMORYSTREAM_H_
#define RAPIDJSON_MEMORYSTREAM_H_
#include "
rapidjson
.h"
#include "
stream
.h"
#ifdef __clang__
RAPIDJSON_DIAG_PUSH
...
...
include/rapidjson/rapidjson.h
View file @
8cb978dc
...
...
@@ -545,10 +545,7 @@ RAPIDJSON_NAMESPACE_END
#endif
///////////////////////////////////////////////////////////////////////////////
// Allocators and Encodings
#include "allocators.h"
#include "encodings.h"
// Type
/*! \namespace rapidjson
\brief main RapidJSON namespace
...
...
@@ -556,162 +553,6 @@ RAPIDJSON_NAMESPACE_END
*/
RAPIDJSON_NAMESPACE_BEGIN
///////////////////////////////////////////////////////////////////////////////
// Stream
/*! \class rapidjson::Stream
\brief Concept for reading and writing characters.
For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd().
For write-only stream, only need to implement Put() and Flush().
\code
concept Stream {
typename Ch; //!< Character type of the stream.
//! Read the current character from stream without moving the read cursor.
Ch Peek() const;
//! Read the current character from stream and moving the read cursor to next character.
Ch Take();
//! Get the current read cursor.
//! \return Number of characters read from start.
size_t Tell();
//! Begin writing operation at the current read pointer.
//! \return The begin writer pointer.
Ch* PutBegin();
//! Write a character.
void Put(Ch c);
//! Flush the buffer.
void Flush();
//! End the writing operation.
//! \param begin The begin write pointer returned by PutBegin().
//! \return Number of characters written.
size_t PutEnd(Ch* begin);
}
\endcode
*/
//! Provides additional information for stream.
/*!
By using traits pattern, this type provides a default configuration for stream.
For custom stream, this type can be specialized for other configuration.
See TEST(Reader, CustomStringStream) in readertest.cpp for example.
*/
template
<
typename
Stream
>
struct
StreamTraits
{
//! Whether to make local copy of stream for optimization during parsing.
/*!
By default, for safety, streams do not use local copy optimization.
Stream that can be copied fast should specialize this, like StreamTraits<StringStream>.
*/
enum
{
copyOptimization
=
0
};
};
//! Reserve n characters for writing to a stream.
template
<
typename
Stream
>
inline
void
PutReserve
(
Stream
&
stream
,
size_t
count
)
{
(
void
)
stream
;
(
void
)
count
;
}
//! Write character to a stream, presuming buffer is reserved.
template
<
typename
Stream
>
inline
void
PutUnsafe
(
Stream
&
stream
,
typename
Stream
::
Ch
c
)
{
stream
.
Put
(
c
);
}
//! Put N copies of a character to a stream.
template
<
typename
Stream
,
typename
Ch
>
inline
void
PutN
(
Stream
&
stream
,
Ch
c
,
size_t
n
)
{
PutReserve
<
Stream
>
(
stream
,
n
);
for
(
size_t
i
=
0
;
i
<
n
;
i
++
)
PutUnsafe
(
stream
,
c
);
}
///////////////////////////////////////////////////////////////////////////////
// StringStream
//! Read-only string stream.
/*! \note implements Stream concept
*/
template
<
typename
Encoding
>
struct
GenericStringStream
{
typedef
typename
Encoding
::
Ch
Ch
;
GenericStringStream
(
const
Ch
*
src
)
:
src_
(
src
),
head_
(
src
)
{}
Ch
Peek
()
const
{
return
*
src_
;
}
Ch
Take
()
{
return
*
src_
++
;
}
size_t
Tell
()
const
{
return
static_cast
<
size_t
>
(
src_
-
head_
);
}
Ch
*
PutBegin
()
{
RAPIDJSON_ASSERT
(
false
);
return
0
;
}
void
Put
(
Ch
)
{
RAPIDJSON_ASSERT
(
false
);
}
void
Flush
()
{
RAPIDJSON_ASSERT
(
false
);
}
size_t
PutEnd
(
Ch
*
)
{
RAPIDJSON_ASSERT
(
false
);
return
0
;
}
const
Ch
*
src_
;
//!< Current read position.
const
Ch
*
head_
;
//!< Original head of the string.
};
template
<
typename
Encoding
>
struct
StreamTraits
<
GenericStringStream
<
Encoding
>
>
{
enum
{
copyOptimization
=
1
};
};
//! String stream with UTF8 encoding.
typedef
GenericStringStream
<
UTF8
<>
>
StringStream
;
///////////////////////////////////////////////////////////////////////////////
// InsituStringStream
//! A read-write string stream.
/*! This string stream is particularly designed for in-situ parsing.
\note implements Stream concept
*/
template
<
typename
Encoding
>
struct
GenericInsituStringStream
{
typedef
typename
Encoding
::
Ch
Ch
;
GenericInsituStringStream
(
Ch
*
src
)
:
src_
(
src
),
dst_
(
0
),
head_
(
src
)
{}
// Read
Ch
Peek
()
{
return
*
src_
;
}
Ch
Take
()
{
return
*
src_
++
;
}
size_t
Tell
()
{
return
static_cast
<
size_t
>
(
src_
-
head_
);
}
// Write
void
Put
(
Ch
c
)
{
RAPIDJSON_ASSERT
(
dst_
!=
0
);
*
dst_
++
=
c
;
}
Ch
*
PutBegin
()
{
return
dst_
=
src_
;
}
size_t
PutEnd
(
Ch
*
begin
)
{
return
static_cast
<
size_t
>
(
dst_
-
begin
);
}
void
Flush
()
{}
Ch
*
Push
(
size_t
count
)
{
Ch
*
begin
=
dst_
;
dst_
+=
count
;
return
begin
;
}
void
Pop
(
size_t
count
)
{
dst_
-=
count
;
}
Ch
*
src_
;
Ch
*
dst_
;
Ch
*
head_
;
};
template
<
typename
Encoding
>
struct
StreamTraits
<
GenericInsituStringStream
<
Encoding
>
>
{
enum
{
copyOptimization
=
1
};
};
//! Insitu string stream with UTF8 encoding.
typedef
GenericInsituStringStream
<
UTF8
<>
>
InsituStringStream
;
///////////////////////////////////////////////////////////////////////////////
// Type
//! Type of JSON value
enum
Type
{
kNullType
=
0
,
//!< null
...
...
include/rapidjson/reader.h
View file @
8cb978dc
...
...
@@ -17,8 +17,8 @@
/*! \file reader.h */
#include "
rapidjson
.h"
#include "
encodings
.h"
#include "
allocators
.h"
#include "
stream
.h"
#include "internal/meta.h"
#include "internal/stack.h"
#include "internal/strtod.h"
...
...
include/rapidjson/schema.h
View file @
8cb978dc
...
...
@@ -17,7 +17,7 @@
#include "document.h"
#include "pointer.h"
#include <cmath> //
HUGE_VAL,
abs, floor
#include <cmath> // abs, floor
#ifdef __clang__
RAPIDJSON_DIAG_PUSH
...
...
include/rapidjson/stream.h
0 → 100644
View file @
8cb978dc
// Tencent is pleased to support the open source community by making RapidJSON available.
//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
//
// Licensed under the MIT License (the "License"); you may not use this file except
// in compliance with the License. You may obtain a copy of the License at
//
// http://opensource.org/licenses/MIT
//
// Unless required by applicable law or agreed to in writing, software distributed
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "rapidjson.h"
#ifndef RAPIDJSON_STREAM_H_
#define RAPIDJSON_STREAM_H_
#include "encodings.h"
RAPIDJSON_NAMESPACE_BEGIN
///////////////////////////////////////////////////////////////////////////////
// Stream
/*! \class rapidjson::Stream
\brief Concept for reading and writing characters.
For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd().
For write-only stream, only need to implement Put() and Flush().
\code
concept Stream {
typename Ch; //!< Character type of the stream.
//! Read the current character from stream without moving the read cursor.
Ch Peek() const;
//! Read the current character from stream and moving the read cursor to next character.
Ch Take();
//! Get the current read cursor.
//! \return Number of characters read from start.
size_t Tell();
//! Begin writing operation at the current read pointer.
//! \return The begin writer pointer.
Ch* PutBegin();
//! Write a character.
void Put(Ch c);
//! Flush the buffer.
void Flush();
//! End the writing operation.
//! \param begin The begin write pointer returned by PutBegin().
//! \return Number of characters written.
size_t PutEnd(Ch* begin);
}
\endcode
*/
//! Provides additional information for stream.
/*!
By using traits pattern, this type provides a default configuration for stream.
For custom stream, this type can be specialized for other configuration.
See TEST(Reader, CustomStringStream) in readertest.cpp for example.
*/
template
<
typename
Stream
>
struct
StreamTraits
{
//! Whether to make local copy of stream for optimization during parsing.
/*!
By default, for safety, streams do not use local copy optimization.
Stream that can be copied fast should specialize this, like StreamTraits<StringStream>.
*/
enum
{
copyOptimization
=
0
};
};
//! Reserve n characters for writing to a stream.
template
<
typename
Stream
>
inline
void
PutReserve
(
Stream
&
stream
,
size_t
count
)
{
(
void
)
stream
;
(
void
)
count
;
}
//! Write character to a stream, presuming buffer is reserved.
template
<
typename
Stream
>
inline
void
PutUnsafe
(
Stream
&
stream
,
typename
Stream
::
Ch
c
)
{
stream
.
Put
(
c
);
}
//! Put N copies of a character to a stream.
template
<
typename
Stream
,
typename
Ch
>
inline
void
PutN
(
Stream
&
stream
,
Ch
c
,
size_t
n
)
{
PutReserve
<
Stream
>
(
stream
,
n
);
for
(
size_t
i
=
0
;
i
<
n
;
i
++
)
PutUnsafe
(
stream
,
c
);
}
///////////////////////////////////////////////////////////////////////////////
// StringStream
//! Read-only string stream.
/*! \note implements Stream concept
*/
template
<
typename
Encoding
>
struct
GenericStringStream
{
typedef
typename
Encoding
::
Ch
Ch
;
GenericStringStream
(
const
Ch
*
src
)
:
src_
(
src
),
head_
(
src
)
{}
Ch
Peek
()
const
{
return
*
src_
;
}
Ch
Take
()
{
return
*
src_
++
;
}
size_t
Tell
()
const
{
return
static_cast
<
size_t
>
(
src_
-
head_
);
}
Ch
*
PutBegin
()
{
RAPIDJSON_ASSERT
(
false
);
return
0
;
}
void
Put
(
Ch
)
{
RAPIDJSON_ASSERT
(
false
);
}
void
Flush
()
{
RAPIDJSON_ASSERT
(
false
);
}
size_t
PutEnd
(
Ch
*
)
{
RAPIDJSON_ASSERT
(
false
);
return
0
;
}
const
Ch
*
src_
;
//!< Current read position.
const
Ch
*
head_
;
//!< Original head of the string.
};
template
<
typename
Encoding
>
struct
StreamTraits
<
GenericStringStream
<
Encoding
>
>
{
enum
{
copyOptimization
=
1
};
};
//! String stream with UTF8 encoding.
typedef
GenericStringStream
<
UTF8
<>
>
StringStream
;
///////////////////////////////////////////////////////////////////////////////
// InsituStringStream
//! A read-write string stream.
/*! This string stream is particularly designed for in-situ parsing.
\note implements Stream concept
*/
template
<
typename
Encoding
>
struct
GenericInsituStringStream
{
typedef
typename
Encoding
::
Ch
Ch
;
GenericInsituStringStream
(
Ch
*
src
)
:
src_
(
src
),
dst_
(
0
),
head_
(
src
)
{}
// Read
Ch
Peek
()
{
return
*
src_
;
}
Ch
Take
()
{
return
*
src_
++
;
}
size_t
Tell
()
{
return
static_cast
<
size_t
>
(
src_
-
head_
);
}
// Write
void
Put
(
Ch
c
)
{
RAPIDJSON_ASSERT
(
dst_
!=
0
);
*
dst_
++
=
c
;
}
Ch
*
PutBegin
()
{
return
dst_
=
src_
;
}
size_t
PutEnd
(
Ch
*
begin
)
{
return
static_cast
<
size_t
>
(
dst_
-
begin
);
}
void
Flush
()
{}
Ch
*
Push
(
size_t
count
)
{
Ch
*
begin
=
dst_
;
dst_
+=
count
;
return
begin
;
}
void
Pop
(
size_t
count
)
{
dst_
-=
count
;
}
Ch
*
src_
;
Ch
*
dst_
;
Ch
*
head_
;
};
template
<
typename
Encoding
>
struct
StreamTraits
<
GenericInsituStringStream
<
Encoding
>
>
{
enum
{
copyOptimization
=
1
};
};
//! Insitu string stream with UTF8 encoding.
typedef
GenericInsituStringStream
<
UTF8
<>
>
InsituStringStream
;
RAPIDJSON_NAMESPACE_END
#endif // RAPIDJSON_STREAM_H_
include/rapidjson/stringbuffer.h
View file @
8cb978dc
...
...
@@ -15,7 +15,8 @@
#ifndef RAPIDJSON_STRINGBUFFER_H_
#define RAPIDJSON_STRINGBUFFER_H_
#include "rapidjson.h"
#include "stream.h"
#include "internal/stack.h"
#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
#include <utility> // std::move
...
...
include/rapidjson/writer.h
View file @
8cb978dc
...
...
@@ -15,7 +15,7 @@
#ifndef RAPIDJSON_WRITER_H_
#define RAPIDJSON_WRITER_H_
#include "
rapidjson
.h"
#include "
stream
.h"
#include "internal/stack.h"
#include "internal/strfunc.h"
#include "internal/dtoa.h"
...
...
test/unittest/CMakeLists.txt
View file @
8cb978dc
...
...
@@ -4,6 +4,7 @@ set(UNITTEST_SOURCES
documenttest.cpp
encodedstreamtest.cpp
encodingstest.cpp
fwdtest.cpp
filestreamtest.cpp
itoatest.cpp
jsoncheckertest.cpp
...
...
test/unittest/fwdtest.cpp
0 → 100644
View file @
8cb978dc
// Tencent is pleased to support the open source community by making RapidJSON available.
//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
//
// Licensed under the MIT License (the "License"); you may not use this file except
// in compliance with the License. You may obtain a copy of the License at
//
// http://opensource.org/licenses/MIT
//
// Unless required by applicable law or agreed to in writing, software distributed
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
// Using forward declared types here.
#include "rapidjson/fwd.h"
using
namespace
rapidjson
;
struct
Foo
{
Foo
();
~
Foo
();
// encodings.h
UTF8
<
char
>*
utf8
;
UTF16
<
wchar_t
>*
utf16
;
UTF16BE
<
wchar_t
>*
utf16be
;
UTF16LE
<
wchar_t
>*
utf16le
;
UTF32
<
unsigned
>*
utf32
;
UTF32BE
<
unsigned
>*
utf32be
;
UTF32LE
<
unsigned
>*
utf32le
;
ASCII
<
char
>*
ascii
;
AutoUTF
<
unsigned
>*
autoutf
;
Transcoder
<
UTF8
<
char
>
,
UTF8
<
char
>
>*
transcoder
;
// allocators.h
CrtAllocator
*
crtallocator
;
MemoryPoolAllocator
<
CrtAllocator
>*
memorypoolallocator
;
// stream.h
StringStream
*
stringstream
;
InsituStringStream
*
insitustringstream
;
// stringbuffer.h
StringBuffer
*
stringbuffer
;
// filereadstream.h
FileReadStream
*
filereadstream
;
// filewritestream.h
FileWriteStream
*
filewritestream
;
// memorybuffer.h
MemoryBuffer
*
memorybuffer
;
// memorystream.h
MemoryStream
*
memorystream
;
// reader.h
BaseReaderHandler
<
UTF8
<
char
>
,
void
>*
basereaderhandler
;
Reader
*
reader
;
// writer.h
Writer
<
StringBuffer
,
UTF8
<
char
>
,
UTF8
<
char
>
,
CrtAllocator
>*
writer
;
// document.h
Value
*
value
;
Document
*
document
;
// pointer.h
Pointer
*
pointer
;
// schema.h
SchemaDocument
*
schemadocument
;
SchemaValidator
*
schemavalidator
;
char
buffer
[
16
];
};
// Using type definitions here.
#include "rapidjson/stringbuffer.h"
#include "rapidjson/filereadstream.h"
#include "rapidjson/filewritestream.h"
#include "rapidjson/memorybuffer.h"
#include "rapidjson/memorystream.h"
#include "rapidjson/document.h" // -> reader.h
#include "rapidjson/writer.h"
#include "rapidjson/schema.h" // -> pointer.h
Foo
::
Foo
()
:
// encodings.h
utf8
(
RAPIDJSON_NEW
(
UTF8
<>
)),
utf16
(
RAPIDJSON_NEW
(
UTF16
<>
)),
utf16be
(
RAPIDJSON_NEW
(
UTF16BE
<>
)),
utf16le
(
RAPIDJSON_NEW
(
UTF16LE
<>
)),
utf32
(
RAPIDJSON_NEW
(
UTF32
<>
)),
utf32be
(
RAPIDJSON_NEW
(
UTF32BE
<>
)),
utf32le
(
RAPIDJSON_NEW
(
UTF32LE
<>
)),
ascii
(
RAPIDJSON_NEW
(
ASCII
<>
)),
autoutf
(
RAPIDJSON_NEW
(
AutoUTF
<
unsigned
>
)),
transcoder
(
RAPIDJSON_NEW
((
Transcoder
<
UTF8
<>
,
UTF8
<>
>
))),
// allocators.h
crtallocator
(
RAPIDJSON_NEW
(
CrtAllocator
)),
memorypoolallocator
(
RAPIDJSON_NEW
(
MemoryPoolAllocator
<>
)),
// stream.h
stringstream
(
RAPIDJSON_NEW
(
StringStream
(
0
))),
insitustringstream
(
RAPIDJSON_NEW
(
InsituStringStream
(
0
))),
// stringbuffer.h
stringbuffer
(
RAPIDJSON_NEW
(
StringBuffer
)),
// filereadstream.h
filereadstream
(
RAPIDJSON_NEW
(
FileReadStream
(
stdout
,
buffer
,
sizeof
(
buffer
)))),
// filewritestream.h
filewritestream
(
RAPIDJSON_NEW
(
FileWriteStream
(
stdout
,
buffer
,
sizeof
(
buffer
)))),
// memorybuffer.h
memorybuffer
(
RAPIDJSON_NEW
(
MemoryBuffer
)),
// memorystream.h
memorystream
(
RAPIDJSON_NEW
(
MemoryStream
(
0
,
0
))),
// reader.h
basereaderhandler
(
RAPIDJSON_NEW
((
BaseReaderHandler
<
UTF8
<>
,
void
>
))),
reader
(
RAPIDJSON_NEW
(
Reader
)),
// writer.h
writer
(
RAPIDJSON_NEW
((
Writer
<
StringBuffer
>
))),
// document.h
value
(
RAPIDJSON_NEW
(
Value
)),
document
(
RAPIDJSON_NEW
(
Document
)),
// pointer.h
pointer
(
RAPIDJSON_NEW
(
Pointer
)),
// schema.h
schemadocument
(
RAPIDJSON_NEW
(
SchemaDocument
(
*
document
))),
schemavalidator
(
RAPIDJSON_NEW
(
SchemaValidator
(
*
schemadocument
)))
{
}
Foo
::~
Foo
()
{
// encodings.h
RAPIDJSON_DELETE
(
utf8
);
RAPIDJSON_DELETE
(
utf16
);
RAPIDJSON_DELETE
(
utf16be
);
RAPIDJSON_DELETE
(
utf16le
);
RAPIDJSON_DELETE
(
utf32
);
RAPIDJSON_DELETE
(
utf32be
);
RAPIDJSON_DELETE
(
utf32le
);
RAPIDJSON_DELETE
(
ascii
);
RAPIDJSON_DELETE
(
autoutf
);
RAPIDJSON_DELETE
(
transcoder
);
// allocators.h
RAPIDJSON_DELETE
(
crtallocator
);
RAPIDJSON_DELETE
(
memorypoolallocator
);
// stream.h
RAPIDJSON_DELETE
(
stringstream
);
RAPIDJSON_DELETE
(
insitustringstream
);
// stringbuffer.h
RAPIDJSON_DELETE
(
stringbuffer
);
// filereadstream.h
RAPIDJSON_DELETE
(
filereadstream
);
// filewritestream.h
RAPIDJSON_DELETE
(
filewritestream
);
// memorybuffer.h
RAPIDJSON_DELETE
(
memorybuffer
);
// memorystream.h
RAPIDJSON_DELETE
(
memorystream
);
// reader.h
RAPIDJSON_DELETE
(
basereaderhandler
);
RAPIDJSON_DELETE
(
reader
);
// writer.h
RAPIDJSON_DELETE
(
writer
);
// document.h
RAPIDJSON_DELETE
(
value
);
RAPIDJSON_DELETE
(
document
);
// pointer.h
RAPIDJSON_DELETE
(
pointer
);
// schema.h
RAPIDJSON_DELETE
(
schemadocument
);
RAPIDJSON_DELETE
(
schemavalidator
);
}
TEST
(
Fwd
,
Fwd
)
{
Foo
f
;
}
test/unittest/strfunctest.cpp
View file @
8cb978dc
...
...
@@ -13,7 +13,6 @@
// specific language governing permissions and limitations under the License.
#include "unittest.h"
#include "rapidjson/internal/strfunc.h"
using
namespace
rapidjson
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment