#ifndef HONLINECLIENTSERVERCOM_H
#define HONLINECLIENTSERVERCOM_H
#include "TList.h"
#include "TSocket.h"
#include "TServerSocket.h"
#include "TMonitor.h"
#include "TNamed.h"
#include "honlinemonhist.h"
#include "TMessage.h"
#include "TMap.h"
#include "TObjString.h"
#include "TThread.h"
#include <vector>
using namespace std;
typedef Bool_t (*fillptrHOnlineClientServerCom)(Int_t); 
class HOnlineClientServerCom : public TNamed {
public:
    
    TMap clientRequests;
    HOnlineClientServerCom(TString name, TString hostname, Int_t port);
    virtual ~HOnlineClientServerCom();
    Bool_t init();
    Bool_t processClientRequests();
    Int_t processClients(TList& histPool);
    
    Bool_t sendHistToClient(TSocket* socket, HOnlineMonHistAddon* hist);
    
    Bool_t sendTextToClient(TSocket* socket, TString msg);
    
    Bool_t sendListToClient(TSocket* socket, TList* list);
    void setDebug(Bool_t dodebug) { fDebug = dodebug; }
    
    static void setEvtCounterInterval(Int_t ct = 100) { fEvtCtInterval = ct ;}
    
    void  eventLoop(vector < fillptrHOnlineClientServerCom >*  fillfunctions);
private:
    TMonitor *monitor;
    TServerSocket *serversocket;
    TList socketlist;
    TSocket* masterClient;         
    Int_t fPort;	           
    TString fHostname;
    Int_t fTimeout;	           
    Bool_t fDebug;                 
    static Int_t fEvtCtInterval;   
    static Float_t fSpeed;         
    
    static Bool_t isInit;
    static Bool_t doStop;
    TThread* eventLoopThread;                  
    static void* ThreadEventLoop(void* arg);   
    ClassDef(HOnlineClientServerCom, 1);
};
#endif
 honlineclientservercom.h:1  honlineclientservercom.h:2  honlineclientservercom.h:3  honlineclientservercom.h:4  honlineclientservercom.h:5  honlineclientservercom.h:6  honlineclientservercom.h:7  honlineclientservercom.h:8  honlineclientservercom.h:9  honlineclientservercom.h:10  honlineclientservercom.h:11  honlineclientservercom.h:12  honlineclientservercom.h:13  honlineclientservercom.h:14  honlineclientservercom.h:15  honlineclientservercom.h:16  honlineclientservercom.h:17  honlineclientservercom.h:18  honlineclientservercom.h:19  honlineclientservercom.h:20  honlineclientservercom.h:21  honlineclientservercom.h:22  honlineclientservercom.h:23  honlineclientservercom.h:24  honlineclientservercom.h:25  honlineclientservercom.h:26  honlineclientservercom.h:27  honlineclientservercom.h:28  honlineclientservercom.h:29  honlineclientservercom.h:30  honlineclientservercom.h:31  honlineclientservercom.h:32  honlineclientservercom.h:33  honlineclientservercom.h:34  honlineclientservercom.h:35  honlineclientservercom.h:36  honlineclientservercom.h:37  honlineclientservercom.h:38  honlineclientservercom.h:39  honlineclientservercom.h:40  honlineclientservercom.h:41  honlineclientservercom.h:42  honlineclientservercom.h:43  honlineclientservercom.h:44  honlineclientservercom.h:45  honlineclientservercom.h:46  honlineclientservercom.h:47  honlineclientservercom.h:48  honlineclientservercom.h:49  honlineclientservercom.h:50  honlineclientservercom.h:51  honlineclientservercom.h:52  honlineclientservercom.h:53  honlineclientservercom.h:54  honlineclientservercom.h:55  honlineclientservercom.h:56  honlineclientservercom.h:57  honlineclientservercom.h:58  honlineclientservercom.h:59  honlineclientservercom.h:60  honlineclientservercom.h:61  honlineclientservercom.h:62  honlineclientservercom.h:63  honlineclientservercom.h:64  honlineclientservercom.h:65  honlineclientservercom.h:66  honlineclientservercom.h:67  honlineclientservercom.h:68  honlineclientservercom.h:69  honlineclientservercom.h:70  honlineclientservercom.h:71  honlineclientservercom.h:72  honlineclientservercom.h:73