diff --git a/ServidorTFG.pro.user b/ServidorTFG.pro.user index b796cf9..217efb5 100644 --- a/ServidorTFG.pro.user +++ b/ServidorTFG.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/conexion.cpp b/conexion.cpp index 3f70b6d..7540c92 100644 --- a/conexion.cpp +++ b/conexion.cpp @@ -11,7 +11,9 @@ void conexion_client(int client); conexion::conexion(config_reader &config) { this->config=&config; - this->data=new msql_acces(); + config.get_param("db_user",msql_acces::user); + config.get_param("db_pass",msql_acces::pass); + this->data=msql_acces::get_instance(); } int conexion::create_socket(int port) diff --git a/msql_acces.cpp b/msql_acces.cpp index 2d596d3..da530d0 100644 --- a/msql_acces.cpp +++ b/msql_acces.cpp @@ -4,10 +4,21 @@ #include #include +std::string msql_acces::user="root"; +std::string msql_acces::pass="1234"; +msql_acces* msql_acces::instance=nullptr; + +msql_acces* msql_acces::get_instance(){ + if(msql_acces::instance==nullptr){ + msql_acces::instance=new msql_acces(); + } + return msql_acces::instance; +} + msql_acces::msql_acces() { driver = get_driver_instance(); - con = driver->connect("tcp://127.0.0.1:3306", "root", "1234"); + con = driver->connect("tcp://127.0.0.1:3306", msql_acces::user, msql_acces::pass); con->setSchema("bin_database"); } diff --git a/msql_acces.h b/msql_acces.h index 60ed05b..3c9f219 100644 --- a/msql_acces.h +++ b/msql_acces.h @@ -11,7 +11,9 @@ class msql_acces : public data_acces { public: - msql_acces(); + static msql_acces* get_instance(); + static std::string user; + static std::string pass; std::string get_passwd(std::string username); bool get_admin(std::string); std::list get_pinfo(); @@ -22,6 +24,8 @@ public: void create_user(std::string user, std::string pass, bool admin); void remove_user(std::string user); private: + msql_acces(); + static msql_acces* instance; sql::Connection *con; sql::Driver *driver; }; diff --git a/session_manager.cpp b/session_manager.cpp index 0a75192..8d0de0f 100644 --- a/session_manager.cpp +++ b/session_manager.cpp @@ -11,7 +11,7 @@ session_manager::session_manager(int fd) { this->fd=fd; - this->data=new msql_acces(); + this->data=msql_acces::get_instance(); } bool session_manager::validate_pass(){ diff --git a/tests.cpp b/tests.cpp index 69e522c..4a7351e 100644 --- a/tests.cpp +++ b/tests.cpp @@ -6,7 +6,9 @@ void test_basic::setUp(){ this->conf=new config_reader("config"); - this->data=new msql_acces(); + conf->get_param("db_user",msql_acces::user); + conf->get_param("db_pass",msql_acces::pass); + this->data=msql_acces::get_instance(); } void test_basic::test_initial(){