Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards


Class template file_name_composer_adapter



// In header: <boost/log/sinks/text_multifile_backend.hpp>

template<typename FormatterT> 
class file_name_composer_adapter {
  // types
  typedef filesystem::path                             result_type;       // Functor result type. 
  typedef result_type::string_type::value_type         native_char_type;  // File name character type. 
  typedef FormatterT                                   formatter_type;    // The adopted formatter type. 
  typedef basic_formatting_ostream< native_char_type > stream_type;       // Formatting stream type. 

  // construct/copy/destruct
  explicit file_name_composer_adapter(formatter_type const &, 
                                      std::locale const & = std::locale());
  file_name_composer_adapter(file_name_composer_adapter const &);
  file_name_composer_adapter & operator=(file_name_composer_adapter const &);

  // public member functions
  result_type operator()(record_view const &) const;


An adapter class that allows to use regular formatters as file name generators.

file_name_composer_adapter public construct/copy/destruct

  1. explicit file_name_composer_adapter(formatter_type const & formatter, 
                                        std::locale const & loc = std::locale());

    Initializing constructor

  2. file_name_composer_adapter(file_name_composer_adapter const & that);

    Copy constructor

  3. file_name_composer_adapter & 
    operator=(file_name_composer_adapter const & that);


file_name_composer_adapter public member functions

  1. result_type operator()(record_view const & rec) const;

    The operator generates a file name based on the log record