Joel Grunbaum
2022-01-10 2c515f0de70ad675b5f5d25b6a496d67d8dc0463
protocol.cpp
@@ -30,13 +30,14 @@
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());
@@ -126,8 +127,9 @@
    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>());
@@ -136,8 +138,9 @@
    } 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>());