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()));
}
}