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;