• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

XrdFrmPstgXfr.hh

Go to the documentation of this file.
00001 #ifndef __FRMPSTGXFR_H__
00002 #define __FRMPSTGXFR_H__
00003 /******************************************************************************/
00004 /*                                                                            */
00005 /*                      X r d F r m P s t g X f r . h h                       */
00006 /*                                                                            */
00007 /* (c) 2009 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 //          $Id: XrdFrmPstgXfr.hh,v 1.3 2009/02/17 00:52:49 abh Exp $
00014 
00015 #include "XrdOuc/XrdOucHash.hh"
00016 #include "XrdSys/XrdSysPthread.hh"
00017 
00018 struct Request;
00019 struct XrdFrmPstgXrq;
00020 class  XrdOucEnv;
00021 class  XrdOucProg;
00022 
00023 class XrdFrmPstgXfr
00024 {
00025 public:
00026 
00027 static int  Init();
00028 
00029 static int  Queue(XrdFrmPstgReq::Request *rP, int slot);
00030 
00031        void Start();
00032 
00033        XrdFrmPstgXfr();
00034       ~XrdFrmPstgXfr() {}
00035 
00036 private:
00037 static int  Notify(XrdFrmPstgReq::Request *rP, int rc, const char *msg=0);
00038 static void Send2File(char *Dest, char *Msg, int Mln);
00039 static void Send2UDP(char *Dest, char *Msg, int Mln);
00040 const char *Stage(XrdFrmPstgXrq *xP, int &retcode);
00041 int         StageCmd(XrdFrmPstgXrq *xP, XrdOucEnv *theEnv);
00042 const char *StageOpt(XrdFrmPstgXrq *xP);
00043 
00044 static XrdSysMutex               hMutex;
00045 static XrdOucHash<XrdFrmPstgXrq> hTab;
00046 
00047 static XrdSysMutex               qMutex;
00048 static XrdSysSemaphore           qReady;
00049 static XrdSysSemaphore           qAvail;
00050 static struct XrdFrmPstgXrq     *First;
00051 static struct XrdFrmPstgXrq     *Last;
00052 static struct XrdFrmPstgXrq     *Free;
00053 
00054 XrdOucProg *xfrCmd;
00055 char cmdBuff[4096];
00056 };
00057 #endif

Generated on Wed Sep 1 2010 for xrootd by  doxygen 1.7.1