4c4b70ea45ba714c715d4a5d4c570ce47aeeb4c8
[u/mrichter/AliRoot.git] / STORAGE / AliStorageClientThread.h
1 #ifndef AliStorageClientThread_H
2 #define AliStorageClientThread_H
3
4 #include "AliStorageDatabase.h"
5
6 #include <string>
7
8 #include <TThread.h>
9
10 class AliStorageClientThread
11 {
12 public:
13         AliStorageClientThread();
14          ~AliStorageClientThread();
15         void CollectData();
16
17 private:
18         //status flags
19         Int_t fConnectionStatus;
20         Int_t fReceivingStatus;
21         Int_t fSavingStatus;
22         
23         //zmq - receive events
24         std::string fEventServer;
25         
26         //zmq - communication with admin panel
27         static void* CommunicationHandler(void *arg);
28         TThread *fCommunicationThread;
29         
30         //storage file system
31         void CheckCurrentStorageSize();
32         void SetStorageParams(int maxStorageSize,
33                               int maxOccupation,
34                               int removeEvents,
35                               int eventsInChunk);
36         TFile *fCurrentFile;
37
38         AliStorageDatabase *fDatabase;
39         int fCurrentStorageSize;
40         int fMaximumStorageSize;
41         std::string fStoragePath;
42         int fNumberOfEventsInFile;
43         int fStorageOccupationLevel;
44         int fRemoveEventsPercentage;
45
46         Long64_t GetSizeOfAllChunks();
47         
48         AliStorageClientThread(const AliStorageClientThread&);
49         AliStorageClientThread& operator=(const AliStorageClientThread&);
50         
51 };
52
53 #endif