ROOT logo
// $Header$

// 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_AEVManager_H
#define AliEnViz_AEVManager_H

#include <Glasses/ZNameMap.h>

class SolarSystem;

class AEVSite;
class AEVSiteList;
class AEVMlSucker;

class AEVManager : public ZNameMap
{
  MAC_RNR_FRIENDS(AEVManager);

private:
  void _init();

public:
  enum SiteViz_e { SV_None, SV_All, SV_RunningJobs, SV_ErrorJobs, SV_EventsDone, SV_EventsFrac };
  enum UserViz_e { UV_None, UV_All, UV_RunningJobs, UV_ErrorJobs };

protected:
  ZLink<SolarSystem>    mSolarSystem; // X{GS} L{a}
  ZLink<AEVSiteList>    mSites;       // X{GS} L{a}
  ZLink<AEVMlSucker>    mSucker;      // X{GS} L{a}

  Int_t                 mTimeWindow;  // X{G}  7 ValOut(-join=>1)
public:
  void SetTimeWindow(Int_t time);            // X{ED} 7 MCWButt()
  void RescanLimits(Bool_t drop_cuts=false); // X{E}  7 MCWButt()
protected:

  SiteViz_e             mSiteVizMode; // X{GS} Ray{SiteViz} 7 PhonyEnum()
  Int_t                 mSiteMinVal;  // X{G}  7 ValOut(-join=>1, -width=>6)
  Int_t                 mSiteMaxVal;  // X{G}  7 ValOut(-width=>6)
  Int_t                 mSiteMinCut;  // X{GE} 7 Value(-range=>[0,10000, 1], -join=>1, -width=>6)
  Int_t                 mSiteMaxCut;  // X{GE} 7 Value(-range=>[0,10000, 1], -width=>6)

  UserViz_e             mUserVizMode; // X{GS} Ray{UserViz} 7 PhonyEnum(-const=>1)

#ifndef __CINT__
  typedef Int_t AEVSite::*SiteInt_t;

  struct SiteVar
  {
    SiteInt_t   fVarPtr;
    Int_t       fMin, fMax;
    Int_t       fLow, fHigh;

    SiteVar() : fVarPtr(0), fMin(0), fMax(0), fLow(0), fHigh(0) {}
  };

  SiteVar       mSVJobsRunning; //!
  SiteVar       mSVJobsError;   //!
  SiteVar       mSVEventsDone;  //!
  SiteVar       mSVEventsFrac;  //!

  SiteVar      *mSVCurrent;     //!
#endif

  void update_sv_current();
  void select_sv_current();
  bool update_sv_current(AEVSite* site);
  void select_sv_current(AEVSite* site);

public:
  AEVManager(const Text_t* n="AEVManager", const Text_t* t=0);
  virtual ~AEVManager();

  void EmitSiteVizRay();
  void EmitUserVizRay();

  void SetSiteMinCut(Int_t min);
  void SetSiteMaxCut(Int_t max);

  void SiteNew(AEVSite* site);
  void SitePositionChanged(AEVSite* site);
  void SiteChanged(AEVSite* site);

  void MakeInfoText();

#include "AEVManager.h7"
  ClassDef(AEVManager, 1);
}; // endclass AEVManager

#endif
 AEVManager.h:1
 AEVManager.h:2
 AEVManager.h:3
 AEVManager.h:4
 AEVManager.h:5
 AEVManager.h:6
 AEVManager.h:7
 AEVManager.h:8
 AEVManager.h:9
 AEVManager.h:10
 AEVManager.h:11
 AEVManager.h:12
 AEVManager.h:13
 AEVManager.h:14
 AEVManager.h:15
 AEVManager.h:16
 AEVManager.h:17
 AEVManager.h:18
 AEVManager.h:19
 AEVManager.h:20
 AEVManager.h:21
 AEVManager.h:22
 AEVManager.h:23
 AEVManager.h:24
 AEVManager.h:25
 AEVManager.h:26
 AEVManager.h:27
 AEVManager.h:28
 AEVManager.h:29
 AEVManager.h:30
 AEVManager.h:31
 AEVManager.h:32
 AEVManager.h:33
 AEVManager.h:34
 AEVManager.h:35
 AEVManager.h:36
 AEVManager.h:37
 AEVManager.h:38
 AEVManager.h:39
 AEVManager.h:40
 AEVManager.h:41
 AEVManager.h:42
 AEVManager.h:43
 AEVManager.h:44
 AEVManager.h:45
 AEVManager.h:46
 AEVManager.h:47
 AEVManager.h:48
 AEVManager.h:49
 AEVManager.h:50
 AEVManager.h:51
 AEVManager.h:52
 AEVManager.h:53
 AEVManager.h:54
 AEVManager.h:55
 AEVManager.h:56
 AEVManager.h:57
 AEVManager.h:58
 AEVManager.h:59
 AEVManager.h:60
 AEVManager.h:61
 AEVManager.h:62
 AEVManager.h:63
 AEVManager.h:64
 AEVManager.h:65
 AEVManager.h:66
 AEVManager.h:67
 AEVManager.h:68
 AEVManager.h:69
 AEVManager.h:70
 AEVManager.h:71
 AEVManager.h:72
 AEVManager.h:73
 AEVManager.h:74
 AEVManager.h:75
 AEVManager.h:76
 AEVManager.h:77
 AEVManager.h:78
 AEVManager.h:79
 AEVManager.h:80
 AEVManager.h:81
 AEVManager.h:82
 AEVManager.h:83
 AEVManager.h:84
 AEVManager.h:85
 AEVManager.h:86
 AEVManager.h:87
 AEVManager.h:88
 AEVManager.h:89
 AEVManager.h:90
 AEVManager.h:91
 AEVManager.h:92
 AEVManager.h:93