Logo ROOT   6.21/01
Reference Guide
TRecorderReplaying Class Reference

Definition at line 552 of file TRecorder.h.

Public Member Functions

virtual void Continue ()
 Continues previously paused replaying. More...
 
virtual TRecorder::ERecorderState GetState () const
 
virtual void Pause (TRecorder *r)
 Pauses 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...
 
virtual void ReplayStop (TRecorder *r)
 Cancels replaying. More...
 
- Public Member Functions inherited from TRecorderState
virtual ~TRecorderState ()
 
virtual void ListCmd (const char *)
 
virtual void ListGui (const char *)
 
virtual void PrevCanvases (const char *, Option_t *)
 
virtual Bool_t Replay (TRecorder *, const char *, Bool_t, TRecorder::EReplayModes)
 
virtual void Resume (TRecorder *)
 
virtual void Start (TRecorder *, const char *, Option_t *, Window_t *, Int_t)
 
virtual void Stop (TRecorder *, Bool_t)
 

Protected Member Functions

 TRecorderReplaying (const char *filename)
 Allocates all necessary data structures used for replaying What is allocated here is deleted in destructor. More...
 
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 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)
 
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...
 

Private Attributes

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

Friends

class TRecorderInactive
 
class TRecorderPaused
 

#include <TRecorder.h>

Inheritance diagram for TRecorderReplaying:
[legend]

Constructor & Destructor Documentation

◆ ~TRecorderReplaying()

TRecorderReplaying::~TRecorderReplaying ( )
privatevirtual

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

Definition at line 402 of file TRecorder.cxx.

◆ TRecorderReplaying()

TRecorderReplaying::TRecorderReplaying ( const char *  filename)
protected

Allocates all necessary data structures used for replaying What is allocated here is deleted in destructor.

Definition at line 368 of file TRecorder.cxx.

Member Function Documentation

◆ CanOverlap()

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 827 of file TRecorder.cxx.

◆ Continue()

void TRecorderReplaying::Continue ( )
virtual

Continues previously paused replaying.

Definition at line 967 of file TRecorder.cxx.

◆ FilterEvent()

Bool_t TRecorderReplaying::FilterEvent ( TRecGuiEvent e)
private

Definition at line 667 of file TRecorder.cxx.

◆ GetState()

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

Implements TRecorderState.

Definition at line 623 of file TRecorder.h.

◆ Initialize()

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 434 of file TRecorder.cxx.

◆ Pause()

void TRecorderReplaying::Pause ( TRecorder r)
virtual

Pauses replaying.

Reimplemented from TRecorderState.

Definition at line 948 of file TRecorder.cxx.

◆ PrepareNextEvent()

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 722 of file TRecorder.cxx.

◆ RegisterWindow()

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 539 of file TRecorder.cxx.

◆ RemapWindowReferences()

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 607 of file TRecorder.cxx.

◆ ReplayRealtime()

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 871 of file TRecorder.cxx.

◆ ReplayStop()

void TRecorderReplaying::ReplayStop ( TRecorder r)
virtual

Cancels replaying.

Reimplemented from TRecorderState.

Definition at line 958 of file TRecorder.cxx.

Friends And Related Function Documentation

◆ TRecorderInactive

friend class TRecorderInactive
friend

Definition at line 616 of file TRecorder.h.

◆ TRecorderPaused

friend class TRecorderPaused
friend

Definition at line 617 of file TRecorder.h.

Member Data Documentation

◆ fCanv

TCanvas* TRecorderReplaying::fCanv
private

Definition at line 568 of file TRecorder.h.

◆ fCmdEvent

TRecCmdEvent* TRecorderReplaying::fCmdEvent
private

Definition at line 580 of file TRecorder.h.

◆ fCmdTree

TTree* TRecorderReplaying::fCmdTree
private

Definition at line 575 of file TRecorder.h.

◆ fCmdTreeCounter

Int_t TRecorderReplaying::fCmdTreeCounter
private

Definition at line 585 of file TRecorder.h.

◆ fEventReplayed

Bool_t TRecorderReplaying::fEventReplayed
private

Definition at line 605 of file TRecorder.h.

◆ fExtraEvent

TRecExtraEvent* TRecorderReplaying::fExtraEvent
private

Definition at line 581 of file TRecorder.h.

◆ fExtraTree

TTree* TRecorderReplaying::fExtraTree
private

Definition at line 576 of file TRecorder.h.

◆ fExtraTreeCounter

Int_t TRecorderReplaying::fExtraTreeCounter
private

Definition at line 586 of file TRecorder.h.

◆ fFile

TFile* TRecorderReplaying::fFile
private

Definition at line 565 of file TRecorder.h.

◆ fFilterStatusBar

Bool_t TRecorderReplaying::fFilterStatusBar
private

Definition at line 613 of file TRecorder.h.

◆ fGuiEvent

TRecGuiEvent* TRecorderReplaying::fGuiEvent
private

Definition at line 579 of file TRecorder.h.

◆ fGuiTree

TTree* TRecorderReplaying::fGuiTree
private

Definition at line 574 of file TRecorder.h.

◆ fGuiTreeCounter

Int_t TRecorderReplaying::fGuiTreeCounter
private

Definition at line 584 of file TRecorder.h.

◆ fMutex

TMutex* TRecorderReplaying::fMutex
private

Definition at line 590 of file TRecorder.h.

◆ fNextEvent

TRecEvent* TRecorderReplaying::fNextEvent
private

Definition at line 594 of file TRecorder.h.

◆ fPreviousEventTime

TTime TRecorderReplaying::fPreviousEventTime
private

Definition at line 596 of file TRecorder.h.

◆ fRecorder

TRecorder* TRecorderReplaying::fRecorder
private

Definition at line 562 of file TRecorder.h.

◆ fRegWinCounter

Int_t TRecorderReplaying::fRegWinCounter
private

Definition at line 583 of file TRecorder.h.

◆ fShowMouseCursor

Bool_t TRecorderReplaying::fShowMouseCursor
private

Definition at line 611 of file TRecorder.h.

◆ fTimer

TTimer* TRecorderReplaying::fTimer
private

Definition at line 571 of file TRecorder.h.

◆ fWaitingForWindow

Bool_t TRecorderReplaying::fWaitingForWindow
private

Definition at line 599 of file TRecorder.h.

◆ fWin

ULong64_t TRecorderReplaying::fWin
private

Definition at line 578 of file TRecorder.h.

◆ fWindowList

TList* TRecorderReplaying::fWindowList
private

Definition at line 592 of file TRecorder.h.

◆ fWinTree

TTree* TRecorderReplaying::fWinTree
private

Definition at line 573 of file TRecorder.h.

◆ fWinTreeEntries

Int_t TRecorderReplaying::fWinTreeEntries
private

Definition at line 588 of file TRecorder.h.

Libraries for TRecorderReplaying:
[legend]

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