ROOT logo
//-*- Mode: C++ -*-

// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

#ifndef ALIEVEHOMERMANAGER_H
#define ALIEVEHOMERMANAGER_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/** @file   AliEveHOMERManager.h
    @author Jochen Thaeder, Svein Lindal
    @date
    @brief  Manager for HOMER in HLT . Inherits some functionalitye
    from AliHLTHOMERManager, mainly from TEveEventManager
*/
#include "AliHLTHOMERManager.h"
#include <TEveEventManager.h>
#include <TGeoManager.h>

class AliEveHOMERSourceList;
class TString;
class TTimer;

class AliEveHOMERManager : public TEveElementList, public AliHLTHOMERManager {

public:

  /*
   * ---------------------------------------------------------------------------------
   *                            Constructor / Destructor
   * ---------------------------------------------------------------------------------
   */

  /** constructor */
  AliEveHOMERManager();

  /** destructor */
  virtual ~AliEveHOMERManager();

  /** Connect to avahi and get the list for sources */
  Int_t CreateEveSourcesList();

  /** Keep on looking for sources until some are found */
  Int_t CreateEveSourcesListLoop();
  
  /** Connect to the sources found */
  Int_t ConnectEVEtoHOMER(TString detector="ALL");

  /** Delete current connections to sources and reconnect */
  Int_t ReConnectHOMER( TString detector="" );

  /** Set the retry count for source list loop */
  void SetRetryCount(Int_t count, Int_t sleeptime) { fRetryCount = count; fRetrySleeptime = sleeptime; }
  
  /** Get next event from the readers */
  TList * NextHOMEREvent();

  void StartEveSourceListLoop();
  void StopEveSourceListLoop();

 
private:

  /** copy constructor prohibited */
  AliEveHOMERManager(const AliEveHOMERManager&);

  /** assignment operator prohibited */
  AliEveHOMERManager& operator=(const AliEveHOMERManager&);

  // == sources ==
  AliEveHOMERSourceList* fSrcList;        // List of Connected HOMER Sources


  Int_t fRetryCount;                     //How many times to retry creating source list before giving up
  Int_t fRetrySleeptime;                 //Sleep time between attempt at craeting source list

  
  TTimer * fSourceListTimer;             //Timer to attempt source list creation!
    
  ClassDef(AliEveHOMERManager, 0); // Manage connections to HLT data-sources.
  

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