-
Notifications
You must be signed in to change notification settings - Fork 0
/
cli.cpp
41 lines (35 loc) · 1.02 KB
/
cli.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "cli.h"
#include <iostream>
CLI::CLI(DB& db) : db_(db) {}
void CLI::run() {
std::cout << "============================== \n"
"Welcome to the MemDBLite CLI. \n"
"============================== \n"
"Available commands: SET, GET, DELETE, EXIT\n\n";
std::string command;
while (true) {
std::cout << "> ";
std::cin >> command;
handleCommand(command);
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
}
void CLI::handleCommand(const std::string& command) {
if (command == "SET") {
std::string key, value;
std::cin >> key >> value;
db_.set(key, value);
} else if (command == "GET") {
std::string key;
std::cin >> key;
db_.get(key);
} else if (command == "DELETE") {
std::string key;
std::cin >> key;
db_.del(key);
} else if (command == "EXIT") {
exit(0);
} else {
std::cout << "Unknown command\n";
}
}