#include <FsfFilter.h>
Inherits fsf::CFilter.
Inherited by fsf::CActiveFilter< N >.
Public Member Functions | |
Creators | |
CActiveFilterBase () | |
0-parameter constructor | |
CActiveFilterBase (const std::string &strName, long nFilterID=-1, bool bOptional=false) | |
3-parameter constructor: target name, filter ID, optional flag | |
CActiveFilterBase (const CActiveFilterBase &f) | |
Copy constructor. | |
virtual | ~CActiveFilterBase () |
Virtual destructor. | |
virtual CActiveFilterBase * | clone () const =0 |
Cloning: necessary for runtime polymorphism This is a pure virtual function that must be overriden by derived classes. | |
Accessors | |
void | getChildren (std::list< CActiveFilterBase * > &listFilters) |
Gets a list of pointers to this filter's subfilters. | |
Manipulators | |
void | addChild (CActiveFilterBase *pFilter) |
Adds argument active filter to this filter's list of subfilters. | |
Local matching | |
virtual bool | testType (CNode *pNode) |
Tests whether the agument's node type is compatible with this filter's node type. | |
Filtering functions | |
These functions should not be virtual, and do not belong in parent class because they have different implementations and semantics in active and passive filters.
For active filtering, no need to use handles because nodes cannot be deleted from active pulse. The filter must be globally locked before any of the following functions can be called (no local lock). | |
bool | filter (ActiveHandleList &listHandles, CNode *pRoot) |
Multiple wildcard match. | |
bool | filterExact (ActiveHandleList &listHandles, CNode *pRoot) |
bool | filterWildcard (ActiveHandleList &listHandles, CNode *pRoot) |
bool | matchInRootListExact (ActiveHandleList &listHandles, std::list< CNode * > &listNodes) |
bool | matchInRootListWildcard (ActiveHandleList &listHandles, std::list< CNode * > &listNodes) |
bool | matchInRootList (ActiveHandleList &listHandles, std::list< CNode * > &listNodes) |
bool | matchInListExact (ActiveHandleList &listHandles, std::list< CNode * > &listNodes, std::list< CNode * >::iterator &it) |
bool | matchInListWildcard (ActiveHandleList &listHandles, std::list< CNode * > &listNodes, std::list< CNode * >::iterator &it) |
bool | matchInList (ActiveHandleList &listHandles, std::list< CNode * > &listNodes, std::list< CNode * >::iterator &it) |
bool | matchInListExact (ActiveHandleList &listHandles, std::list< CNode * > &listNodes) |
bool | matchInListWildcard (ActiveHandleList &listHandles, std::list< CNode * > &listNodes) |
bool | matchInList (ActiveHandleList &listHandles, std::list< CNode * > &listNodes) |
bool | matchNodeExact (ActiveHandleList &listHandles, CNode *pNode) |
One match only (no wildcard). | |
bool | matchNodeWildcard (ActiveHandleList &listHandles, CNode *pNode) |
Multiple wildcard matches. | |
bool | matchSubnodes (std::list< CActiveFilterBase * > &listFilters, std::list< CNode * > &listNodes, ActiveHandleList &listHandles) |
bool | matchNode (ActiveHandleList &listHandles, CNode *pNode) |
fsf::CActiveFilterBase::CActiveFilterBase | ( | ) | [inline] |
0-parameter constructor
fsf::CActiveFilterBase::CActiveFilterBase | ( | const std::string & | strName, | |
long | nFilterID = -1 , |
|||
bool | bOptional = false | |||
) | [inline] |
3-parameter constructor: target name, filter ID, optional flag
CActiveFilterBase::CActiveFilterBase | ( | const CActiveFilterBase & | f | ) |
Copy constructor.
CActiveFilterBase::~CActiveFilterBase | ( | ) | [virtual] |
Virtual destructor.
void fsf::CActiveFilterBase::addChild | ( | CActiveFilterBase * | pFilter | ) | [inline] |
Adds argument active filter to this filter's list of subfilters.
virtual CActiveFilterBase* fsf::CActiveFilterBase::clone | ( | ) | const [pure virtual] |
Cloning: necessary for runtime polymorphism This is a pure virtual function that must be overriden by derived classes.
Implemented in fsf::CActiveFilter< N >.
bool CActiveFilterBase::filter | ( | ActiveHandleList & | listHandles, | |
CNode * | pRoot | |||
) |
Multiple wildcard match.
listHandles is a list of matches (one exact match is a list of one handle) Match node returns a list of matches.
bool CActiveFilterBase::filterExact | ( | ActiveHandleList & | listHandles, | |
CNode * | pRoot | |||
) |
bool CActiveFilterBase::filterWildcard | ( | ActiveHandleList & | listHandles, | |
CNode * | pRoot | |||
) |
void fsf::CActiveFilterBase::getChildren | ( | std::list< CActiveFilterBase * > & | listFilters | ) | [inline] |
Gets a list of pointers to this filter's subfilters.
bool fsf::CActiveFilterBase::matchInList | ( | ActiveHandleList & | listHandles, | |
std::list< CNode * > & | listNodes | |||
) | [inline] |
bool fsf::CActiveFilterBase::matchInList | ( | ActiveHandleList & | listHandles, | |
std::list< CNode * > & | listNodes, | |||
std::list< CNode * >::iterator & | it | |||
) | [inline] |
bool fsf::CActiveFilterBase::matchInListExact | ( | ActiveHandleList & | listHandles, | |
std::list< CNode * > & | listNodes | |||
) |
bool fsf::CActiveFilterBase::matchInListExact | ( | ActiveHandleList & | listHandles, | |
std::list< CNode * > & | listNodes, | |||
std::list< CNode * >::iterator & | it | |||
) |
bool fsf::CActiveFilterBase::matchInListWildcard | ( | ActiveHandleList & | listHandles, | |
std::list< CNode * > & | listNodes | |||
) |
bool fsf::CActiveFilterBase::matchInListWildcard | ( | ActiveHandleList & | listHandles, | |
std::list< CNode * > & | listNodes, | |||
std::list< CNode * >::iterator & | it | |||
) |
bool fsf::CActiveFilterBase::matchInRootList | ( | ActiveHandleList & | listHandles, | |
std::list< CNode * > & | listNodes | |||
) | [inline] |
bool fsf::CActiveFilterBase::matchInRootListExact | ( | ActiveHandleList & | listHandles, | |
std::list< CNode * > & | listNodes | |||
) |
bool fsf::CActiveFilterBase::matchInRootListWildcard | ( | ActiveHandleList & | listHandles, | |
std::list< CNode * > & | listNodes | |||
) |
bool fsf::CActiveFilterBase::matchNode | ( | ActiveHandleList & | listHandles, | |
CNode * | pNode | |||
) | [inline] |
bool CActiveFilterBase::matchNodeExact | ( | ActiveHandleList & | listHandles, | |
CNode * | pNode | |||
) |
One match only (no wildcard).
Optional filters allowed. Recursive bottom-up construction of handle hierarchy.
bool CActiveFilterBase::matchNodeWildcard | ( | ActiveHandleList & | listHandles, | |
CNode * | pNode | |||
) |
Multiple wildcard matches.
Optional filters allowed. All matches are returned. Recursive bottom-up construction of handle hierarchy.
bool fsf::CActiveFilterBase::matchSubnodes | ( | std::list< CActiveFilterBase * > & | listFilters, | |
std::list< CNode * > & | listNodes, | |||
ActiveHandleList & | listHandles | |||
) |
virtual bool fsf::CActiveFilterBase::testType | ( | CNode * | pNode | ) | [inline, virtual] |
Tests whether the agument's node type is compatible with this filter's node type.
Reimplemented in fsf::CActiveFilter< N >.