BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Scheduler Class Reference

#include <Scheduler.h>

Inheritance diagram for Scheduler:

Public Member Functions

 Scheduler ()
 ~Scheduler ()
void schedule (double deltaT, ScheduledEvent *event)
void start ()
void stop ()
bool running ()
void clear ()
GPStime elapsed_time () const
void setLog (std::ostream &out)
void endLogging ()
void printOn (std::ostream &out) const
 Scheduler ()
 ~Scheduler ()
void schedule (double deltaT, ScheduledEvent *event)
void start ()
void stop ()
bool running ()
void clear ()
GPStime elapsed_time () const
void setLog (std::ostream &out)
void endLogging ()
void printOn (std::ostream &out) const
 Scheduler ()
 ~Scheduler ()
void schedule (double deltaT, ScheduledEvent *event)
void start ()
void stop ()
bool running ()
void clear ()
GPStime elapsed_time () const
void setLog (std::ostream &out)
void endLogging ()
void printOn (std::ostream &out) const

Static Public Member Functions

static Schedulerinstance ()
static Schedulerinstance ()
static Schedulerinstance ()

Detailed Description

Constructor & Destructor Documentation

◆ Scheduler() [1/3]

Scheduler::Scheduler ( )

Definition at line 11 of file Scheduler.cxx.

11 : m_time( GPStime( 0 ) ), m_running( false ), m_log( 0 ) {
12 assert( s_instance == 0 ); // require only one
13 s_instance = this;
14}

Referenced by instance().

◆ ~Scheduler() [1/3]

Scheduler::~Scheduler ( )

Definition at line 16 of file Scheduler.cxx.

16{ clear(); }
void clear()
Definition Scheduler.cxx:17

◆ Scheduler() [2/3]

Scheduler::Scheduler ( )

◆ ~Scheduler() [2/3]

Scheduler::~Scheduler ( )

◆ Scheduler() [3/3]

Scheduler::Scheduler ( )

◆ ~Scheduler() [3/3]

Scheduler::~Scheduler ( )

Member Function Documentation

◆ clear() [1/3]

void Scheduler::clear ( )

Definition at line 17 of file Scheduler.cxx.

17 {
18 while ( !empty() )
19 {
20 iterator f = begin();
21 delete ( *f ).second;
22 erase( f );
23 }
24 m_time = 0;
25}
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")

Referenced by ~Scheduler().

◆ clear() [2/3]

void Scheduler::clear ( )

◆ clear() [3/3]

void Scheduler::clear ( )

◆ elapsed_time() [1/3]

GPStime Scheduler::elapsed_time ( ) const
inline

Definition at line 58 of file Calibration/facilities/include/facilities/Scheduler.h.

58{ return m_time; }

Referenced by printOn(), and setLog().

◆ elapsed_time() [2/3]

GPStime Scheduler::elapsed_time ( ) const
inline

Definition at line 58 of file InstallArea/x86_64-el9-gcc13-dbg/include/facilities/Scheduler.h.

58{ return m_time; }

◆ elapsed_time() [3/3]

GPStime Scheduler::elapsed_time ( ) const
inline

Definition at line 58 of file InstallArea/x86_64-el9-gcc13-opt/include/facilities/Scheduler.h.

58{ return m_time; }

◆ endLogging() [1/3]

void Scheduler::endLogging ( )

Definition at line 70 of file Scheduler.cxx.

70{ m_log = 0; }

◆ endLogging() [2/3]

void Scheduler::endLogging ( )

◆ endLogging() [3/3]

void Scheduler::endLogging ( )

◆ instance() [1/3]

Scheduler * Scheduler::instance ( )
static

Definition at line 9 of file Scheduler.cxx.

9{ return ( s_instance ) ? s_instance : new Scheduler(); }

Referenced by ScheduledEvent::schedule().

◆ instance() [2/3]

Scheduler * Scheduler::instance ( )
static

◆ instance() [3/3]

Scheduler * Scheduler::instance ( )
static

◆ printOn() [1/3]

void Scheduler::printOn ( std::ostream & out) const

Definition at line 53 of file Scheduler.cxx.

53 {
54 out << "\nScheduler stack: current time = " << elapsed_time() << std::endl;
55 out << "\ttime\tclass name\n";
56 for ( const_iterator it = begin(); it != end(); ++it )
57 {
58 std::pair<double, ScheduledEvent*> entry = *it;
59 out << "\t" << entry.first << '\t' << entry.second->name() << std::endl;
60 }
61 out << std::endl;
62}

◆ printOn() [2/3]

void Scheduler::printOn ( std::ostream & out) const

◆ printOn() [3/3]

void Scheduler::printOn ( std::ostream & out) const

◆ running() [1/3]

bool Scheduler::running ( )
inline

Definition at line 52 of file Calibration/facilities/include/facilities/Scheduler.h.

52{ return m_running; }

◆ running() [2/3]

bool Scheduler::running ( )
inline

Definition at line 52 of file InstallArea/x86_64-el9-gcc13-dbg/include/facilities/Scheduler.h.

52{ return m_running; }

◆ running() [3/3]

bool Scheduler::running ( )
inline

Definition at line 52 of file InstallArea/x86_64-el9-gcc13-opt/include/facilities/Scheduler.h.

52{ return m_running; }

◆ schedule() [1/3]

void Scheduler::schedule ( double deltaT,
ScheduledEvent * event )

Definition at line 27 of file Scheduler.cxx.

27 {
28 insert( std::make_pair( m_time + deltaT, event ) );
29}

Referenced by ScheduledEvent::schedule().

◆ schedule() [2/3]

void Scheduler::schedule ( double deltaT,
ScheduledEvent * event )

◆ schedule() [3/3]

void Scheduler::schedule ( double deltaT,
ScheduledEvent * event )

◆ setLog() [1/3]

void Scheduler::setLog ( std::ostream & out)

Definition at line 64 of file Scheduler.cxx.

64 {
65 m_log = &out;
66 out << "\nSchedule event: current time = " << elapsed_time() << std::endl;
67 out << "\ttime\tEvent\n";
68}

◆ setLog() [2/3]

void Scheduler::setLog ( std::ostream & out)

◆ setLog() [3/3]

void Scheduler::setLog ( std::ostream & out)

◆ start() [1/3]

void Scheduler::start ( )

Definition at line 31 of file Scheduler.cxx.

31 {
32 m_running = true;
33
34 while ( !empty() && m_running )
35 {
36
37 // get the entry at the head of the queue
38 std::pair<double, ScheduledEvent*> entry = *begin();
39
40 // set current time, remove the entry
41 m_time = entry.first;
42 erase( begin() );
43
44 // run, then delete it
45 if ( m_log )
46 { ( *m_log ) << "\t" << entry.first << '\t' << entry.second->name() << std::endl; }
47 entry.second->execute();
48 delete entry.second;
49 }
50}

◆ start() [2/3]

void Scheduler::start ( )

◆ start() [3/3]

void Scheduler::start ( )

◆ stop() [1/3]

void Scheduler::stop ( )

Definition at line 52 of file Scheduler.cxx.

52{ m_running = false; }

◆ stop() [2/3]

void Scheduler::stop ( )

◆ stop() [3/3]

void Scheduler::stop ( )

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