ROOT logo
// $Id: AEVDemoDriver.h 2251 2009-11-12 11:24:00Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef AliEnViz_AEVDemoDriver_H
#define AliEnViz_AEVDemoDriver_H

#include <Glasses/Text.h>
#include <TRandom.h>

class AEVMlClient;  class AEVDistAnRep;
class AEVMapViz;    class AEVJobRep;

class Eventor;      class TimeMaker;
class WGlDirectory; class WGlFrameStyle;
class WGlButton;

class Amphitheatre; class WSTube;

class AEVDemoDriver : public Text
{
  MAC_RNR_FRIENDS(AEVDemoDriver);

private:
  void _init();

protected:
  Double_t rnd(Double_t k=1, Double_t n=0);

  ZLink<AEVMlClient>    mMonaClient;	// X{GS} L{}
  ZLink<AEVDistAnRep>   mDistAnRep;	// X{GS} L{}

  ZLink<Amphitheatre>   mTheatre;	// X{GS} L{}
  ZLink<AEVMapViz>	mMapViz;	// X{GS} L{}
  ZLink<ZNode>          mGledViz;	// X{GS} L{}
  ZLink<ZNode>          mMonaViz;	// X{GS} L{}

  ZLink<Eventor>        mAnimator;	// X{GS} L{}
  ZLink<TimeMaker>      mAnimTimer;	// X{GS} L{}

  ZLink<WSTube>         mMonaTube;	// X{GS} L{}

  Float_t       mConnectTime;	// X{GS} 7 Value(-range=>[0,10,1,100], -join=>1)
  Float_t       mRotTime;	// X{GS} 7 Value(-range=>[0,10,1,100])
  Float_t       mTravelTime;	// X{GS} 7 Value(-range=>[0,10,1,100], -join=>1)
  Float_t       mWaitTime;      // X{GS} 7 Value(-range=>[0,10,1,100])

  Int_t		mFPS;   	// X{GS} 7 Value(-range=>[1,100,1], -join=>1)
  Int_t		mRPS;   	// X{GS} 7 Value(-range=>[1,100,1])

  ZLink<AList>          mTexCont;	 // X{GS} L{}
  ZLink<WGlDirectory>   mJobDirectory;	 // X{GS} L{}
  ZLink<WGlFrameStyle>  mMenuFrameStyle; // X{GS} L{}
  ZLink<Text>           mInfoBar;        // X{GS} L{}
  ZLink<Text>           mBlurpBar;       // X{GS} L{}

  TRandom	mRnd;		//!

  Bool_t        bWorking;       //!
  Bool_t        bCycling;	//!
  bool trylock();
  void unlock();
  void enable_menu();
  void disable_menu();

  // local stash
  //-------------
  map<string, WSTube*> mProcessTubes; //!

public:
  void sleep(Float_t s);
  void l_sleep(Float_t s);

  void set_text(const Text_t* txt);
  void set_blurp(const Text_t* txt);

  void setup_tube(WSTube* tube, const Text_t* texname="Photon");
  void animate_tube(WSTube* tube);
  void remove_tube(WSTube* tube);

  void rotate(ZNode* node, Float_t time, Int_t ai, Int_t aj);


public:
  AEVDemoDriver(const Text_t* n="AEVDemoDriver", const Text_t* t=0) :
    Text(n,t) { _init(); }

  void InitAnimationStuff(Eventor* e=0, TimeMaker* tm=0);

  void ResetDemo();	     // X{ED} 7 MButt(-join=>1)
  void RunDemo();  	     // X{ED} 7 MButt()

  void ConnectMonaLisa();    // X{Ed} 7 MButt(-join=>1)
  void DisconnectMonaLisa(); // X{Ed} 7 MButt()

  void QueryJobs();                         // X{Ed}      7 MButt()
  void QueryJobDetails(AEVJobRep* job_rep); // X{Ed} C{1} 7 MCWButt()

  void ReplayJob(WGlButton* button);        // X{Ed} C{1} 7 MCWButt()
  void CycleJob(WGlButton* button);         // X{Ed} C{1} 7 MCWButt()
  void DoJobReplay();                       // X{Ed}      7 MCWButt()
  void PauseJobReplay();                    // X{Ed}      7 MCWButt()
  void FinalizeJob();                       // X{Ed}      7 MCWButt()
  void ExitReplayMenu(WGlButton* button);   // X{Ed} C{1} 7 MCWButt()

  void ConnectToProof();     // X{Ed} 7 MButt()
  void ConnectProofSlaves(); // X{Ed} 7 MButt()
  void ProcessEvents();      // X{Ed} 7 MButt()

  void VisProofProgress(map<string,int>& siteevmap);

  void Report();             // X{Ed} 7 MButt()

protected:
  Bool_t bFakeProcessing;    // X{GS} 7 Bool()

public:
#include "AEVDemoDriver.h7"
  ClassDef(AEVDemoDriver, 1);
}; // endclass AEVDemoDriver


#endif
 AEVDemoDriver.h:1
 AEVDemoDriver.h:2
 AEVDemoDriver.h:3
 AEVDemoDriver.h:4
 AEVDemoDriver.h:5
 AEVDemoDriver.h:6
 AEVDemoDriver.h:7
 AEVDemoDriver.h:8
 AEVDemoDriver.h:9
 AEVDemoDriver.h:10
 AEVDemoDriver.h:11
 AEVDemoDriver.h:12
 AEVDemoDriver.h:13
 AEVDemoDriver.h:14
 AEVDemoDriver.h:15
 AEVDemoDriver.h:16
 AEVDemoDriver.h:17
 AEVDemoDriver.h:18
 AEVDemoDriver.h:19
 AEVDemoDriver.h:20
 AEVDemoDriver.h:21
 AEVDemoDriver.h:22
 AEVDemoDriver.h:23
 AEVDemoDriver.h:24
 AEVDemoDriver.h:25
 AEVDemoDriver.h:26
 AEVDemoDriver.h:27
 AEVDemoDriver.h:28
 AEVDemoDriver.h:29
 AEVDemoDriver.h:30
 AEVDemoDriver.h:31
 AEVDemoDriver.h:32
 AEVDemoDriver.h:33
 AEVDemoDriver.h:34
 AEVDemoDriver.h:35
 AEVDemoDriver.h:36
 AEVDemoDriver.h:37
 AEVDemoDriver.h:38
 AEVDemoDriver.h:39
 AEVDemoDriver.h:40
 AEVDemoDriver.h:41
 AEVDemoDriver.h:42
 AEVDemoDriver.h:43
 AEVDemoDriver.h:44
 AEVDemoDriver.h:45
 AEVDemoDriver.h:46
 AEVDemoDriver.h:47
 AEVDemoDriver.h:48
 AEVDemoDriver.h:49
 AEVDemoDriver.h:50
 AEVDemoDriver.h:51
 AEVDemoDriver.h:52
 AEVDemoDriver.h:53
 AEVDemoDriver.h:54
 AEVDemoDriver.h:55
 AEVDemoDriver.h:56
 AEVDemoDriver.h:57
 AEVDemoDriver.h:58
 AEVDemoDriver.h:59
 AEVDemoDriver.h:60
 AEVDemoDriver.h:61
 AEVDemoDriver.h:62
 AEVDemoDriver.h:63
 AEVDemoDriver.h:64
 AEVDemoDriver.h:65
 AEVDemoDriver.h:66
 AEVDemoDriver.h:67
 AEVDemoDriver.h:68
 AEVDemoDriver.h:69
 AEVDemoDriver.h:70
 AEVDemoDriver.h:71
 AEVDemoDriver.h:72
 AEVDemoDriver.h:73
 AEVDemoDriver.h:74
 AEVDemoDriver.h:75
 AEVDemoDriver.h:76
 AEVDemoDriver.h:77
 AEVDemoDriver.h:78
 AEVDemoDriver.h:79
 AEVDemoDriver.h:80
 AEVDemoDriver.h:81
 AEVDemoDriver.h:82
 AEVDemoDriver.h:83
 AEVDemoDriver.h:84
 AEVDemoDriver.h:85
 AEVDemoDriver.h:86
 AEVDemoDriver.h:87
 AEVDemoDriver.h:88
 AEVDemoDriver.h:89
 AEVDemoDriver.h:90
 AEVDemoDriver.h:91
 AEVDemoDriver.h:92
 AEVDemoDriver.h:93
 AEVDemoDriver.h:94
 AEVDemoDriver.h:95
 AEVDemoDriver.h:96
 AEVDemoDriver.h:97
 AEVDemoDriver.h:98
 AEVDemoDriver.h:99
 AEVDemoDriver.h:100
 AEVDemoDriver.h:101
 AEVDemoDriver.h:102
 AEVDemoDriver.h:103
 AEVDemoDriver.h:104
 AEVDemoDriver.h:105
 AEVDemoDriver.h:106
 AEVDemoDriver.h:107
 AEVDemoDriver.h:108
 AEVDemoDriver.h:109
 AEVDemoDriver.h:110
 AEVDemoDriver.h:111
 AEVDemoDriver.h:112
 AEVDemoDriver.h:113
 AEVDemoDriver.h:114
 AEVDemoDriver.h:115
 AEVDemoDriver.h:116
 AEVDemoDriver.h:117
 AEVDemoDriver.h:118
 AEVDemoDriver.h:119
 AEVDemoDriver.h:120
 AEVDemoDriver.h:121
 AEVDemoDriver.h:122
 AEVDemoDriver.h:123
 AEVDemoDriver.h:124
 AEVDemoDriver.h:125