00001 #ifndef __FRMTRANSFER_H__ 00002 #define __FRMTRANSFER_H__ 00003 /******************************************************************************/ 00004 /* */ 00005 /* X r d F r m T r a n s f e r . 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 // $Id: XrdFrmTransfer.hh 35287 2010-09-14 21:19:35Z ganis $ 00014 00015 #include "XrdOuc/XrdOucHash.hh" 00016 #include "XrdSys/XrdSysPthread.hh" 00017 00018 class XrdFrmReqFile; 00019 class XrdFrmRequest; 00020 struct XrdFrmTranArg; 00021 struct XrdFrmTranChk; 00022 class XrdFrmXfrJob; 00023 class XrdOucProg; 00024 00025 class XrdFrmTransfer 00026 { 00027 public: 00028 00029 static 00030 const char *checkFF(const char *Path); 00031 00032 static int Init(); 00033 00034 void Start(); 00035 00036 XrdFrmTransfer(); 00037 ~XrdFrmTransfer() {} 00038 00039 private: 00040 const char *Fetch(); 00041 const char *Fetch(char *lfnpath, int &rc, time_t lktime); 00042 const char *ffCheck(); 00043 void ffMake(int nofile=0); 00044 int SetupCmd(XrdFrmTranArg *aP); 00045 int TrackDC(char *Lfn, char *Mdp, char *Rfn); 00046 int TrackDC(char *Rfn); 00047 const char *Throw(); 00048 void Throwaway(); 00049 const char *ThrowOK(XrdFrmTranChk *cP); 00050 00051 static XrdSysMutex pMutex; 00052 static XrdOucHash<char> pTab; 00053 00054 XrdOucProg *xfrCmd[4]; 00055 XrdFrmXfrJob *xfrP; 00056 char cmdBuff[4096]; 00057 }; 00058 #endif