| KASKADE 7 development version
    | 
A scope guard object that automatically closes a timing section on destruction. More...
#include <timing.hh>
A scope guard object that automatically closes a timing section on destruction.
This closes timing sections in case an exception is thrown.
Example:
| Public Member Functions | |
| ScopedTimingSection () | |
| Default constructor creating a not-running unnamed section.  More... | |
| ScopedTimingSection (ScopedTimingSection const &)=delete | |
| ScopedTimingSection (Timings_Details::SectionBeacon const &sec) | |
| Move constructor.  More... | |
| ScopedTimingSection (std::string const &name, bool gather=true) | |
| Constructor using the default timer provided by Timings::instance().  More... | |
| ScopedTimingSection (std::string const &name, Timings &timer, bool gather=true) | |
| Constructor using provided timer.  More... | |
| ~ScopedTimingSection () | |
| void | restart (std::string const &name) | 
| Start new section.  More... | |
| ScopedTimingSection & | operator= (Timings_Details::SectionBeacon const &sec) | 
| Assignment from a beacon.  More... | |
| void | start () | 
| Ensures the section is timed.  More... | |
| void | stop () | 
| Ensures the section is not timed.  More... | |
| bool | isRunning () const | 
| Reports whether the section is currently timed.  More... | |
| Timings & | timer () | 
| Returns the used timer.  More... | |
| Kaskade::ScopedTimingSection::ScopedTimingSection | ( | ) | 
Default constructor creating a not-running unnamed section.
| 
 | delete | 
| Kaskade::ScopedTimingSection::ScopedTimingSection | ( | Timings_Details::SectionBeacon const & | sec | ) | 
Move constructor.
This moves the given section to the created one, leaving the given section with empty name, not running, not gathering.
| Kaskade::ScopedTimingSection::ScopedTimingSection | ( | std::string const & | name, | 
| bool | gather = true | ||
| ) | 
Constructor using the default timer provided by Timings::instance().
| name | the name of the section to be timed. | 
| gather | if false, do not gather any timings. This can be used to switch off timing collection in potentially multithreaded environments, while at the same time use ScopedTimingSection guards. The timer is started immediately. | 
| Kaskade::ScopedTimingSection::ScopedTimingSection | ( | std::string const & | name, | 
| Timings & | timer, | ||
| bool | gather = true | ||
| ) | 
Constructor using provided timer.
| timer | a timer. This has to exist during the lifetime of the scoped timing section. | 
The timer is started immediately.
| Kaskade::ScopedTimingSection::~ScopedTimingSection | ( | ) | 
| bool Kaskade::ScopedTimingSection::isRunning | ( | ) | const | 
Reports whether the section is currently timed.
| ScopedTimingSection & Kaskade::ScopedTimingSection::operator= | ( | Timings_Details::SectionBeacon const & | sec | ) | 
Assignment from a beacon.
If the section is running, it is implicitly stopped by the assignment.
| void Kaskade::ScopedTimingSection::restart | ( | std::string const & | name | ) | 
Start new section.
If the section is running, it is implicitly stopped before the newly named section is started.
| void Kaskade::ScopedTimingSection::start | ( | ) | 
Ensures the section is timed.
If the timer is not running, it is started (unless gather is set to false). Otherwise nothing is done. A running section is stopped if assigned to.
| void Kaskade::ScopedTimingSection::stop | ( | ) | 
Ensures the section is not timed.
If the timer is running, it is stopped. Otherwise nothing is done.
| Timings & Kaskade::ScopedTimingSection::timer | ( | ) | 
Returns the used timer.
Referenced by Kaskade::BDDC::matrixDomainDecommposition(), and Kaskade::uniformEmbeddedErrorEstimation().