## Struct template filter_factory

boost::log::filter_factory

## Synopsis

    // In header: <boost/log/utility/setup/filter_parser.hpp>

    template<typename CharT>
    struct filter_factory {
      // types
      typedef CharT                          char_type;    // Character type.
      typedef std::basic_string< char_type > string_type;  // String type.

      // construct/copy/destruct
      filter_factory() = default;
      filter_factory(filter_factory const &) = delete;
      filter_factory & operator=(filter_factory const &) = delete;
      ~filter_factory();

      // public member functions
      virtual filter on_exists_test(attribute_name const &);
      virtual filter
      on_equality_relation(attribute_name const &, string_type const &);
      virtual filter
      on_inequality_relation(attribute_name const &, string_type const &);
      virtual filter on_less_relation(attribute_name const &, string_type const &);
      virtual filter
      on_greater_relation(attribute_name const &, string_type const &);
      virtual filter
      on_less_or_equal_relation(attribute_name const &, string_type const &);
      virtual filter
      on_greater_or_equal_relation(attribute_name const &, string_type const &);
      virtual filter
      on_custom_relation(attribute_name const &, string_type const &,
                         string_type const &);
    };

## Description

The interface class for all filter factories.

### `filter_factory` public construct/copy/destruct

1.     filter_factory() = default;

   Default constructor

2.     filter_factory(filter_factory const &) = delete;

3.     filter_factory & operator=(filter_factory const &) = delete;

4.     ~filter_factory();

   Virtual destructor

### `filter_factory` public member functions

1.     virtual filter on_exists_test(attribute_name const & name);

   The callback for filter for the attribute existence test

2.     virtual filter
       on_equality_relation(attribute_name const & name, string_type const & arg);

   The callback for equality relation filter

3.     virtual filter
       on_inequality_relation(attribute_name const & name, string_type const & arg);

   The callback for inequality relation filter

4.     virtual filter
       on_less_relation(attribute_name const & name, string_type const & arg);

   The callback for less relation filter

5.     virtual filter
       on_greater_relation(attribute_name const & name, string_type const & arg);

   The callback for greater relation filter

6.     virtual filter
       on_less_or_equal_relation(attribute_name const & name,
                                 string_type const & arg);

   The callback for less or equal relation filter

7.     virtual filter
       on_greater_or_equal_relation(attribute_name const & name,
                                    string_type const & arg);

   The callback for greater or equal relation filter

8.     virtual filter
       on_custom_relation(attribute_name const & name, string_type const & rel,
                          string_type const & arg);

   The callback for custom relation filter