#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] |
1.5.1