Reference documentation for deal.II version 9.0.0
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | Related Functions | List of all members
Algorithms::Event Class Reference

#include <deal.II/base/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< bool > flags
 

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 48 of file event.h.

Constructor & Destructor Documentation

◆ Event()

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.

Definition at line 43 of file event.cc.

Member Function Documentation

◆ assign()

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.

Definition at line 28 of file event.cc.

◆ clear()

void Algorithms::Event::clear ( )

Clear all flags

Definition at line 51 of file event.cc.

◆ all()

void Algorithms::Event::all ( )

Set all flags

Definition at line 59 of file event.cc.

◆ operator+=()

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

Add the flags of the other event

Definition at line 224 of file event.h.

◆ operator-=()

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

Clear the flags of the other event

Definition at line 239 of file event.h.

◆ test()

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 180 of file event.h.

◆ any()

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

Return true if any event is set.

Definition at line 168 of file event.h.

◆ print()

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

List the flags to a stream.

Definition at line 264 of file event.h.

◆ print_assigned()

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

List all assigned events.

Definition at line 278 of file event.h.

Friends And Related Function Documentation

◆ operator<<()

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

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

Definition at line 291 of file event.h.

Member Data Documentation

◆ all_true

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 117 of file event.h.

◆ flags

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

The actual list of events

Definition at line 122 of file event.h.

◆ names

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

The names of registered events

Definition at line 128 of file event.h.


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