12 #ifndef ROOT_XrdProofWorker
13 #define ROOT_XrdProofWorker
30 #include "XrdOuc/XrdOucString.hh"
33 class XrdProofdProofServ;
35 class XrdProofWorker {
38 XrdProofWorker(
const char *str = 0);
39 XrdProofWorker(
const XrdProofWorker &);
40 virtual ~XrdProofWorker();
42 void Reset(
const char *str);
44 const char *Export(
const char *ord = 0);
46 bool Matches(
const char *host);
47 bool Matches(XrdProofWorker *wrk);
48 int GetNActiveSessions();
50 static void Sort(std::list<XrdProofWorker *> *lst,
51 bool (*f)(XrdProofWorker *&lhs,
52 XrdProofWorker *&rhs));
54 inline int Active()
const {
55 XrdSysMutexHelper mhp(fMutex);
56 return fProofServs.size();
58 inline void AddProofServ(XrdProofdProofServ *xps) {
59 XrdSysMutexHelper mhp(fMutex);
60 return fProofServs.push_back(xps);
62 inline void RemoveProofServ(XrdProofdProofServ *xps) {
63 XrdSysMutexHelper mhp(fMutex);
64 return fProofServs.remove(xps);
67 void MergeProofServs(
const XrdProofWorker &other);
69 std::list<XrdProofdProofServ *> fProofServs;
80 XrdOucString fWorkDir;
90 XrdSysRecMutex *fMutex;