mirror of
				https://github.com/RetroDECK/ES-DE.git
				synced 2025-04-10 19:15:13 +00:00 
			
		
		
		
	
		
			
	
	
		
			231 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			231 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
|   | // 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.
 | ||
|  | //
 | ||
|  | // 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"
 | ||
|  | 
 | ||
|  | #ifdef __GNUC__
 | ||
|  | RAPIDJSON_DIAG_PUSH | ||
|  | RAPIDJSON_DIAG_OFF(effc++) | ||
|  | #endif
 | ||
|  | 
 | ||
|  | 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, 0>* writer; | ||
|  | 
 | ||
|  |     // prettywriter.h
 | ||
|  |     PrettyWriter<StringBuffer, UTF8<char>, UTF8<char>, CrtAllocator, 0>* prettywriter; | ||
|  | 
 | ||
|  |     // 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/prettywriter.h"
 | ||
|  | #include "rapidjson/schema.h"   // -> pointer.h
 | ||
|  | 
 | ||
|  | typedef Transcoder<UTF8<>, UTF8<> > TranscoderUtf8ToUtf8; | ||
|  | typedef BaseReaderHandler<UTF8<>, void> BaseReaderHandlerUtf8Void; | ||
|  | 
 | ||
|  | 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(TranscoderUtf8ToUtf8)), | ||
|  | 
 | ||
|  |     // allocators.h
 | ||
|  |     crtallocator(RAPIDJSON_NEW(CrtAllocator)), | ||
|  |     memorypoolallocator(RAPIDJSON_NEW(MemoryPoolAllocator<>)), | ||
|  | 
 | ||
|  |     // stream.h
 | ||
|  |     stringstream(RAPIDJSON_NEW(StringStream)(NULL)), | ||
|  |     insitustringstream(RAPIDJSON_NEW(InsituStringStream)(NULL)), | ||
|  | 
 | ||
|  |     // 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)(NULL, 0)), | ||
|  | 
 | ||
|  |     // reader.h
 | ||
|  |     basereaderhandler(RAPIDJSON_NEW(BaseReaderHandlerUtf8Void)), | ||
|  |     reader(RAPIDJSON_NEW(Reader)), | ||
|  | 
 | ||
|  |     // writer.h
 | ||
|  |     writer(RAPIDJSON_NEW(Writer<StringBuffer>)), | ||
|  | 
 | ||
|  |     // prettywriter.h
 | ||
|  |     prettywriter(RAPIDJSON_NEW(PrettyWriter<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); | ||
|  | 
 | ||
|  |     // prettywriter.h
 | ||
|  |     RAPIDJSON_DELETE(prettywriter); | ||
|  | 
 | ||
|  |     // 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; | ||
|  | } | ||
|  | 
 | ||
|  | #ifdef __GNUC__
 | ||
|  | RAPIDJSON_DIAG_POP | ||
|  | #endif
 |