1 // Tencent is pleased to support the open source community by making RapidJSON available.
3 // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
5 // Licensed under the MIT License (the "License"); you may not use this file except
6 // in compliance with the License. You may obtain a copy of the License at
8 // http://opensource.org/licenses/MIT
10 // Unless required by applicable law or agreed to in writing, software distributed
11 // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12 // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13 // specific language governing permissions and limitations under the License.
15 #ifndef RAPIDJSON_FWD_H_
16 #define RAPIDJSON_FWD_H_
18 #include "rapidjson.h"
20 RAPIDJSON_NAMESPACE_BEGIN
24 template<typename CharType
> struct UTF8
;
25 template<typename CharType
> struct UTF16
;
26 template<typename CharType
> struct UTF16BE
;
27 template<typename CharType
> struct UTF16LE
;
28 template<typename CharType
> struct UTF32
;
29 template<typename CharType
> struct UTF32BE
;
30 template<typename CharType
> struct UTF32LE
;
31 template<typename CharType
> struct ASCII
;
32 template<typename CharType
> struct AutoUTF
;
34 template<typename SourceEncoding
, typename TargetEncoding
>
41 template <typename BaseAllocator
>
42 class MemoryPoolAllocator
;
46 template <typename Encoding
>
47 struct GenericStringStream
;
49 typedef GenericStringStream
<UTF8
<char> > StringStream
;
51 template <typename Encoding
>
52 struct GenericInsituStringStream
;
54 typedef GenericInsituStringStream
<UTF8
<char> > InsituStringStream
;
58 template <typename Encoding
, typename Allocator
>
59 class GenericStringBuffer
;
61 typedef GenericStringBuffer
<UTF8
<char>, CrtAllocator
> StringBuffer
;
69 class FileWriteStream
;
73 template <typename Allocator
>
74 struct GenericMemoryBuffer
;
76 typedef GenericMemoryBuffer
<CrtAllocator
> MemoryBuffer
;
84 template<typename Encoding
, typename Derived
>
85 struct BaseReaderHandler
;
87 template <typename SourceEncoding
, typename TargetEncoding
, typename StackAllocator
>
90 typedef GenericReader
<UTF8
<char>, UTF8
<char>, CrtAllocator
> Reader
;
94 template<typename OutputStream
, typename SourceEncoding
, typename TargetEncoding
, typename StackAllocator
, unsigned writeFlags
>
99 template<typename OutputStream
, typename SourceEncoding
, typename TargetEncoding
, typename StackAllocator
, unsigned writeFlags
>
104 template <typename Encoding
, typename Allocator
>
105 struct GenericMember
;
107 template <bool Const
, typename Encoding
, typename Allocator
>
108 class GenericMemberIterator
;
110 template<typename CharType
>
111 struct GenericStringRef
;
113 template <typename Encoding
, typename Allocator
>
116 typedef GenericValue
<UTF8
<char>, MemoryPoolAllocator
<CrtAllocator
> > Value
;
118 template <typename Encoding
, typename Allocator
, typename StackAllocator
>
119 class GenericDocument
;
121 typedef GenericDocument
<UTF8
<char>, MemoryPoolAllocator
<CrtAllocator
>, CrtAllocator
> Document
;
125 template <typename ValueType
, typename Allocator
>
126 class GenericPointer
;
128 typedef GenericPointer
<Value
, CrtAllocator
> Pointer
;
132 template <typename SchemaDocumentType
>
133 class IGenericRemoteSchemaDocumentProvider
;
135 template <typename ValueT
, typename Allocator
>
136 class GenericSchemaDocument
;
138 typedef GenericSchemaDocument
<Value
, CrtAllocator
> SchemaDocument
;
139 typedef IGenericRemoteSchemaDocumentProvider
<SchemaDocument
> IRemoteSchemaDocumentProvider
;
142 typename SchemaDocumentType
,
143 typename OutputHandler
,
144 typename StateAllocator
>
145 class GenericSchemaValidator
;
147 typedef GenericSchemaValidator
<SchemaDocument
, BaseReaderHandler
<UTF8
<char>, void>, CrtAllocator
> SchemaValidator
;
149 RAPIDJSON_NAMESPACE_END
151 #endif // RAPIDJSON_RAPIDJSONFWD_H_