xrootd
XrdFrmReqBoss.hh
Go to the documentation of this file.
00001 #ifndef __FRMREQBOSS_H__
00002 #define __FRMREQBOSS_H__
00003 /******************************************************************************/
00004 /*                                                                            */
00005 /*                      X r d F r m R e q b o s s . h h                       */
00006 /*                                                                            */
00007 /* (c) 2010 by the Board of Trustees of the Leland Stanford, Jr., University  */
00008 /*                            All Rights Reserved                             */
00009 /*   Produced by Andrew Hanushevsky for Stanford University under contract    */
00010 /*              DE-AC02-76-SFO0515 with the Department of Energy              */
00011 /******************************************************************************/
00012 
00013 #include "XrdFrc/XrdFrcReqFile.hh"
00014 #include "XrdFrc/XrdFrcRequest.hh"
00015 #include "XrdSys/XrdSysPthread.hh"
00016 
00017 class XrdFrmReqBoss
00018 {
00019 public:
00020 
00021 void Add(XrdFrcRequest &Request);
00022 
00023 void Del(XrdFrcRequest &Request);
00024 
00025 void Process();
00026 
00027 int  Server();
00028 
00029 int  Start(char *aPath, int aMode);
00030 
00031 void Wakeup(int PushIt=1);
00032 
00033      XrdFrmReqBoss(const char *Me, int qVal)
00034                   : rqReady(0),Persona(Me),theQ(qVal),isPosted(0) {}
00035     ~XrdFrmReqBoss() {}
00036 
00037 private:
00038 void Register(XrdFrcRequest &Req, int qNum);
00039 
00040 XrdSysSemaphore  rqReady;
00041 XrdFrcReqFile   *rQueue[XrdFrcRequest::maxPQE];
00042 const char      *Persona;
00043 int              theQ;
00044 int              isPosted;
00045 };
00046 #endif