Sha256: 3c04d2a22b4474ba86d53ad85046f6b44c64cce6c0dcd81ef771c2a4c7114926
Contents?: true
Size: 1.89 KB
Versions: 16
Compression:
Stored size: 1.89 KB
Contents
// // basic_logger.hpp // ~~~~~~~~~~~~~~~~ // // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #ifndef SERVICES_BASIC_LOGGER_HPP #define SERVICES_BASIC_LOGGER_HPP #include <asio.hpp> #include <boost/noncopyable.hpp> #include <string> namespace services { /// Class to provide simple logging functionality. Use the services::logger /// typedef. template <typename Service> class basic_logger : private boost::noncopyable { public: /// The type of the service that will be used to provide timer operations. typedef Service service_type; /// The native implementation type of the timer. typedef typename service_type::impl_type impl_type; /// Constructor. /** * This constructor creates a logger. * * @param context The execution context used to locate the logger service. * * @param identifier An identifier for this logger. */ explicit basic_logger(asio::execution_context& context, const std::string& identifier) : service_(asio::use_service<Service>(context)), impl_(service_.null()) { service_.create(impl_, identifier); } /// Destructor. ~basic_logger() { service_.destroy(impl_); } /// Get the io_context associated with the object. asio::io_context& get_io_context() { return service_.get_io_context(); } /// Set the output file for all logger instances. void use_file(const std::string& file) { service_.use_file(impl_, file); } /// Log a message. void log(const std::string& message) { service_.log(impl_, message); } private: /// The backend service implementation. service_type& service_; /// The underlying native implementation. impl_type impl_; }; } // namespace services #endif // SERVICES_BASIC_LOGGER_HPP
Version data entries
16 entries across 16 versions & 1 rubygems