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_