// file : web/apache/service -*- C++ -*- // copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC // license : MIT; see accompanying LICENSE file #ifndef WEB_APACHE_SERVICE #define WEB_APACHE_SERVICE #include // memset() #include // getppid() #include // kill() #include #include #include #include #include // unique_ptr #include #include #include // move() #include #include #include namespace web { namespace apache { class service: ::module { public: using option_names = std::vector; // Note that the module exemplar is stored by-reference. // template service (const std::string& name, M& exemplar, option_names opts = option_names ()) : ::module { STANDARD20_MODULE_STUFF, nullptr, nullptr, nullptr, nullptr, nullptr, ®ister_hooks }, name_ (name), exemplar_ (exemplar), option_names_ (std::move (opts)) // Doesn't look like handle_ member is required at all. // handle_ (&handle_impl) { // Fill apache module directive definitions. Directives share // common name space in apache configuration file, so to prevent name // clash have to form directive name as a combination of module and // option names: -