Adding base classes for zmq networking and modificiations to event server
[u/mrichter/AliRoot.git] / MONITOR / AliRecoServer.h
CommitLineData
7e0cf530 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
7e0cf530 12#include <TObjString.h>
13#include <TQObject.h>
14#include <RQ_OBJECT.h>
15
16class TEnv;
17class AliCDBManager;
18class AliReconstruction;
19class AliRecoServerThread;
20
db352b46 21namespace zmq
22{
23 class context_t;
24}
25
7e0cf530 26class AliRecoServer : public TQObject
27{
28 RQ_OBJECT("AliRecoServer")
29public:
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
46private:
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
53private:
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
65public:
66
67 ClassDef(AliRecoServer, 0);
68};
69
70#endif /* __AliRecoServer_H__ */