Name
filter Class — Abstract base class that represents a filter in a pipeline.
Synopsis
#include "tbb/pipeline.h" class filter;
Description
A filter represents a filter in a pipeline. A filter is parallel or serial. A parallel filter can process multiple items in parallel and possibly out of order. A serial filter processes items one at a time in the original stream order. Parallel filters are preferred when viable because they permit parallel speedup. Whether the filter is serial or parallel is specified by an argument to the constructor.
The filter class should be used only in conjunction with pipeline.
Members
namespace tbb {
class filter {
protected:
filter( bool is_serial );
public:
bool is_serial() const;
virtual void* operator()( void* item ) = 0;
virtual ~filter();
};
}-
filter(bool is_serial) Effects: constructs a serial filter if
is_serialistrue, or a parallel filter ifis_serialisfalse.-
~filter() Effects: destroys the filter. The filter must not be in a pipeline; otherwise, memory might be corrupted. The debug version of the library raises an assertion failure if the filter is in a pipeline. Always clear or destroy the containing pipeline first. A way to remember this is that a pipeline acts like a container of filters, and a C++ container usually does not allow one to destroy an item while it is in the container.
-
boolis_serial()const Returns:
trueiffilterisserial; falseiffilterisparallel.-
virtual void*operator()(void *item) Effects: the derived filter should override ...