GSI Object Oriented Online Offline (Go4)  GO4-5.3.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Private Attributes | List of all members
TGo4AppControlTimer Class Reference

#include <TGo4AppControlTimer.h>

+ Inheritance diagram for TGo4AppControlTimer:

Public Member Functions

 TGo4AppControlTimer (TGo4ThreadManager *manager, Long_t msperiod=3000, Bool_t mode=kTRUE)
 
virtual ~TGo4AppControlTimer ()
 
void SetManager (TGo4ThreadManager *parent)
 
virtual Bool_t Notify ()
 
const TCondition * GetCondition () const
 
void SetApplicationRun (Bool_t flag=kTRUE)
 
Bool_t GetApplicationRun ()
 

Protected Attributes

TGo4ThreadManagerfxManager
 

Static Protected Attributes

static UInt_t fguTERMWAIT = 3000
 
static Int_t fgiTERMWAITCYCLES = 5
 

Private Member Functions

 TGo4AppControlTimer ()
 

Private Attributes

Bool_t fbApplicationRun
 
TCondition * fxCondition
 

Detailed Description

Timer with main purpose to block the root TApplication loop during thread execution. Moreover, this timer calls Initialization() function of threadmanager, which can be overridden by user to define any actions which should not be run within a thread (critical root system calls, like opening TServerSocket, should be done within the application loop, i.e. in the timer). In threadmanager non-blocking-mode, Initialization() is called from timer regularly with the period specified in threadmanager; in blocking mode it is called once after each threadmanager UnBlockApp(). This timer is also responsible for proper termination of the threadmanager.

Author
J. Adamczewski
Go4 project-DVEE-GSI Darmstadt
Germany
Version
0.9
Since
jul 2000-oct 2001

Definition at line 39 of file TGo4AppControlTimer.h.

Constructor & Destructor Documentation

TGo4AppControlTimer::TGo4AppControlTimer ( TGo4ThreadManager manager,
Long_t  msperiod = 3000,
Bool_t  mode = kTRUE 
)

Definition at line 28 of file TGo4AppControlTimer.cxx.

References fxCondition, fxManager, and GO4TRACE.

TGo4AppControlTimer::~TGo4AppControlTimer ( )
virtual

Definition at line 39 of file TGo4AppControlTimer.cxx.

References fxCondition, and GO4TRACE.

TGo4AppControlTimer::TGo4AppControlTimer ( )
private

Member Function Documentation

Bool_t TGo4AppControlTimer::GetApplicationRun ( )

Status of the application run flag. If true, root application is not blocked.

Definition at line 139 of file TGo4AppControlTimer.cxx.

References fbApplicationRun, and GO4TRACE.

Referenced by TGo4ThreadManager::UnBlockApp().

const TCondition* TGo4AppControlTimer::GetCondition ( ) const
inline

Returns handle for internal condition which is used to block the gSystem.

Definition at line 56 of file TGo4AppControlTimer.h.

References fxCondition.

Referenced by TGo4ThreadManager::UnBlockApp().

Bool_t TGo4AppControlTimer::Notify ( )
virtual
void TGo4AppControlTimer::SetApplicationRun ( Bool_t  flag = kTRUE)
inline

Switches between blocking and non blocking mode of the timer. If set to kTRUE, timer will not block the root system. If set to kFALSE, timer will suspend in a condition wait and therefore the InnerLoop() of root is blocked.

Definition at line 64 of file TGo4AppControlTimer.h.

References fbApplicationRun.

Referenced by TGo4ThreadManager::BlockApp(), and TGo4ThreadManager::UnBlockApp().

void TGo4AppControlTimer::SetManager ( TGo4ThreadManager parent)
inline

Sets reference to new thread manager

Definition at line 47 of file TGo4AppControlTimer.h.

References fxManager.

Member Data Documentation

Bool_t TGo4AppControlTimer::fbApplicationRun
private

Definition at line 98 of file TGo4AppControlTimer.h.

Referenced by GetApplicationRun(), Notify(), and SetApplicationRun().

Int_t TGo4AppControlTimer::fgiTERMWAITCYCLES = 5
staticprotected

On Termination, Notify will test fgiTERMWAITCYCLES times if Runnables are stopped, i.e. all TGo4Threads are in TCondition wait (safe cancelling point); afterwards, threads are deleted anyway

Definition at line 87 of file TGo4AppControlTimer.h.

Referenced by Notify().

UInt_t TGo4AppControlTimer::fguTERMWAIT = 3000
staticprotected

time in ms to wait for all Runnables being stopped before Termination; after this time, the AllWaiting() of TGo4ThreadHandler is tested again, until the max number of testing cycles (fgiTERMWAITCYCLES) is reached; then Termination is done anyway

Definition at line 79 of file TGo4AppControlTimer.h.

Referenced by Notify().

TCondition* TGo4AppControlTimer::fxCondition
private
TGo4ThreadManager* TGo4AppControlTimer::fxManager
protected

Backlink to threadmanager who owns this timer. 1 1

Definition at line 94 of file TGo4AppControlTimer.h.

Referenced by Notify(), SetManager(), and TGo4AppControlTimer().


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