1 // Tencent is pleased to support the open source community by making RapidJSON available. 2 // 3 // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. 4 // 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 7 // 8 // http://opensource.org/licenses/MIT 9 // 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. 14 15 #ifndef RAPIDJSON_FWD_H_ 16 #define RAPIDJSON_FWD_H_ 17 18 #include "rapidjson.h" 19 20 RAPIDJSON_NAMESPACE_BEGIN 21 22 // encodings.h 23 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; 33 34 template<typename SourceEncoding, typename TargetEncoding> 35 struct Transcoder; 36 37 // allocators.h 38 39 class CrtAllocator; 40 41 template <typename BaseAllocator> 42 class MemoryPoolAllocator; 43 44 // stream.h 45 46 template <typename Encoding> 47 struct GenericStringStream; 48 49 typedef GenericStringStream<UTF8<char> > StringStream; 50 51 template <typename Encoding> 52 struct GenericInsituStringStream; 53 54 typedef GenericInsituStringStream<UTF8<char> > InsituStringStream; 55 56 // stringbuffer.h 57 58 template <typename Encoding, typename Allocator> 59 class GenericStringBuffer; 60 61 typedef GenericStringBuffer<UTF8<char>, CrtAllocator> StringBuffer; 62 63 // filereadstream.h 64 65 class FileReadStream; 66 67 // filewritestream.h 68 69 class FileWriteStream; 70 71 // memorybuffer.h 72 73 template <typename Allocator> 74 struct GenericMemoryBuffer; 75 76 typedef GenericMemoryBuffer<CrtAllocator> MemoryBuffer; 77 78 // memorystream.h 79 80 struct MemoryStream; 81 82 // reader.h 83 84 template<typename Encoding, typename Derived> 85 struct BaseReaderHandler; 86 87 template <typename SourceEncoding, typename TargetEncoding, typename StackAllocator> 88 class GenericReader; 89 90 typedef GenericReader<UTF8<char>, UTF8<char>, CrtAllocator> Reader; 91 92 // writer.h 93 94 template<typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator, unsigned writeFlags> 95 class Writer; 96 97 // prettywriter.h 98 99 template<typename OutputStream, typename SourceEncoding, typename TargetEncoding, typename StackAllocator, unsigned writeFlags> 100 class PrettyWriter; 101 102 // document.h 103 104 template <typename Encoding, typename Allocator> 105 struct GenericMember; 106 107 template <bool Const, typename Encoding, typename Allocator> 108 class GenericMemberIterator; 109 110 template<typename CharType> 111 struct GenericStringRef; 112 113 template <typename Encoding, typename Allocator> 114 class GenericValue; 115 116 typedef GenericValue<UTF8<char>, MemoryPoolAllocator<CrtAllocator> > Value; 117 118 template <typename Encoding, typename Allocator, typename StackAllocator> 119 class GenericDocument; 120 121 typedef GenericDocument<UTF8<char>, MemoryPoolAllocator<CrtAllocator>, CrtAllocator> Document; 122 123 // pointer.h 124 125 template <typename ValueType, typename Allocator> 126 class GenericPointer; 127 128 typedef GenericPointer<Value, CrtAllocator> Pointer; 129 130 // schema.h 131 132 template <typename SchemaDocumentType> 133 class IGenericRemoteSchemaDocumentProvider; 134 135 template <typename ValueT, typename Allocator> 136 class GenericSchemaDocument; 137 138 typedef GenericSchemaDocument<Value, CrtAllocator> SchemaDocument; 139 typedef IGenericRemoteSchemaDocumentProvider<SchemaDocument> IRemoteSchemaDocumentProvider; 140 141 template < 142 typename SchemaDocumentType, 143 typename OutputHandler, 144 typename StateAllocator> 145 class GenericSchemaValidator; 146 147 typedef GenericSchemaValidator<SchemaDocument, BaseReaderHandler<UTF8<char>, void>, CrtAllocator> SchemaValidator; 148 149 RAPIDJSON_NAMESPACE_END 150 151 #endif // RAPIDJSON_RAPIDJSONFWD_H_ 152