void RaddestDBDatabase::AddGetter()

in pwnables/raddest_db/raddest_db_database.cc [132:169]


void RaddestDBDatabase::AddGetter(uint32_t key, std::vector<std::string> & tokens) {
  if (tokens.size() < 1) return;

  std::string command = tokens[0];

  if (command == "get") {
    if (tokens.size() != 2) return;
    uint32_t get_key = std::atoi(tokens[1].c_str());
    getters_[key].push_back(std::bind(&RaddestDBDatabase::GetCallback, this, get_key, std::string(), std::string()));
  }

  if (command == "store") {
    if (tokens.size() != 4) return;
    uint32_t set_key = std::atoi(tokens[2].c_str());
    getters_[key].push_back(std::bind(&RaddestDBDatabase::SetCallback, this, set_key, tokens[3], tokens[1]));
  }

  if (command == "delete") {
    if (tokens.size() != 2) return;
    uint32_t delete_key = std::atoi(tokens[2].c_str());
    getters_[key].push_back(std::bind(&RaddestDBDatabase::DeleteCallback, this, delete_key, tokens[1], std::string()));
  }

  if (command == "empty") {
    if (tokens.size() != 1) return;
    getters_[key].push_back(std::bind(&RaddestDBDatabase::EmptyCallback, this, 0, std::string(), std::string()));
  }

  if (command == "echo") {
    if (tokens.size() != 2) return;
    getters_[key].push_back(std::bind(EchoCallback, 0, tokens[1], std::string()));
  }

  if (command == "print") {
    if (tokens.size() != 1) return;
    getters_[key].push_back(std::bind(&RaddestDBDatabase::PrintCallback, this, key, std::string(), std::string()));
  }
}