#include <XrdFrmXfrQueue.hh>
Public Member Functions | |
XrdFrmXfrQueue () | |
~XrdFrmXfrQueue () | |
Static Public Member Functions | |
static int | Add (XrdFrmRequest *rP, XrdFrmReqFile *reqF, int theQ) |
static void | Done (XrdFrmXfrJob *xP, const char *Msg) |
static XrdFrmXfrJob * | Get () |
static int | Init () |
static void | StopMon (void *parg) |
Static Private Member Functions | |
static XrdFrmXfrJob * | Pull () |
static int | Notify (XrdFrmRequest *rP, int qN, int rc, const char *msg=0) |
static void | Send2File (char *Dest, char *Msg, int Mln) |
static void | Send2UDP (char *Dest, char *Msg, int Mln) |
static int | Stopped (int qNum) |
static const char * | xfrName (XrdFrmRequest &reqData, int isOut) |
Static Private Attributes | |
static XrdSysMutex | hMutex |
static XrdOucHash< XrdFrmXfrJob > | hTab |
static XrdSysMutex | qMutex |
static XrdSysSemaphore | qReady |
static theQueue | xfrQ [XrdFrmRequest::numQ] |
Classes | |
struct | theQueue |
Definition at line 23 of file XrdFrmXfrQueue.hh.
XrdFrmXfrQueue::XrdFrmXfrQueue | ( | ) | [inline] |
Definition at line 37 of file XrdFrmXfrQueue.hh.
XrdFrmXfrQueue::~XrdFrmXfrQueue | ( | ) | [inline] |
Definition at line 38 of file XrdFrmXfrQueue.hh.
int XrdFrmXfrQueue::Add | ( | XrdFrmRequest * | rP, | |
XrdFrmReqFile * | reqF, | |||
int | theQ | |||
) | [static] |
Definition at line 54 of file XrdFrmXfrQueue.cc.
References XrdOucHash< T >::Add(), XrdFrmXfrQueue::theQueue::Avail, XrdFrm::Config(), XrdFrmReqFile::Del(), XrdSysError::Emsg(), XrdOucHash< T >::Find(), XrdFrmXfrQueue::theQueue::First, XrdFrmXfrQueue::theQueue::Free, Hash_keep, hMutex, hTab, XrdFrmXfrQueue::theQueue::Last, XrdFrmRequest::LFN, XrdFrmRequest::LFO, XrdFrmConfig::LocalPath(), XrdSysMutex::Lock(), XrdFrmRequest::msgFail, XrdFrmRequest::msgSucc, XrdFrmXfrJob::Next, XrdFrmXfrJob::NoteList, Notify(), XrdFrmRequest::Notify, XrdFrmRequest::numQ, XrdFrmRequest::Options, XrdFrmRequest::outQ, XrdFrmXfrJob::PFN, XrdFrmXfrJob::pfnEnd, XrdSysSemaphore::Post(), qMutex, XrdFrmXfrJob::qNum, qReady, XrdFrmXfrJob::reqData, XrdFrmXfrJob::reqFile, XrdFrmXfrJob::reqFQ, XrdFrmXfrJob::RetCode, XrdFrm::Say(), XrdSysError::Say(), sprintf(), stat, strcpy(), Trace, TRACE_Debug, XrdFrmXfrJob::Type, XrdSysMutex::UnLock(), XrdFrmRequest::User, XrdFrmConfig::Verbose, XrdSysSemaphore::Wait(), xfrName(), and xfrQ.
Referenced by XrdFrmReqBoss::Process(), and XrdFrmMigrate::Queue().
void XrdFrmXfrQueue::Done | ( | XrdFrmXfrJob * | xP, | |
const char * | Msg | |||
) | [static] |
Definition at line 165 of file XrdFrmXfrQueue.cc.
References XrdFrmXfrQueue::theQueue::Avail, XrdFrmReqFile::Del(), XrdOucHash< T >::Del(), XrdFrmXfrQueue::theQueue::Free, hMutex, hTab, XrdSysMutex::Lock(), XrdFrmXfrJob::Next, XrdOucTList::next, XrdFrmXfrJob::NoteList, Notify(), XrdFrmRequest::Notify, XrdSysSemaphore::Post(), qMutex, XrdFrmXfrJob::qNum, XrdFrmXfrJob::reqData, XrdFrmXfrJob::reqFile, XrdFrmXfrJob::reqFQ, XrdFrmXfrJob::RetCode, strcpy(), XrdOucTList::text, XrdSysMutex::UnLock(), and xfrQ.
Referenced by XrdFrmTransfer::Start().
XrdFrmXfrJob * XrdFrmXfrQueue::Get | ( | ) | [static] |
Definition at line 200 of file XrdFrmXfrQueue.cc.
References Pull(), qReady, and XrdSysSemaphore::Wait().
Referenced by XrdFrmTransfer::Start().
int XrdFrmXfrQueue::Init | ( | ) | [static] |
Definition at line 219 of file XrdFrmXfrQueue.cc.
References XrdFrmConfig::AdminPath, XrdFrmXfrQueue::theQueue::Avail, XrdFrm::Config(), XrdSysError::Emsg(), XrdFrmXfrQueue::theQueue::File, XrdFrmXfrQueue::theQueue::Free, InitStop(), n, XrdFrmXfrQueue::theQueue::Name, XrdFrmXfrJob::Next, XrdFrmRequest::numQ, XrdSysSemaphore::Post(), XrdFrmXfrQueue::theQueue::qNum, XrdSysThread::Run(), XrdFrm::Say(), strcat(), strcpy(), XrdFrmConfig::xfrMax, xfrQ, and XRDSYSTHREAD_BIND.
Referenced by XrdFrmTransfer::Init().
void XrdFrmXfrQueue::StopMon | ( | void * | parg | ) | [static] |
Definition at line 418 of file XrdFrmXfrQueue.cc.
References XrdFrmXfrQueue::theQueue::Alert, XrdSysError::Emsg(), XrdFrmXfrQueue::theQueue::File, XrdFrmXfrQueue::theQueue::First, XrdSysMutex::Lock(), XrdFrmXfrQueue::theQueue::Name, XrdFrmXfrJob::Next, XrdSysSemaphore::Post(), qMutex, qReady, XrdFrm::Say(), XrdSysTimer::Snooze(), sprintf(), stat, XrdFrmXfrQueue::theQueue::Stop, XrdSysMutex::UnLock(), and XrdSysSemaphore::Wait().
Referenced by InitStop().
XrdFrmXfrJob * XrdFrmXfrQueue::Pull | ( | ) | [static, private] |
Definition at line 274 of file XrdFrmXfrQueue.cc.
References XrdFrmRequest::addTOD, XrdFrmXfrQueue::theQueue::First, XrdFrmRequest::getQ, XrdFrmXfrQueue::theQueue::Last, XrdSysMutex::Lock(), XrdFrmRequest::migQ, XrdFrmXfrJob::Next, XrdFrmRequest::nilQ, XrdFrmRequest::putQ, ROOT::Math::Cephes::Q1, ROOT::Math::Cephes::Q2, qMutex, XrdFrmXfrJob::reqData, XrdFrmRequest::stgQ, Stopped(), XrdSysMutex::UnLock(), and xfrQ.
Referenced by Get().
int XrdFrmXfrQueue::Notify | ( | XrdFrmRequest * | rP, | |
int | qN, | |||
int | rc, | |||
const char * | msg = 0 | |||
) | [static, private] |
Definition at line 319 of file XrdFrmXfrQueue.cc.
References XrdSysError::Emsg(), XrdFrmRequest::ID, XrdFrmRequest::LFN, XrdFrmRequest::msgFail, XrdFrmRequest::msgSucc, n, XrdFrmRequest::Notify, XrdFrmRequest::Options, XrdFrm::Say(), Send2File(), Send2UDP(), and sprintf().
void XrdFrmXfrQueue::Send2File | ( | char * | Dest, | |
char * | Msg, | |||
int | Mln | |||
) | [static, private] |
Definition at line 374 of file XrdFrmXfrQueue.cc.
References close, DEBUG, XrdSysError::Emsg(), EPNAME, F_SETFD, fcntl(), FD_CLOEXEC, open, XrdFrm::Say(), and write.
Referenced by Notify().
void XrdFrmXfrQueue::Send2UDP | ( | char * | Dest, | |
char * | Msg, | |||
int | Mln | |||
) | [static, private] |
Definition at line 400 of file XrdFrmXfrQueue.cc.
References DEBUG, EPNAME, XrdFrm::Say(), and XrdNetMsg::Send().
Referenced by Notify().
int XrdFrmXfrQueue::Stopped | ( | int | qNum | ) | [static, private] |
Definition at line 451 of file XrdFrmXfrQueue.cc.
References XrdFrmXfrQueue::theQueue::Alert, File, XrdSysSemaphore::Post(), stat, XrdFrmXfrQueue::theQueue::Stop, and xfrQ.
Referenced by Pull().
const char * XrdFrmXfrQueue::xfrName | ( | XrdFrmRequest & | reqData, | |
int | isOut | |||
) | [static, private] |
Definition at line 467 of file XrdFrmXfrQueue.cc.
References XrdFrmRequest::getQ, XrdFrmRequest::migQ, XrdFrmRequest::Options, XrdFrmRequest::Purge, XrdFrmRequest::putQ, and XrdFrmRequest::stgQ.
Referenced by Add().
XrdSysMutex XrdFrmXfrQueue::hMutex [static, private] |
XrdOucHash< XrdFrmXfrJob > XrdFrmXfrQueue::hTab [static, private] |
XrdSysMutex XrdFrmXfrQueue::qMutex [static, private] |
XrdSysSemaphore XrdFrmXfrQueue::qReady [static, private] |
XrdFrmXfrQueue::theQueue XrdFrmXfrQueue::xfrQ [static, private] |