| | |
| | | std::unordered_map<std::string, book::Book> recoverBook() |
| | | { |
| | | std::unordered_map<std::string, book::Book> bs; |
| | | std::ifstream sampleFile("../data.test"); |
| | | std::stringstream ss; |
| | | ss << sampleFile.rdbuf(); |
| | | // httplib::Client cli("http://" + server); |
| | | // auto res = cli.Get("/recover"); |
| | | // std::ifstream sampleFile("../data.test"); |
| | | // std::stringstream ss; |
| | | // ss << sampleFile.rdbuf(); |
| | | httplib::Client cli("http://" + server); |
| | | auto res = cli.Get("/recover"); |
| | | std::string l; |
| | | l = ss.str(); |
| | | // l = ss.str(); |
| | | l = res->body; |
| | | std::queue<json::Message*> a(json::parse(l)); |
| | | while (!a.empty()) { |
| | | protocol::handleMessage(bs, a.front()); |
| | |
| | | if (message->side == book::Buy) { |
| | | for (std::size_t i = 0; i < bs[message->product].bidSide.size(); i++) { |
| | | if (bs[message->product].bidSide[i].id == message->id) { |
| | | bs[message->product].bidSide[i] = bs[message->product].bidSide.back(); |
| | | bs[message->product].bidSide.erase(bs[message->product].bidSide.end()); |
| | | bs[message->product].bidSide[i] = |
| | | bs[message->product].bidSide.back(); |
| | | bs[message->product].bidSide.pop_back(); |
| | | std::make_heap(bs[message->product].bidSide.begin(), |
| | | bs[message->product].bidSide.end(), |
| | | std::less<book::Level>()); |
| | |
| | | } else { |
| | | for (std::size_t i = 0; i < bs[message->product].askSide.size(); i++) { |
| | | if (bs[message->product].askSide[i].id == message->id) { |
| | | bs[message->product].askSide[i] = bs[message->product].askSide.back(); |
| | | bs[message->product].askSide.erase(bs[message->product].askSide.end()); |
| | | bs[message->product].askSide[i] = |
| | | bs[message->product].askSide.back(); |
| | | bs[message->product].askSide.pop_back(); |
| | | std::make_heap(bs[message->product].askSide.begin(), |
| | | bs[message->product].askSide.end(), |
| | | std::greater<book::Level>()); |