// // Header file for DROOTHistServer class // (adopted from PrimEx roottools) // #ifndef _DROOTHISTSERVER_H_ #define _DROOTHISTSERVER_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include extern "C" void* RootServerMonitorThread(void* arg); extern "C" void HistResetOnSIGHUP(int signum); class DROOTHistServer{ public: DROOTHistServer(int port, TDirectory *dir); ~DROOTHistServer(void); void Lock(void){pthread_mutex_lock(&fMutex);} void Unlock(void){pthread_mutex_unlock(&fMutex);} void Done(void){fDone = true;} void HandleRequest(void); string ListDirectory(TDirectory *dir); void ResetHistograms(TDirectory *dir); void* MonitorThread(void); private: int fPort; TDirectory *fDir; bool fDone; pthread_t fThread_id; TSocket *fSock; TServerSocket *fServ; // server socket TMonitor *fMon; // socket monitor TList *fSockets; // list of open spy sockets pthread_mutex_t fMutex; int GetObjectSize(char *classname, TObject *object); }; extern DROOTHistServer* groot_hist_server; #endif //_DROOTHISTSERVER_H_