From b010f388d10a61cfe2b8640ca9e88e8f0c725b7f Mon Sep 17 00:00:00 2001 From: Milo Yip Date: Sat, 23 Apr 2016 20:11:05 +0800 Subject: [PATCH] Change FilterKeyHandler from struct to class Also disable copy constructor/assignment operator --- example/filterkey/filterkey.cpp | 9 +++++++-- example/filterkeydom/filterkeydom.cpp | 12 ++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/example/filterkey/filterkey.cpp b/example/filterkey/filterkey.cpp index 1416362..c34a050 100644 --- a/example/filterkey/filterkey.cpp +++ b/example/filterkey/filterkey.cpp @@ -15,7 +15,8 @@ using namespace rapidjson; // This handler forwards event into an output handler, with filtering the descendent events of specified key. template -struct FilterKeyHandler { +class FilterKeyHandler { +public: typedef char Ch; FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) : @@ -87,12 +88,16 @@ struct FilterKeyHandler { return outputHandler_.EndArray(elementCount) && EndValue(); } +private: + FilterKeyHandler(const FilterKeyHandler&); + FilterKeyHandler& operator=(const FilterKeyHandler&); + bool EndValue() { if (filterValueDepth_ == 1) // Just at the end of value after filtered key filterValueDepth_ = 0; return true; } - + OutputHandler& outputHandler_; const char* keyString_; const SizeType keyLength_; diff --git a/example/filterkeydom/filterkeydom.cpp b/example/filterkeydom/filterkeydom.cpp index aba50bd..cd6119f 100644 --- a/example/filterkeydom/filterkeydom.cpp +++ b/example/filterkeydom/filterkeydom.cpp @@ -16,7 +16,8 @@ using namespace rapidjson; // This handler forwards event into an output handler, with filtering the descendent events of specified key. template -struct FilterKeyHandler { +class FilterKeyHandler { +public: typedef char Ch; FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) : @@ -88,12 +89,16 @@ struct FilterKeyHandler { return outputHandler_.EndArray(elementCount) && EndValue(); } +private: + FilterKeyHandler(const FilterKeyHandler&); + FilterKeyHandler& operator=(const FilterKeyHandler&); + bool EndValue() { if (filterValueDepth_ == 1) // Just at the end of value after filtered key filterValueDepth_ = 0; return true; } - + OutputHandler& outputHandler_; const char* keyString_; const SizeType keyLength_; @@ -122,6 +127,9 @@ public: const ParseResult& GetParseResult() const { return parseResult_; } private: + FilterKeyReader(const FilterKeyReader&); + FilterKeyReader& operator=(const FilterKeyReader&); + InputStream& is_; const char* keyString_; const SizeType keyLength_;