diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-03-23 19:09:52 +0100 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-03-23 19:09:52 +0100 |
| commit | eef27810ce34d00d1d19a7ac6fbce794df4a9708 (patch) | |
| tree | 834b82942ded2b27ec6a177302cd449c0011dc5a /src/server/shared_memory_server.h | |
| parent | 03ad55130b4f0047eb64d3cc9947b98f0130623e (diff) | |
| download | BT-Programming-Assignment-eef27810ce34d00d1d19a7ac6fbce794df4a9708.tar.gz BT-Programming-Assignment-eef27810ce34d00d1d19a7ac6fbce794df4a9708.zip | |
add server-shutdown with <Ctrl+C>
Diffstat (limited to '')
| -rw-r--r-- | src/server/shared_memory_server.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/server/shared_memory_server.h b/src/server/shared_memory_server.h index 3ac375a..46005fc 100644 --- a/src/server/shared_memory_server.h +++ b/src/server/shared_memory_server.h @@ -2,6 +2,7 @@ #include "hashtable.h" #include "shared_memory.h" +#include <csignal> #include <cstring> #include <fcntl.h> #include <optional> @@ -18,11 +19,8 @@ class Server { public: /** * @brief Constructs a new hashtable and initializes a shared memory buffer. - * - * @param size The number of buckets in the hashtable. */ - Server(size_t size) - : hash_table(size) + Server() { shm_fd = shm_open(SHM_NAME, O_CREAT | O_RDWR, 0666); @@ -48,7 +46,7 @@ public: /** * @brief Unmaps and unlinks the shared memory. */ - ~Server() + void terminate_server() { munmap(shared_memory, sizeof(SharedMemory)); close(shm_fd); @@ -56,6 +54,13 @@ public: } /** + * @brief Initializes the hashtable. + * + * @param size The number of buckets in the hashtable. + */ + void initialize_hashtable(size_t size) { hash_table = HashTable<K, V>(size); } + + /** * @brief The main loop of the server. * * @details The server checks the shared memory for new requests and executes them. |