lestes::msg::report_filter Class Reference

Report filter. More...

#include <report_filter.hh>

Inheritance diagram for lestes::msg::report_filter:

lestes::std::object lestes::std::mem::keystone lestes::msg::report_cache lestes::msg::report_end lestes::msg::report_error_flag lestes::msg::report_kind_filter lestes::msg::report_origin_filter lestes::msg::report_ostream List of all members.

Public Member Functions

virtual void process (const ptr< message > &a_message, const ptr< source_location > &a_location) override
 Processes a report.
ptr< report_filteroutput_get (void) const
 Returns output.

Protected Member Functions

 report_filter (void)
 Creates a filter with no output.
 report_filter (const ptr< report_filter > &a_output)
 Creates a filter with output.
void process_output (const ptr< message > &a_message, const ptr< source_location > &a_location)
 Processes a report by output.

Private Member Functions

 report_filter (const report_filter &)
 Hides copy constructor.
report_filteroperator= (const report_filter &)
 Hides assignment operator.

Private Attributes

srp< report_filteroutput
 The output to pass reports to.

Detailed Description

Report filter.

Represents abstract filter of reported messages with location. Each inherited filter is intended to either perform an optional transformation on a report and call process_output(), or filter it out by not calling process_output(). Individual filters' create methods should reserve first parameter to specifying output, followed by other specific parameters, to enable easy chaining of filters.

Definition at line 58 of file report_filter.hh.


Constructor & Destructor Documentation

lestes::msg::report_filter::report_filter ( void   )  [protected]

Creates a filter with no output.

Creates a filter, initializes with no output.

Postcondition:
output_get() == NULL

Definition at line 46 of file report_filter.cc.

00046                                 :
00047         output(NULL)
00048 {
00049 }

lestes::msg::report_filter::report_filter ( const ptr< report_filter > &  a_output  )  [protected]

Creates a filter with output.

Creates a filter, initializes with output.

Precondition:
a_output != NULL
Postcondition:
output_get() == a_output
Parameters:
a_output The output of the filter.

Definition at line 57 of file report_filter.cc.

00057                                                               :
00058         output(a_output)
00059 {
00060 }

lestes::msg::report_filter::report_filter ( const report_filter  )  [private]

Hides copy constructor.


Member Function Documentation

virtual void lestes::msg::report_filter::process ( const ptr< message > &  a_message,
const ptr< source_location > &  a_location 
) [pure virtual]

Processes a report.

Implemented in lestes::msg::report_cache, lestes::msg::report_end, lestes::msg::report_error_flag, lestes::msg::report_kind_filter, lestes::msg::report_origin_filter, and lestes::msg::report_ostream.

ptr< report_filter > lestes::msg::report_filter::output_get ( void   )  const

Returns output.

Returns output of this filter.

Returns:
The output to pass processed reports to.

Definition at line 66 of file report_filter.cc.

References output.

00067 {
00068         return output;
00069 }

void lestes::msg::report_filter::process_output ( const ptr< message > &  a_message,
const ptr< source_location > &  a_location 
) [protected]

Processes a report by output.

Processes a report by output.

Precondition:
a_message != NULL

a_location != NULL

output != NULL

Parameters:
a_message The message to pass to the output.
a_location The location to pass to the output.

Definition at line 79 of file report_filter.cc.

References lassert, and output.

Referenced by lestes::msg::report_ostream::process(), lestes::msg::report_origin_filter::process(), lestes::msg::report_kind_filter::process(), lestes::msg::report_error_flag::process(), and lestes::msg::report_cache::process().

00081 {
00082         lassert(a_message);
00083         lassert(a_location);
00084 
00085         lassert(output);
00086         output->process(a_message,a_location);
00087 }

report_filter& lestes::msg::report_filter::operator= ( const report_filter  )  [private]

Hides assignment operator.


Member Data Documentation

srp<report_filter> lestes::msg::report_filter::output [private]

The output to pass reports to.

Definition at line 75 of file report_filter.hh.

Referenced by output_get(), and process_output().


The documentation for this class was generated from the following files:
Generated on Mon Feb 12 18:25:54 2007 for lestes by doxygen 1.5.1-20070107