bugfix
[u/mrichter/AliRoot.git] / EVE / EveHLT / AliEveHOMERManager.h
1 //-*- Mode: C++ -*-
2
3 // $Id$
4 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
5
6 /**************************************************************************
7  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
8  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
9  * full copyright notice.                                                 *
10  **************************************************************************/
11
12 #ifndef ALIEVEHOMERMANAGER_H
13 #define ALIEVEHOMERMANAGER_H
14
15 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
16  * See cxx source for full Copyright notice                               */
17
18 /** @file   AliEveHOMERManager.h
19     @author Jochen Thaeder, Svein Lindal
20     @date
21     @brief  Manager for HOMER in HLT . Inherits some functionalitye
22     from AliHLTHOMERManager, mainly from TEveEventManager
23 */
24 #include "AliHLTHOMERManager.h"
25 #include <TEveEventManager.h>
26 #include <TGeoManager.h>
27
28 class AliEveHOMERSourceList;
29 class TString;
30 class TTimer;
31
32 class AliEveHOMERManager : public TEveElementList, public AliHLTHOMERManager {
33
34 public:
35
36   /*
37    * ---------------------------------------------------------------------------------
38    *                            Constructor / Destructor
39    * ---------------------------------------------------------------------------------
40    */
41
42   /** constructor */
43   AliEveHOMERManager();
44
45   /** destructor */
46   virtual ~AliEveHOMERManager();
47
48   /** Connect to avahi and get the list for sources */
49   Int_t CreateEveSourcesList();
50
51   /** Keep on looking for sources until some are found */
52   Int_t CreateEveSourcesListLoop();
53   
54   /** Connect to the sources found */
55   Int_t ConnectEVEtoHOMER(TString detector="ALL");
56
57   /** Delete current connections to sources and reconnect */
58   Int_t ReConnectHOMER( TString detector="" );
59
60   /** Set the retry count for source list loop */
61   void SetRetryCount(Int_t count, Int_t sleeptime) { fRetryCount = count; fRetrySleeptime = sleeptime; }
62   
63   /** Get next event from the readers */
64   TList * NextHOMEREvent();
65
66   void StartEveSourceListLoop();
67   void StopEveSourceListLoop();
68
69  
70 private:
71
72   /** copy constructor prohibited */
73   AliEveHOMERManager(const AliEveHOMERManager&);
74
75   /** assignment operator prohibited */
76   AliEveHOMERManager& operator=(const AliEveHOMERManager&);
77
78   // == sources ==
79   AliEveHOMERSourceList* fSrcList;        // List of Connected HOMER Sources
80
81
82   Int_t fRetryCount;                     //How many times to retry creating source list before giving up
83   Int_t fRetrySleeptime;                 //Sleep time between attempt at craeting source list
84
85   
86   TTimer * fSourceListTimer;             //Timer to attempt source list creation!
87     
88   ClassDef(AliEveHOMERManager, 0); // Manage connections to HLT data-sources.
89   
90
91 };
92 #endif