From 29ae04e40d80a6a840daf8926bcd7fe94de319f7 Mon Sep 17 00:00:00 2001 From: 3lswear Date: Sat, 12 Feb 2022 00:30:50 +0300 Subject: [PATCH] feat(parser): get config file from arg --- Makefile | 2 +- src/Server/Server.cpp | 4 ++-- src/Server/Server.hpp | 2 +- src/config/TOMLParser.cpp | 2 +- src/config/TOMLParser.hpp | 2 +- src/config/Tokenizer.cpp | 5 +++-- src/config/Tokenizer.hpp | 2 +- src/config/parse.cpp | 4 ++-- src/config/parse.hpp | 2 +- src/main.cpp | 2 +- 10 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 4864302..093fc02 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,6 @@ re: $(MAKE) all run: $(NAME) - ASAN_OPTIONS=detect_leaks=0 ./$(NAME) + ASAN_OPTIONS=detect_leaks=0 ./$(NAME) $(filter-out $@,$(MAKECMDGOALS)) .PHONY: all clean fclean re diff --git a/src/Server/Server.cpp b/src/Server/Server.cpp index 5c608a7..745f012 100644 --- a/src/Server/Server.cpp +++ b/src/Server/Server.cpp @@ -34,9 +34,9 @@ void Server::print_epoll_events(unsigned int events) //----------------------------------------------Send-------------------------------------------------------------------------------------------- //----------------------------------------------Configuration----------------------------------------------------------------------------------- -void Server::readConfig(void) +void Server::readConfig(char *filename) { - TOMLMap *root = parse(); + TOMLMap *root = parse(filename); /* TOMLMap *map; */ diff --git a/src/Server/Server.hpp b/src/Server/Server.hpp index f0495a9..32acb5a 100644 --- a/src/Server/Server.hpp +++ b/src/Server/Server.hpp @@ -56,7 +56,7 @@ class Server Server(); Server(std::string path); - void readConfig(void); + void readConfig(char *filename); void setupConfig(void); void start(void); void end(void); diff --git a/src/config/TOMLParser.cpp b/src/config/TOMLParser.cpp index bb2316c..42630fe 100644 --- a/src/config/TOMLParser.cpp +++ b/src/config/TOMLParser.cpp @@ -25,7 +25,7 @@ namespace config { - TOMLParser::TOMLParser(const std::string filename) : tokenizer(filename) + TOMLParser::TOMLParser(char *filename) : tokenizer(filename) {}; void TOMLParser::processMap(void) diff --git a/src/config/TOMLParser.hpp b/src/config/TOMLParser.hpp index 114fe4f..98833fb 100644 --- a/src/config/TOMLParser.hpp +++ b/src/config/TOMLParser.hpp @@ -23,7 +23,7 @@ namespace config toml_node *map_node, toml_node::e_type type); public: - TOMLParser(const std::string filename); + TOMLParser(char *filename); TOMLMap *parse(void); toml_node *parseMap(void); diff --git a/src/config/Tokenizer.cpp b/src/config/Tokenizer.cpp index e46d931..c639425 100644 --- a/src/config/Tokenizer.cpp +++ b/src/config/Tokenizer.cpp @@ -38,12 +38,13 @@ namespace config else return (false); } - Tokenizer::Tokenizer(std::string filename) + Tokenizer::Tokenizer(char *filename) { - file.open(filename.c_str(), std::ios::in); + file.open(filename, std::ios::in); if (!file.good()) { std::cerr << "file didn't open" << std::endl; + throw std::logic_error("file didnt open"); } } bool Tokenizer::firstToken() diff --git a/src/config/Tokenizer.hpp b/src/config/Tokenizer.hpp index eec6321..08e7114 100644 --- a/src/config/Tokenizer.hpp +++ b/src/config/Tokenizer.hpp @@ -49,7 +49,7 @@ namespace config e_token last_token; public: - Tokenizer(std::string filename); + Tokenizer(char *filename); char getWithoutWhiteSpace(); struct s_token getToken(); bool hasMoreTokens(); diff --git a/src/config/parse.cpp b/src/config/parse.cpp index 7f9adae..ef86d36 100644 --- a/src/config/parse.cpp +++ b/src/config/parse.cpp @@ -38,9 +38,9 @@ namespace config } } -TOMLMap *parse(void) +TOMLMap *parse(char *filename) { - std::string filename = "config/tester.toml"; + // std::string fiцename = "config/simple.toml"; config::TOMLParser parser(filename); TOMLMap *root = parser.parse(); /* config::display(root); */ diff --git a/src/config/parse.hpp b/src/config/parse.hpp index 72c0067..5b0e1c2 100644 --- a/src/config/parse.hpp +++ b/src/config/parse.hpp @@ -7,7 +7,7 @@ #include "TOMLNode.hpp" #include "TOMLParser.hpp" -TOMLMap *parse(void); +TOMLMap *parse(char *filename); void display(TOMLMap *config); #endif diff --git a/src/main.cpp b/src/main.cpp index 84f3351..be96849 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,7 +10,7 @@ int main(int argc, char **argv) Server server; - server.readConfig(); + server.readConfig(argv[1]); server.setupConfig(); server.start(); server.end();