diff --git a/libmemdb/inc/us/memdb.hpp b/libmemdb/inc/us/memdb.hpp index cc8b48a..ec3873a 100644 --- a/libmemdb/inc/us/memdb.hpp +++ b/libmemdb/inc/us/memdb.hpp @@ -8,10 +8,6 @@ -namespace shufeng2012 { - - - template class Memdb { @@ -55,10 +51,10 @@ public: - Memdb() = default; - Memdb(int max_time) : MAX_TIME(std::max(0, max_time)) {} - Memdb& operator=(const Memdb& to_be_cp_memdb) = default; - ~Memdb() = default; + explicit Memdb() = default; + explicit Memdb(int max_time) : MAX_TIME(std::max(0, max_time)) {} + explicit Memdb& operator=(const Memdb& to_be_cp_memdb) = default; + explicit ~Memdb() = default; size_t size() const { @@ -149,8 +145,4 @@ public: typename std::list ::iterator it = this -> keys[to_be_sch_k].item; return it -> value; } -}; - - - -} \ No newline at end of file +}; \ No newline at end of file diff --git a/memdb/.gitignore b/memdb/.gitignore new file mode 100644 index 0000000..839a556 --- /dev/null +++ b/memdb/.gitignore @@ -0,0 +1,72 @@ +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Linker files +*.ilk + +# Debugger Files +*.pdb + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll +*.so.* + + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +# Build directories +build/ +Build/ +build-*/ + +# CMake generated files +CMakeFiles/ +CMakeCache.txt +cmake_install.cmake +#Makefile +install_manifest.txt +compile_commands.json + +# Temporary files +*.tmp +*.log +*.bak +*.swp + +# vcpkg +vcpkg_installed/ + +# debug information files +*.dwo + +# test output & cache +Testing/ +.cache/ + +# Databases +*.db* \ No newline at end of file diff --git a/memdb/Makefile b/memdb/Makefile new file mode 100644 index 0000000..e69de29 diff --git a/memdb/README.md b/memdb/README.md new file mode 100644 index 0000000..e69de29 diff --git a/memdb/_run.sh b/memdb/_run.sh new file mode 100644 index 0000000..e69de29 diff --git a/memdb/_set.sh b/memdb/_set.sh new file mode 100644 index 0000000..e69de29 diff --git a/memdb/src/memdb.cpp b/memdb/src/memdb.cpp new file mode 100644 index 0000000..55720a8 --- /dev/null +++ b/memdb/src/memdb.cpp @@ -0,0 +1,78 @@ +#include +#include + +#include + +#include + +#include +#include + +namespace json = boost::json; + + + +struct ClientConfig { + std::string connected_host = "127.0.0.1"; + int connected_port = 8005; + std::string service_name = "db2"; + double timeout = 10.0; + bool retry_on_refused = true; +}; + +struct ServerConfig { + std::string listen_host = "127.0.0.1"; + int listen_port = 8011; + int workers = 4; + std::string db_url = "sqlite:///database.db"; +}; + +static std::string get_db_path(const std::string url) { + const std::string prefix = "sqlite:///"; + if (url.rfind(prefix, 0) == 0) { + return url.substr(prefix.size()); + } + return url; +} + + + +class DBConnection { +private: + ClientConfig __cfg; + + +public: + explicit DBConnection(const ClientConfig& cfg) : + __cfg(cfg) {} + ~DBConnection() = default; + + std::string get_from_sql(const std::string& sql_name) { + pmc::net::RpcClient client(__cfg.connected_host, __cfg.connected_port, __cfg.service_name, __cfg.timeout, __cfg.retry_on_refused); + + try { + auto data = client.call("execute", {{"action", "select"}, {"table", "memdb"}, {"where", {"sql_name", sql_name}}}); + + } catch (const std::exception& err) { + std::cerr << "[memdb] Error: 连接失败: " << err.what() << std::endl; + std::exit(1); + } + } +}; + + +class MemdbServer { + + +private: + ServerConfig __cfg; + + +public: + explicit MemdbServer(const ServerConfig& cfg) : + __cfg(cfg) {} + + void start() { + //TODO 编写 + } +}; \ No newline at end of file