Loading src/ipc-listener.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -85,7 +85,7 @@ class ipc_listener { }; public: ipc_listener(const char* socket_file, callback_t callback) ipc_listener(const std::string& socket_file, callback_t callback) : m_acceptor(m_ios, ba::local::stream_protocol::endpoint(socket_file)), m_socket(m_ios), m_callback(callback) { Loading src/logger.hpp +30 −5 Original line number Diff line number Diff line Loading @@ -67,30 +67,55 @@ public: } template <typename... Args> void info(const char* fmt, const Args&... args) { inline void info(const char* fmt, const Args&... args) { m_internal_logger->info(fmt, args...); } template <typename... Args> void debug(const char* fmt, const Args&... args) { inline void debug(const char* fmt, const Args&... args) { m_internal_logger->debug(fmt, args...); } template <typename... Args> void warn(const char* fmt, const Args&... args) { inline void warn(const char* fmt, const Args&... args) { m_internal_logger->warn(fmt, args...); } template <typename... Args> void error(const char* fmt, const Args&... args) { inline void error(const char* fmt, const Args&... args) { m_internal_logger->error(fmt, args...); } template <typename... Args> void critical(const char* fmt, const Args&... args) { inline void critical(const char* fmt, const Args&... args) { m_internal_logger->critical(fmt, args...); } template <typename T> inline void info(const T& msg) { m_internal_logger->info(msg); } template <typename T> inline void debug(const T& msg) { m_internal_logger->debug(msg); } template <typename T> inline void warn(const T& msg) { m_internal_logger->warn(msg); } template <typename T> inline void error(const T& msg) { m_internal_logger->error(msg); } template <typename T> inline void critical(const T& msg) { m_internal_logger->critical(msg); } private: std::shared_ptr<spdlog::logger> m_internal_logger; std::string m_type; Loading src/main.cpp +6 −13 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ namespace bpo = boost::program_options; int main(int argc, char* argv[]){ bool run_in_foreground = true; bool run_in_foreground = !defaults::daemonize; // declare a group of options that will be allowed only on the command line bpo::options_description generic("Allowed options"); Loading @@ -56,18 +56,11 @@ int main(int argc, char* argv[]){ settings.load("norns.json"); // if (vm.count("f")) { // std::cout << "Compression level was set to " << vm["foreground"].as<bool>() << ".\n"; std::cout << "Compression level was set to " << run_in_foreground << ".\n"; // } else { // std::cout << "Compression level was not set.\n"; // } settings.m_daemonize = !run_in_foreground; exit(0); urd daemon; daemon.set_configuration(settings); daemon.run(); ::unlink(urd::SOCKET_FILE); urd().run(); exit(EXIT_SUCCESS); } src/settings.cpp +24 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ #include <boost/property_tree/json_parser.hpp> #include "settings.hpp" namespace bpt = boost::property_tree; static uint64_t parse_size(const std::string& str); void config_settings::load(const std::string& filename) { Loading @@ -35,6 +37,28 @@ void config_settings::load(const std::string& filename) { bpt::read_json(filename, pt); m_progname = defaults::progname; m_running_dir = pt.get<std::string>("settings.running_dir", ""); if(m_running_dir == ""){ m_running_dir = defaults::running_dir; } m_ipc_sockfile = defaults::ipc_sockfile; m_daemon_pidfile = pt.get<std::string>("settings.pidfile", ""); if(m_daemon_pidfile == ""){ m_daemon_pidfile = defaults::daemon_pidfile; } m_workers_in_pool = pt.get<int32_t>("settings.workers", 0); if(m_workers_in_pool == 0){ m_workers_in_pool = defaults::workers_in_pool; } m_storage_path = pt.get<std::string>("settings.storage.path", ""); if(m_storage_path == "") { Loading Loading @@ -157,5 +181,4 @@ uint64_t parse_size(const std::string& str){ double value = std::stod(number_str); return std::round(value*factor); } src/settings.hpp +15 −5 Original line number Diff line number Diff line Loading @@ -25,12 +25,17 @@ #ifndef __SETTINGS_HPP__ #define __SETTINGS_HPP__ #include <thread> #include <list> #include <boost/foreach.hpp> #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/json_parser.hpp> namespace bpt = boost::property_tree; namespace defaults { static constexpr const char* progname = "urd"; static const bool daemonize = true; static constexpr const char* running_dir = "/tmp"; static constexpr const char* ipc_sockfile = "/tmp/urd.socket"; static constexpr const char* daemon_pidfile = "/tmp/urd.pid"; static const uint32_t workers_in_pool = std::thread::hardware_concurrency(); } // namespace defaults struct config_settings { Loading @@ -48,10 +53,15 @@ struct config_settings { void load(const std::string& filename); std::string m_progname; bool m_daemonize; std::string m_running_dir; std::string m_ipc_sockfile; std::string m_daemon_pidfile; uint32_t m_workers_in_pool; std::string m_storage_path; /* path to internal storage */ uint64_t m_storage_capacity; /* internal storage's max capacity */ std::list<backend> m_backends; /* list of backend descriptions */ }; #endif /* __SETTINGS_HPP__ */ Loading
src/ipc-listener.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -85,7 +85,7 @@ class ipc_listener { }; public: ipc_listener(const char* socket_file, callback_t callback) ipc_listener(const std::string& socket_file, callback_t callback) : m_acceptor(m_ios, ba::local::stream_protocol::endpoint(socket_file)), m_socket(m_ios), m_callback(callback) { Loading
src/logger.hpp +30 −5 Original line number Diff line number Diff line Loading @@ -67,30 +67,55 @@ public: } template <typename... Args> void info(const char* fmt, const Args&... args) { inline void info(const char* fmt, const Args&... args) { m_internal_logger->info(fmt, args...); } template <typename... Args> void debug(const char* fmt, const Args&... args) { inline void debug(const char* fmt, const Args&... args) { m_internal_logger->debug(fmt, args...); } template <typename... Args> void warn(const char* fmt, const Args&... args) { inline void warn(const char* fmt, const Args&... args) { m_internal_logger->warn(fmt, args...); } template <typename... Args> void error(const char* fmt, const Args&... args) { inline void error(const char* fmt, const Args&... args) { m_internal_logger->error(fmt, args...); } template <typename... Args> void critical(const char* fmt, const Args&... args) { inline void critical(const char* fmt, const Args&... args) { m_internal_logger->critical(fmt, args...); } template <typename T> inline void info(const T& msg) { m_internal_logger->info(msg); } template <typename T> inline void debug(const T& msg) { m_internal_logger->debug(msg); } template <typename T> inline void warn(const T& msg) { m_internal_logger->warn(msg); } template <typename T> inline void error(const T& msg) { m_internal_logger->error(msg); } template <typename T> inline void critical(const T& msg) { m_internal_logger->critical(msg); } private: std::shared_ptr<spdlog::logger> m_internal_logger; std::string m_type; Loading
src/main.cpp +6 −13 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ namespace bpo = boost::program_options; int main(int argc, char* argv[]){ bool run_in_foreground = true; bool run_in_foreground = !defaults::daemonize; // declare a group of options that will be allowed only on the command line bpo::options_description generic("Allowed options"); Loading @@ -56,18 +56,11 @@ int main(int argc, char* argv[]){ settings.load("norns.json"); // if (vm.count("f")) { // std::cout << "Compression level was set to " << vm["foreground"].as<bool>() << ".\n"; std::cout << "Compression level was set to " << run_in_foreground << ".\n"; // } else { // std::cout << "Compression level was not set.\n"; // } settings.m_daemonize = !run_in_foreground; exit(0); urd daemon; daemon.set_configuration(settings); daemon.run(); ::unlink(urd::SOCKET_FILE); urd().run(); exit(EXIT_SUCCESS); }
src/settings.cpp +24 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,8 @@ #include <boost/property_tree/json_parser.hpp> #include "settings.hpp" namespace bpt = boost::property_tree; static uint64_t parse_size(const std::string& str); void config_settings::load(const std::string& filename) { Loading @@ -35,6 +37,28 @@ void config_settings::load(const std::string& filename) { bpt::read_json(filename, pt); m_progname = defaults::progname; m_running_dir = pt.get<std::string>("settings.running_dir", ""); if(m_running_dir == ""){ m_running_dir = defaults::running_dir; } m_ipc_sockfile = defaults::ipc_sockfile; m_daemon_pidfile = pt.get<std::string>("settings.pidfile", ""); if(m_daemon_pidfile == ""){ m_daemon_pidfile = defaults::daemon_pidfile; } m_workers_in_pool = pt.get<int32_t>("settings.workers", 0); if(m_workers_in_pool == 0){ m_workers_in_pool = defaults::workers_in_pool; } m_storage_path = pt.get<std::string>("settings.storage.path", ""); if(m_storage_path == "") { Loading Loading @@ -157,5 +181,4 @@ uint64_t parse_size(const std::string& str){ double value = std::stod(number_str); return std::round(value*factor); }
src/settings.hpp +15 −5 Original line number Diff line number Diff line Loading @@ -25,12 +25,17 @@ #ifndef __SETTINGS_HPP__ #define __SETTINGS_HPP__ #include <thread> #include <list> #include <boost/foreach.hpp> #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/json_parser.hpp> namespace bpt = boost::property_tree; namespace defaults { static constexpr const char* progname = "urd"; static const bool daemonize = true; static constexpr const char* running_dir = "/tmp"; static constexpr const char* ipc_sockfile = "/tmp/urd.socket"; static constexpr const char* daemon_pidfile = "/tmp/urd.pid"; static const uint32_t workers_in_pool = std::thread::hardware_concurrency(); } // namespace defaults struct config_settings { Loading @@ -48,10 +53,15 @@ struct config_settings { void load(const std::string& filename); std::string m_progname; bool m_daemonize; std::string m_running_dir; std::string m_ipc_sockfile; std::string m_daemon_pidfile; uint32_t m_workers_in_pool; std::string m_storage_path; /* path to internal storage */ uint64_t m_storage_capacity; /* internal storage's max capacity */ std::list<backend> m_backends; /* list of backend descriptions */ }; #endif /* __SETTINGS_HPP__ */