程序代写代做代考 c++ ECS 36b Homework #6 (programming, 12% base + 4% ​bonus​) Due: (original) ​Thursday, June 4t​ h​, 2020, 11:59 p.m. (​ extended) Monday, June 8t​ h,​ 2020 Part 1 of HW#6​ 􏰀 (12%)

ECS 36b Homework #6 (programming, 12% base + 4% ​bonus​) Due: (original) ​Thursday, June 4t​ h​, 2020, 11:59 p.m. (​ extended) Monday, June 8t​ h,​ 2020 Part 1 of HW#6​ 􏰀 (12%)
For this homework, you will build ​three​ C++ programs, h​ w6server​, ​hw6update​ and ​hw6search​ ​(the latter two were derived from ​hw6client​), based on the following JSON RPC specification: http://cyrus.cs.ucdavis.edu/sfelixwu/ecs36b/s2020/ecs36b_hw6.json​, which includes two RPC calls, (1) update(​std::string post_json_str​)​, and (2) ​search(​std::string keyword​)​.​ The details are given below:
update(​std
::string post_json_str​)​ ​takes only one argument, which is a JSON string representing a POST. Your ​hw6server​ program receives it and performs the following actions:
1. check if the ID of the post already exists. Please note that this post might appear as a C++ Post object with the same ID, or as a Post JSON file for the same ID at the server side.
2. If the Post doesn’t exist yet, the server program will create a C++ Post object for this JSON Post
3. If this Post already exists, then this newly received ​post_json_str​ will be merged into the original Post, similar to
hw5merge().
4. In either case, this newly created or merged post will be sent back to the caller client, again in Post JSON format as the response. Also, this new Post will be saved by the server in the JSON file format with the same ID as part of the file name. In other words, now this Post is a Persistent C++ Object.
search(​std::string keyword​)​take only one argument, which is a JSON formatted search key word. For example, {“keyword”: “Patrick Jane”}​. When the server ​hw6server​ receives this call, it will gather all the existing posts containing the same key (each post has a vector of key strings). Then, it will put all the gathered posts into a JSON array (which, BTW, is still a JSON) and sends it back to the client.
For testing your programs, ​a sequence of calls or actions have been attached to THIS document​ (either ​update​ or search​, and program restarts), and the expected JSON results from both the client and server sides.