Predicates::abstract_multi_predicate< T > Struct Template Reference

#include <multi_predicates.h>

Inheritance diagram for Predicates::abstract_multi_predicate< T >:

List of all members.

Public Member Functions

virtual ~abstract_multi_predicate ()
abstract_multi_predicateoperator= (const abstract_multi_predicate &rhs)
virtual bool operator() (const T &it) const

Protected Member Functions

 abstract_multi_predicate ()
 abstract_multi_predicate (const abstract_multi_predicate &rhs)
void deep_copy (const abstract_multi_predicate &rhs)

Protected Attributes

std::vector< predicate< T > * > _predicates


Detailed Description

template<typename T>
struct Predicates::abstract_multi_predicate< T >

Definition at line 44 of file multi_predicates.h.


Constructor & Destructor Documentation

template<typename T >
virtual Predicates::abstract_multi_predicate< T >::~abstract_multi_predicate (  )  [inline, virtual]

Definition at line 47 of file multi_predicates.h.

References Predicates::abstract_multi_predicate< T >::_predicates.

00048     {
00049       // Clean-up vector
00050       for (unsigned int i=0; i<_predicates.size(); ++i)
00051         delete _predicates[i];
00052     }

template<typename T >
Predicates::abstract_multi_predicate< T >::abstract_multi_predicate (  )  [inline, protected]

Definition at line 85 of file multi_predicates.h.

00085 {}

template<typename T >
Predicates::abstract_multi_predicate< T >::abstract_multi_predicate ( const abstract_multi_predicate< T > &  rhs  )  [inline, protected]

Definition at line 88 of file multi_predicates.h.

References Predicates::abstract_multi_predicate< T >::deep_copy().

00089     {
00090       this->deep_copy(rhs);
00091     }


Member Function Documentation

template<typename T >
void Predicates::abstract_multi_predicate< T >::deep_copy ( const abstract_multi_predicate< T > &  rhs  )  [inline, protected]

Definition at line 96 of file multi_predicates.h.

References Predicates::abstract_multi_predicate< T >::_predicates.

Referenced by Predicates::abstract_multi_predicate< T >::abstract_multi_predicate(), and Predicates::abstract_multi_predicate< T >::operator=().

00097     {
00098       for (unsigned int i=0; i<rhs._predicates.size(); ++i)
00099         _predicates.push_back(rhs._predicates[i]->clone());
00100     }

template<typename T >
virtual bool Predicates::abstract_multi_predicate< T >::operator() ( const T &  it  )  const [inline, virtual]

Definition at line 68 of file multi_predicates.h.

References Predicates::abstract_multi_predicate< T >::_predicates.

00069     {
00070       for (unsigned int i=0; i<_predicates.size(); ++i)
00071         {
00072           const predicate<T>* pred = _predicates[i];
00073 
00074           libmesh_assert (pred != NULL);
00075           
00076           if ( ! (*pred)(it) )
00077             return false;
00078         }
00079       
00080       return true;
00081     }

template<typename T >
abstract_multi_predicate& Predicates::abstract_multi_predicate< T >::operator= ( const abstract_multi_predicate< T > &  rhs  )  [inline]

Definition at line 55 of file multi_predicates.h.

References Predicates::abstract_multi_predicate< T >::_predicates, and Predicates::abstract_multi_predicate< T >::deep_copy().

00056     {
00057       // First clear out the predicates vector
00058       for (unsigned int i=0; i<_predicates.size(); ++i)
00059         delete _predicates[i];
00060 
00061       // Now copy over the information from the rhs.
00062       this->deep_copy(rhs);
00063       
00064       return *this;
00065     }


Member Data Documentation


The documentation for this struct was generated from the following file:

Site Created By: libMesh Developers
Last modified: November 25 2009 03:45:17.

Hosted By:
SourceForge.net Logo