ROOT  6.06/09
Reference Guide
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
TRecorderReplaying Class Reference

Definition at line 568 of file TRecorder.h.

Public Member Functions

virtual TRecorder::ERecorderState GetState () const
 
virtual void Pause (TRecorder *r)
 Pauses replaying. More...
 
virtual void Continue ()
 Continues previously paused replaying. More...
 
virtual void ReplayStop (TRecorder *r)
 Cancels replaying. More...
 
void RegisterWindow (Window_t w)
 Creates mapping for the newly registered window w and adds this mapping to fWindowList. More...
 
void ReplayRealtime ()
 Replays the next event. More...
 
- Public Member Functions inherited from TRecorderState
virtual ~TRecorderState ()
 
virtual void Start (TRecorder *, const char *, Option_t *, Window_t *, Int_t)
 
virtual void Stop (TRecorder *, Bool_t)
 
virtual Bool_t Replay (TRecorder *, const char *, Bool_t, TRecorder::EReplayModes)
 
virtual void Resume (TRecorder *)
 
virtual void ListCmd (const char *)
 
virtual void ListGui (const char *)
 
virtual void PrevCanvases (const char *, Option_t *)
 

Protected Member Functions

 TRecorderReplaying (const char *filename)
 
Bool_t Initialize (TRecorder *r, Bool_t showMouseCursor, TRecorder::EReplayModes mode)
 Initialization of data structures for replaying. More...
 
- Protected Member Functions inherited from TRecorderState
void ChangeState (TRecorder *r, TRecorderState *s, Bool_t deletePreviousState)
 

Private Member Functions

virtual ~TRecorderReplaying ()
 Closes all signal-slot connections Frees all memory allocated in contructor. More...
 
Bool_t PrepareNextEvent ()
 Finds the next event in log file to replay and sets it to fNextEvent. More...
 
Bool_t RemapWindowReferences ()
 All references to the old windows (IDs) in fNextEvent are replaced by new ones according to the mappings in fWindowList. More...
 
Bool_t CanOverlap ()
 ButtonPress and ButtonRelease must be sometimes replayed more times Example: pressing of a button opens small window and user chooses something from that window (color) Window must be opened while user is choosing. More...
 
Bool_t FilterEvent (TRecGuiEvent *e)
 

Private Attributes

TRecorderfRecorder
 
TFilefFile
 
TCanvasfCanv
 
TTimerfTimer
 
TTreefWinTree
 
TTreefGuiTree
 
TTreefCmdTree
 
TTreefExtraTree
 
ULong64_t fWin
 
TRecGuiEventfGuiEvent
 
TRecCmdEventfCmdEvent
 
TRecExtraEventfExtraEvent
 
Int_t fRegWinCounter
 
Int_t fGuiTreeCounter
 
Int_t fCmdTreeCounter
 
Int_t fExtraTreeCounter
 
Int_t fWinTreeEntries
 
TMutexfMutex
 
TListfWindowList
 
TRecEventfNextEvent
 
TTime fPreviousEventTime
 
Bool_t fWaitingForWindow
 
Bool_t fEventReplayed
 
Bool_t fShowMouseCursor
 
Bool_t fFilterStatusBar
 

Friends

class TRecorderInactive
 
class TRecorderPaused
 

#include <TRecorder.h>

+ Inheritance diagram for TRecorderReplaying:
+ Collaboration diagram for TRecorderReplaying:

Constructor & Destructor Documentation

TRecorderReplaying::~TRecorderReplaying ( )
privatevirtual

Closes all signal-slot connections Frees all memory allocated in contructor.

Definition at line 401 of file TRecorder.cxx.

TRecorderReplaying::TRecorderReplaying ( const char *  filename)
protected

Member Function Documentation

Bool_t TRecorderReplaying::CanOverlap ( )
private

ButtonPress and ButtonRelease must be sometimes replayed more times Example: pressing of a button opens small window and user chooses something from that window (color) Window must be opened while user is choosing.

Definition at line 826 of file TRecorder.cxx.

Referenced by ReplayRealtime().

void TRecorderReplaying::Continue ( )
virtual

Continues previously paused replaying.

Definition at line 966 of file TRecorder.cxx.

Referenced by TRecorderPaused::Resume().

Bool_t TRecorderReplaying::FilterEvent ( TRecGuiEvent e)
private

Definition at line 666 of file TRecorder.cxx.

Referenced by PrepareNextEvent().

virtual TRecorder::ERecorderState TRecorderReplaying::GetState ( ) const
inlinevirtual

Implements TRecorderState.

Definition at line 639 of file TRecorder.h.

Bool_t TRecorderReplaying::Initialize ( TRecorder r,
Bool_t  showMouseCursor,
TRecorder::EReplayModes  mode 
)
protected

Initialization of data structures for replaying.

Start of replaying.

Return value:

  • kTRUE = everything is OK and replaying has begun
  • kFALSE = non existing or invalid log file, replaying has not started

Definition at line 433 of file TRecorder.cxx.

Referenced by TRecorderInactive::Replay().

void TRecorderReplaying::Pause ( TRecorder r)
virtual

Pauses replaying.

Reimplemented from TRecorderState.

Definition at line 947 of file TRecorder.cxx.

Bool_t TRecorderReplaying::PrepareNextEvent ( )
private

Finds the next event in log file to replay and sets it to fNextEvent.

Reads both from CmdTree and GuiTree and chooses that event that becomes earlier

  • fCmdTreeCounter determines actual position in fCmdTree
  • fGuiTreeCounter determines actual position in fCmdTree

If GUI event should be replayed, we must first make sure that there is appropriate mapping for this event

RETURN VALUE: kFALSE = there is no event to be replayed kTRUE = there is still at least one event to be replayed. Cases:

  • fNextEvent = 0 => We are waiting for the appropriate window to be registered
  • fNextEvent != 0 => fNextEvent can be replayed (windows are ready)

Definition at line 721 of file TRecorder.cxx.

Referenced by Initialize(), and ReplayRealtime().

void TRecorderReplaying::RegisterWindow ( Window_t  w)

Creates mapping for the newly registered window w and adds this mapping to fWindowList.

Called by signal whenever a new window is registered during replaying.

The new window ID is mapped to the old one with the same number in the list of registered windows. It means that 1st new window is mapped to the 1st original, 2nd to the 2nd, Nth new to the Nth original.

Definition at line 538 of file TRecorder.cxx.

Bool_t TRecorderReplaying::RemapWindowReferences ( )
private

All references to the old windows (IDs) in fNextEvent are replaced by new ones according to the mappings in fWindowList.

Definition at line 606 of file TRecorder.cxx.

Referenced by PrepareNextEvent().

void TRecorderReplaying::ReplayRealtime ( )

Replays the next event.

It is called when fTimer times out. Every time fTimer is set again to time equal to time difference between current two events being replayed.

It can happen that execution of an event lasts different time during the recording and during the replaying. If fTimer times out too early and the previous event has not been yet replayed, it is usually postponed in order to keep events execution in the right order. The excpetions are determined by TRecorderReplaying::CanOverlap()

Definition at line 870 of file TRecorder.cxx.

void TRecorderReplaying::ReplayStop ( TRecorder r)
virtual

Cancels replaying.

Reimplemented from TRecorderState.

Definition at line 957 of file TRecorder.cxx.

Friends And Related Function Documentation

friend class TRecorderInactive
friend

Definition at line 632 of file TRecorder.h.

Referenced by ReplayRealtime(), and ReplayStop().

friend class TRecorderPaused
friend

Definition at line 633 of file TRecorder.h.

Referenced by Pause().

Member Data Documentation

TCanvas* TRecorderReplaying::fCanv
private

Definition at line 584 of file TRecorder.h.

Referenced by Initialize().

TRecCmdEvent* TRecorderReplaying::fCmdEvent
private

Definition at line 596 of file TRecorder.h.

Referenced by Initialize(), PrepareNextEvent(), and ~TRecorderReplaying().

TTree* TRecorderReplaying::fCmdTree
private

Definition at line 591 of file TRecorder.h.

Referenced by Initialize(), and PrepareNextEvent().

Int_t TRecorderReplaying::fCmdTreeCounter
private

Definition at line 601 of file TRecorder.h.

Referenced by Initialize(), and PrepareNextEvent().

Bool_t TRecorderReplaying::fEventReplayed
private

Definition at line 621 of file TRecorder.h.

Referenced by Initialize(), and ReplayRealtime().

TRecExtraEvent* TRecorderReplaying::fExtraEvent
private

Definition at line 597 of file TRecorder.h.

Referenced by Initialize(), PrepareNextEvent(), and ~TRecorderReplaying().

TTree* TRecorderReplaying::fExtraTree
private

Definition at line 592 of file TRecorder.h.

Referenced by Initialize(), and PrepareNextEvent().

Int_t TRecorderReplaying::fExtraTreeCounter
private

Definition at line 602 of file TRecorder.h.

Referenced by Initialize(), and PrepareNextEvent().

TFile* TRecorderReplaying::fFile
private

Definition at line 581 of file TRecorder.h.

Referenced by Initialize(), and ~TRecorderReplaying().

Bool_t TRecorderReplaying::fFilterStatusBar
private

Definition at line 629 of file TRecorder.h.

Referenced by Initialize(), and RegisterWindow().

TRecGuiEvent* TRecorderReplaying::fGuiEvent
private
TTree* TRecorderReplaying::fGuiTree
private

Definition at line 590 of file TRecorder.h.

Referenced by Initialize(), and PrepareNextEvent().

Int_t TRecorderReplaying::fGuiTreeCounter
private

Definition at line 600 of file TRecorder.h.

Referenced by Initialize(), PrepareNextEvent(), and RemapWindowReferences().

TMutex* TRecorderReplaying::fMutex
private

Definition at line 606 of file TRecorder.h.

Referenced by RegisterWindow(), RemapWindowReferences(), and ~TRecorderReplaying().

TRecEvent* TRecorderReplaying::fNextEvent
private

Definition at line 610 of file TRecorder.h.

Referenced by CanOverlap(), Continue(), PrepareNextEvent(), RegisterWindow(), and ReplayRealtime().

TTime TRecorderReplaying::fPreviousEventTime
private

Definition at line 612 of file TRecorder.h.

Referenced by Continue(), and ReplayRealtime().

TRecorder* TRecorderReplaying::fRecorder
private

Definition at line 578 of file TRecorder.h.

Referenced by Initialize(), and ReplayRealtime().

Int_t TRecorderReplaying::fRegWinCounter
private

Definition at line 599 of file TRecorder.h.

Referenced by Initialize(), and RegisterWindow().

Bool_t TRecorderReplaying::fShowMouseCursor
private

Definition at line 627 of file TRecorder.h.

Referenced by Initialize(), and ReplayRealtime().

TTimer* TRecorderReplaying::fTimer
private
Bool_t TRecorderReplaying::fWaitingForWindow
private

Definition at line 615 of file TRecorder.h.

Referenced by Initialize(), RegisterWindow(), and RemapWindowReferences().

ULong64_t TRecorderReplaying::fWin
private

Definition at line 594 of file TRecorder.h.

Referenced by Initialize(), and RegisterWindow().

TList* TRecorderReplaying::fWindowList
private

Definition at line 608 of file TRecorder.h.

Referenced by RegisterWindow(), RemapWindowReferences(), and ~TRecorderReplaying().

TTree* TRecorderReplaying::fWinTree
private

Definition at line 589 of file TRecorder.h.

Referenced by Initialize(), and RegisterWindow().

Int_t TRecorderReplaying::fWinTreeEntries
private

Definition at line 604 of file TRecorder.h.

Referenced by Initialize(), and RegisterWindow().


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