fsf::CActiveFilterBase Class Reference
[Filters]

The active filter base class. More...

#include <FsfFilter.h>

Inherits fsf::CFilter.

Inherited by fsf::CActiveFilter< N >.

Collaboration diagram for fsf::CActiveFilterBase:

Collaboration graph
[legend]

List of all members.

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 CActiveFilterBaseclone () 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)


Detailed Description

The active filter base class.

Constructor & Destructor Documentation

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.


Member Function Documentation

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 >.


The documentation for this class was generated from the following files:

Generated on Thu Oct 21 11:47:37 2010 for MFSM by  doxygen 1.5.9