Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / MONITOR / AliRecoServer.h
1 // Author: Mihai Niculescu 2013
2
3 /**************************************************************************
4  * Copyright(c) 1998-2013, ALICE Experiment at CERN, all rights reserved. *
5  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
6  * full copyright notice.                                                 *
7  **************************************************************************/
8  
9 #ifndef __AliRecoServer_H__
10 #define __AliRecoServer_H__
11
12 #include <TObjString.h>
13 #include <TQObject.h>
14 #include <RQ_OBJECT.h>
15
16 class TEnv;
17 class AliCDBManager;
18 class AliReconstruction;
19 class AliRecoServerThread;
20
21 namespace zmq
22 {
23         class context_t;
24 }
25
26 class AliRecoServer : public TQObject
27 {
28         RQ_OBJECT("AliRecoServer")
29 public:
30   AliRecoServer();
31   virtual ~AliRecoServer();
32   
33   // Closes the server. The server will no longer listen/serve
34   void Close();
35   
36   Bool_t IsListenning() const;
37   
38   Int_t GetRunId() const {  return fCurrentRunId; }
39   const char* GetError() const;//TODO: not implemented
40   
41   Bool_t StartReconstruction(Int_t run, const char* input="mem://@*:");
42   void  StopReconstruction();
43
44   void ThreadFinished(Int_t status); // *SIGNAL*
45   
46 private:
47   Int_t RetrieveGRP(UInt_t run, TString &gdc);
48   void SetupReco(const char* input);
49
50   AliRecoServer(const AliRecoServer&);            // Not implemented
51   AliRecoServer& operator=(const AliRecoServer&); // Not implemented
52
53 private:
54         // thread shared
55         zmq::context_t* fContext;
56   AliReconstruction* fReco;
57   AliCDBManager* fCDBman;
58
59         // not shared
60   Int_t                                                                          fCurrentRunId;
61   Bool_t fIsListenning;
62   TEnv*                                                          fSettings;
63   AliRecoServerThread* fRecoTh;
64
65 public:
66
67   ClassDef(AliRecoServer, 0);
68 };
69
70 #endif /* __AliRecoServer_H__ */