diff options
author | David Duarte <licorne@google.com> | 2023-02-14 00:58:53 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-02-14 00:58:53 +0000 |
commit | fe8d01bb832962ecda95df428cf3271c2f5edd60 (patch) | |
tree | 51fe9cb4ad39cb6bed2709c40cc78bc213267f6e /sl4n/rapidjson/example/messagereader/messagereader.cpp | |
parent | bc54b592e2c852eba1b1e7cd258b4079414aabd0 (diff) | |
parent | 06eb806d9c57012f54c3aa65c8f6be92ea458c58 (diff) | |
download | connectivity-master.tar.gz |
Remove sl4n am: 3fda33afd4 am: b5d9b35234 am: 06eb806d9cHEADandroid-14.0.0_r50android-14.0.0_r45android-14.0.0_r44android-14.0.0_r43android-14.0.0_r42android-14.0.0_r41android-14.0.0_r40android-14.0.0_r39android-14.0.0_r38android-14.0.0_r37android-14.0.0_r36android-14.0.0_r35android-14.0.0_r34android-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android-14.0.0_r27android-14.0.0_r26android-14.0.0_r25android-14.0.0_r24android-14.0.0_r23android-14.0.0_r22android-14.0.0_r21android-14.0.0_r20android-14.0.0_r19android-14.0.0_r18android-14.0.0_r17android-14.0.0_r16aml_hef_341717050aml_hef_341613000aml_hef_341512030aml_hef_341415040aml_hef_341311010aml_hef_341114030mastermainandroid14-qpr3-releaseandroid14-qpr2-s5-releaseandroid14-qpr2-s4-releaseandroid14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-releaseandroid14-qpr1-s2-releaseandroid14-qpr1-releaseandroid14-mainline-healthfitness-releaseandroid14-devandroid14-d2-s5-releaseandroid14-d2-s4-releaseandroid14-d2-s3-releaseandroid14-d2-s2-releaseandroid14-d2-s1-releaseandroid14-d2-release
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Test/connectivity/+/2371574
Change-Id: If0dd745b1fc30ad753a9ba7a87638a480423db7e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'sl4n/rapidjson/example/messagereader/messagereader.cpp')
-rw-r--r-- | sl4n/rapidjson/example/messagereader/messagereader.cpp | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/sl4n/rapidjson/example/messagereader/messagereader.cpp b/sl4n/rapidjson/example/messagereader/messagereader.cpp deleted file mode 100644 index 50255b3..0000000 --- a/sl4n/rapidjson/example/messagereader/messagereader.cpp +++ /dev/null @@ -1,96 +0,0 @@ -// Reading a message JSON with Reader (SAX-style API). -// The JSON should be an object with key-string pairs. - -#include "rapidjson/reader.h" -#include "rapidjson/error/en.h" -#include <iostream> -#include <string> -#include <map> - -using namespace std; -using namespace rapidjson; - -typedef map<string, string> MessageMap; - -#if defined(__GNUC__) -RAPIDJSON_DIAG_PUSH -RAPIDJSON_DIAG_OFF(effc++) -#endif - -struct MessageHandler - : public BaseReaderHandler<UTF8<>, MessageHandler> { - MessageHandler() : messages_(), state_(kExpectObjectStart), name_() {} - - bool StartObject() { - switch (state_) { - case kExpectObjectStart: - state_ = kExpectNameOrObjectEnd; - return true; - default: - return false; - } - } - - bool String(const char* str, SizeType length, bool) { - switch (state_) { - case kExpectNameOrObjectEnd: - name_ = string(str, length); - state_ = kExpectValue; - return true; - case kExpectValue: - messages_.insert(MessageMap::value_type(name_, string(str, length))); - state_ = kExpectNameOrObjectEnd; - return true; - default: - return false; - } - } - - bool EndObject(SizeType) { return state_ == kExpectNameOrObjectEnd; } - - bool Default() { return false; } // All other events are invalid. - - MessageMap messages_; - enum State { - kExpectObjectStart, - kExpectNameOrObjectEnd, - kExpectValue - }state_; - std::string name_; -}; - -#if defined(__GNUC__) -RAPIDJSON_DIAG_POP -#endif - -void ParseMessages(const char* json, MessageMap& messages) { - Reader reader; - MessageHandler handler; - StringStream ss(json); - if (reader.Parse(ss, handler)) - messages.swap(handler.messages_); // Only change it if success. - else { - ParseErrorCode e = reader.GetParseErrorCode(); - size_t o = reader.GetErrorOffset(); - cout << "Error: " << GetParseError_En(e) << endl;; - cout << " at offset " << o << " near '" << string(json).substr(o, 10) << "...'" << endl; - } -} - -int main() { - MessageMap messages; - - const char* json1 = "{ \"greeting\" : \"Hello!\", \"farewell\" : \"bye-bye!\" }"; - cout << json1 << endl; - ParseMessages(json1, messages); - - for (MessageMap::const_iterator itr = messages.begin(); itr != messages.end(); ++itr) - cout << itr->first << ": " << itr->second << endl; - - cout << endl << "Parse a JSON with invalid schema." << endl; - const char* json2 = "{ \"greeting\" : \"Hello!\", \"farewell\" : \"bye-bye!\", \"foo\" : {} }"; - cout << json2 << endl; - ParseMessages(json2, messages); - - return 0; -} |