upd: restructrued to avoid useless concurrency and simplify the code

This commit is contained in:
2023-12-12 15:05:42 +00:00
parent 730310ea44
commit 8232adb170
8 changed files with 45 additions and 205 deletions

View File

@ -96,7 +96,8 @@ class SessionClass {
};
namespace BookStore_ZYM {
extern std::mutex debug_Print_Mutex;
}
extern bool shut_down;
} // namespace BookStore_ZYM
void debugPrint();
template <typename... Args>
void debugPrint(Args... args) {

View File

@ -1,11 +1,14 @@
#ifndef PROTECTOR_ENGINE_H
#define PROTECTOR_ENGINE_H
#include <stack>
#include <string>
#include <vector>
class BookStoreEngineClass {
std::string config_dir;
public:
BookStoreEngineClass() = delete;
BookStoreEngineClass(std::string config_dir) : config_dir(config_dir) {}
std::vector<std::string> Execute(const std::string &cmd, std::stack<std::string> &login_stack);
};
#endif // PROTECTOR_ENGINE_H

View File

@ -1,29 +0,0 @@
#ifndef PROTECTOR_SCHEDULE_H
#define PROTECTOR_SCHEDULE_H
#include <queue>
#include <string>
#include <unordered_map>
#include "bs-utility.h"
#include "engine.h"
class BookStoreBackEndClass {
std::string config_dir;
BlockingStringStream *input_ptr;
BlockingStringStream *output_ptr;
BookStoreEngineClass *engine_ptr;
std::unordered_map<std::string, SessionClass> session_map;
std::unordered_map<std::string, std::queue<std::thread>> worker_theads_queue;
public:
BookStoreBackEndClass() = delete;
BookStoreBackEndClass(std::string config_dir, BlockingStringStream *input_ptr,
BlockingStringStream *output_ptr)
: config_dir(config_dir), input_ptr(input_ptr), output_ptr(output_ptr) {
engine_ptr = new BookStoreEngineClass(config_dir);
}
~BookStoreBackEndClass() { delete engine_ptr; }
void Run();
void PostRequest(std::string SessionToken, std::string OperationToken,
std::string AuthenticationKey, std::string cmd);
};
#endif // PROTECTOR_SCHEDULE_H