XrdFrmXfrQueue Class Reference

#include <XrdFrmXfrQueue.hh>

List of all members.

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 XrdFrmXfrJobGet ()
static int Init ()
static void StopMon (void *parg)

Static Private Member Functions

static XrdFrmXfrJobPull ()
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< XrdFrmXfrJobhTab
static XrdSysMutex qMutex
static XrdSysSemaphore qReady
static theQueue xfrQ [XrdFrmRequest::numQ]

Classes

struct  theQueue


Detailed Description

Definition at line 23 of file XrdFrmXfrQueue.hh.


Constructor & Destructor Documentation

XrdFrmXfrQueue::XrdFrmXfrQueue (  )  [inline]

Definition at line 37 of file XrdFrmXfrQueue.hh.

XrdFrmXfrQueue::~XrdFrmXfrQueue (  )  [inline]

Definition at line 38 of file XrdFrmXfrQueue.hh.


Member Function Documentation

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().

Referenced by Add(), and Done().

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().


Member Data Documentation

XrdSysMutex XrdFrmXfrQueue::hMutex [static, private]

Definition at line 49 of file XrdFrmXfrQueue.hh.

Referenced by Add(), and Done().

XrdOucHash< XrdFrmXfrJob > XrdFrmXfrQueue::hTab [static, private]

Definition at line 50 of file XrdFrmXfrQueue.hh.

Referenced by Add(), and Done().

XrdSysMutex XrdFrmXfrQueue::qMutex [static, private]

Definition at line 52 of file XrdFrmXfrQueue.hh.

Referenced by Add(), Done(), Pull(), and StopMon().

XrdSysSemaphore XrdFrmXfrQueue::qReady [static, private]

Definition at line 53 of file XrdFrmXfrQueue.hh.

Referenced by Add(), Get(), and StopMon().

XrdFrmXfrQueue::theQueue XrdFrmXfrQueue::xfrQ [static, private]

Definition at line 68 of file XrdFrmXfrQueue.hh.

Referenced by Add(), Done(), Init(), Pull(), and Stopped().


The documentation for this class was generated from the following files:
Generated on Tue Jul 5 16:50:34 2011 for ROOT_528-00b_version by  doxygen 1.5.1