Parma_Polyhedra_Library::Implementation::Watchdog::Handler_Flag< Flag_Base, Flag > Class Template Reference

A kind of Handler that installs a flag onto a flag-holder. More...

`#include <ppl.hh>`

Inheritance diagram for Parma_Polyhedra_Library::Implementation::Watchdog::Handler_Flag< Flag_Base, Flag >:
[legend]

## Public Member Functions

| Handler_Flag (const Flag_Base *volatile &holder, Flag &flag)
| Constructor with a given function.
virtual void | act () const
| Does its job: installs the flag onto the holder, if a flag with an higher priority has not already been installed.
Public Member Functions inherited from Parma_Polyhedra_Library::Implementation::Watchdog::Handler
virtual | ~Handler ()
| Virtual destructor.

## Detailed Description

### template<typename Flag_Base, typename Flag>
class Parma_Polyhedra_Library::Implementation::Watchdog::Handler_Flag< Flag_Base, Flag >

A kind of Handler that installs a flag onto a flag-holder.

The template class `Handler_Flag<Flag_Base, Flag>` is an handler whose job is to install a flag onto an holder for the flag. The flag is of type `Flag` and the holder is a (volatile) pointer to `Flag_Base`. Installing the flag onto the holder means making the holder point to the flag, so that it must be possible to assign a value of type `Flag*` to an entity of type `Flag_Base*`. The class `Flag` must provide the method

int priority() const

returning an integer priority associated to the flag.

The handler will install its flag onto the holder only if the holder is empty, namely, it is the null pointer, or if the holder holds a flag of strictly lower priority.

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

- ppl.hh