Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | Related Functions | List of all members
Algorithms::Event Class Reference

#include <event.h>

Public Member Functions

 Event ()
 
void clear ()
 
void all ()
 
Eventoperator+= (const Event &event)
 
Eventoperator-= (const Event &event)
 
bool test (const Event &event) const
 
bool any () const
 
template<class OS >
void print (OS &os) const
 

Static Public Member Functions

static Event assign (const char *name)
 
template<class OS >
static void print_assigned (OS &os)
 

Private Attributes

bool all_true
 
std::vector< boolflags
 

Static Private Attributes

static std::vector< std::string > names
 

Related Functions

(Note that these are not member functions.)

template<class OS >
OS & operator<< (OS &o, const Event &e)
 

Detailed Description

Objects of this kind are used to notify interior applications of changes provoked by an outer loop. They are handed to the application through Operator::notify() and it is up to the actual application how to handle them.

Event is organized as an extensible binary enumerator. Every class can add its own events using assign(). A typical code example is

class A
{
static Event event;
};
Event A::event = Event::assign("Event for A");

Definition at line 49 of file event.h.

Constructor & Destructor Documentation

Algorithms::Event::Event ( )

If you forgot to store the result of assign, here is how to retrieve it knowing the name. Constructor, generating a clear Event.

Member Function Documentation

static Event Algorithms::Event::assign ( const char *  name)
static

This function registers a new event type and assigns a unique identifier to it. The result of this function should be stored for later use.

void Algorithms::Event::clear ( )

Clear all flags

void Algorithms::Event::all ( )

Set all flags

Event & Algorithms::Event::operator+= ( const Event event)
inline

Add the flags of the other event

Definition at line 236 of file event.h.

Event & Algorithms::Event::operator-= ( const Event event)
inline

Clear the flags of the other event

Definition at line 251 of file event.h.

bool Algorithms::Event::test ( const Event event) const
inline

Test whether all the flags set in the other Event are also set in this one.

Definition at line 192 of file event.h.

bool Algorithms::Event::any ( ) const
inline

Return true if any event is set.

Definition at line 180 of file event.h.

template<class OS >
void Algorithms::Event::print ( OS &  os) const
inline

List the flags to a stream.

Definition at line 276 of file event.h.

template<class OS >
void Algorithms::Event::print_assigned ( OS &  os)
inlinestatic

List all assigned events.

Definition at line 290 of file event.h.

Friends And Related Function Documentation

template<class OS >
OS & operator<< ( OS &  o,
const Event e 
)
related

Output shift operator for events. Calls Event::print().

Definition at line 304 of file event.h.

Member Data Documentation

bool Algorithms::Event::all_true
private

Sometimes, actions have to be taken by all means. Therefore, if this value is true, test() always returns true.

Definition at line 129 of file event.h.

std::vector<bool> Algorithms::Event::flags
private

The actual list of events

Definition at line 134 of file event.h.

std::vector<std::string> Algorithms::Event::names
staticprivate

The names of registered events

Definition at line 140 of file event.h.


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