#ifndef AliEnViz_AEVMlClient_H
#define AliEnViz_AEVMlClient_H
#include <Glasses/ZNameMap.h>
#include <Gled/GTime.h>
#include <AliEnViz/AEV_NS.h>
class AEVMlClient : public ZNameMap
{
MAC_RNR_FRIENDS(AEVMlClient);
friend class AEVDemoDriver;
public:
struct MonaEntry
{
TString fFarm, fCluster, fNode, fParam, fValue;
GTime fTime;
TString fDateStr;
virtual ~MonaEntry() {}
const Text_t* StdFormat();
ClassDef(MonaEntry, 1);
};
struct monaentry_time_lt
{
bool operator()(const MonaEntry& a, const MonaEntry& b) const
{ return a.fTime < b.fTime; }
};
struct monaentry_time_gt
{
bool operator()(const MonaEntry& a, const MonaEntry& b) const
{ return a.fTime > b.fTime; }
};
enum SortMode_e { SM_Ascending=-1, SM_None, SM_Descending };
private:
void _init();
GMutex hMonaLock;
protected:
TString mServer;
TString mFarm;
TString mCluster;
TString mNode;
TString mParam;
Float_t mFromHrs;
Float_t mToHrs;
SortMode_e mFLSort;
Bool_t bConnected;
AEV_NS::BiDiPipe mBDP;
void check_connection(const Exc_t& eh);
public:
AEVMlClient(const Text_t* n="AEVMlClient", const Text_t* t=0) :
ZNameMap(n,t), hMonaLock(GMutex::recursive)
{ _init(); }
virtual ~AEVMlClient() {}
void OpenConn();
void CloseConn();
void GetValues(list<AEVMlClient::MonaEntry>& results);
void GetFLValues(list<AEVMlClient::MonaEntry>& results);
void PrintValues();
void PrintFLValues();
void FindJobs();
void FakeFindJobs();
#include "AEVMlClient.h7"
ClassDef(AEVMlClient, 1);
};
#endif