#include <XrdXrootdJob.hh>
Inheritance diagram for XrdXrootdJob:
Public Member Functions | |
int | Cancel (const char *jkey=0, XrdXrootdResponse *resp=0) |
void | DoIt () |
XrdOucTList * | List (void) |
int | Schedule (const char *jkey, const char **args, XrdXrootdResponse *resp, int Opts=0) |
XrdXrootdJob (XrdScheduler *schp, XrdOucProg *pgm, const char *jname, int maxjobs=4) | |
~XrdXrootdJob () | |
Private Member Functions | |
void | CleanUp (XrdXrootdJob2Do *jp) |
int | sendResult (XrdXrootdResponse *resp, const char *rpfx, XrdXrootdJob2Do *job) |
Private Attributes | |
XrdSysMutex | myMutex |
XrdScheduler * | Sched |
XrdOucTable< XrdXrootdJob2Do > | JobTable |
XrdOucProg * | theProg |
char * | JobName |
int | maxJobs |
int | numJobs |
Static Private Attributes | |
static const int | reScan = 15*60 |
Friends | |
class | XrdXrootdJob2Do |
Definition at line 33 of file XrdXrootdJob.hh.
XrdXrootdJob::XrdXrootdJob | ( | XrdScheduler * | schp, | |
XrdOucProg * | pgm, | |||
const char * | jname, | |||
int | maxjobs = 4 | |||
) |
Definition at line 401 of file XrdXrootdJob.cc.
References JobName, maxJobs, numJobs, reScan, Sched, XrdScheduler::Schedule(), and theProg.
XrdXrootdJob::~XrdXrootdJob | ( | ) |
Definition at line 429 of file XrdXrootdJob.cc.
References XrdScheduler::Cancel(), free(), JobName, XrdSysMutex::Lock(), myMutex, Sched, and XrdSysMutex::UnLock().
int XrdXrootdJob::Cancel | ( | const char * | jkey = 0 , |
|
XrdXrootdResponse * | resp = 0 | |||
) |
Definition at line 441 of file XrdXrootdJob.cc.
References CleanUp(), XrdXrootdJob2Do::delClient(), XrdOucTable< T >::Find(), i, XrdOucTable< T >::Item(), JobTable, XrdSysMutex::Lock(), myMutex, XrdOucTable< T >::Next(), XrdXrootdJob2Do::numClients, and XrdSysMutex::UnLock().
Referenced by XrdXrootdAdmin::do_Cj(), and XrdXrootdProtocol::do_CKsum().
void XrdXrootdJob::DoIt | ( | ) | [virtual] |
Implements XrdJob.
Definition at line 489 of file XrdXrootdJob.cc.
References CleanUp(), XrdOucTable< T >::Item(), XrdXrootdJob2Do::JobMark, JobTable, XrdSysMutex::Lock(), myMutex, XrdOucTable< T >::Next(), reScan, Sched, XrdScheduler::Schedule(), XrdSysMutex::UnLock(), and XrdXrootdJob2Do::verClient().
XrdOucTList * XrdXrootdJob::List | ( | void | ) |
Definition at line 516 of file XrdXrootdJob.cc.
References XrdOucTable< T >::Item(), JobName, JobTable, XrdSysMutex::Lock(), XrdXrootdJob2Do::lstClient(), myMutex, XrdOucTable< T >::Next(), sprintf(), and XrdSysMutex::UnLock().
Referenced by XrdXrootdAdmin::do_Lsj_Xeq().
int XrdXrootdJob::Schedule | ( | const char * | jkey, | |
const char ** | args, | |||
XrdXrootdResponse * | resp, | |||
int | Opts = 0 | |||
) |
Definition at line 545 of file XrdXrootdJob.cc.
References XrdXrootdJob2Do::addClient(), XrdOucTable< T >::Alloc(), XrdOucTable< T >::Find(), XrdOucTable< T >::Insert(), XrdXrootdJob2Do::Job_Active, XrdXrootdJob2Do::Job_Done, JOB_Sync, JOB_Unique, JobTable, kXR_ArgMissing, kXR_wait, kXR_waitresp, XrdSysMutex::Lock(), maxJobs, myMutex, numJobs, Sched, XrdScheduler::Schedule(), XrdXrootdResponse::Send(), sendResult(), XrdXrootdJob2Do::Status, XrdSysMutex::UnLock(), and XrdXrootdJob2Do.
Referenced by XrdXrootdProtocol::do_CKsum().
void XrdXrootdJob::CleanUp | ( | XrdXrootdJob2Do * | jp | ) | [private] |
Definition at line 599 of file XrdXrootdJob.cc.
References XrdXrootdJob2Do::Job_Active, XrdXrootdJob2Do::Job_Cancel, XrdXrootdJob2Do::Job_Done, XrdXrootdJob2Do::Job_Waiting, numJobs, Sched, XrdScheduler::Schedule(), and XrdXrootdJob2Do::Status.
Referenced by Cancel(), DoIt(), and sendResult().
int XrdXrootdJob::sendResult | ( | XrdXrootdResponse * | resp, | |
const char * | rpfx, | |||
XrdXrootdJob2Do * | job | |||
) | [private] |
Definition at line 621 of file XrdXrootdJob.cc.
References CleanUp(), XrdXrootdJob2Do::delClient(), i, iovec::iov_base, iovec::iov_len, kXR_ServerError, XrdXrootdJob2Do::numClients, XrdXrootdResponse::Send(), and XrdXrootdJob2Do::theResult.
Referenced by Schedule().
friend class XrdXrootdJob2Do [friend] |
const int XrdXrootdJob::reScan = 15*60 [static, private] |
XrdSysMutex XrdXrootdJob::myMutex [private] |
Definition at line 69 of file XrdXrootdJob.hh.
Referenced by Cancel(), DoIt(), XrdXrootdJob2Do::DoIt(), List(), Schedule(), and ~XrdXrootdJob().
XrdScheduler* XrdXrootdJob::Sched [private] |
Definition at line 70 of file XrdXrootdJob.hh.
Referenced by CleanUp(), DoIt(), XrdXrootdJob2Do::Redrive(), Schedule(), XrdXrootdJob(), and ~XrdXrootdJob().
XrdOucTable<XrdXrootdJob2Do> XrdXrootdJob::JobTable [private] |
Definition at line 71 of file XrdXrootdJob.hh.
Referenced by Cancel(), DoIt(), XrdXrootdJob2Do::DoIt(), List(), XrdXrootdJob2Do::Redrive(), Schedule(), and XrdXrootdJob2Do::verClient().
XrdOucProg* XrdXrootdJob::theProg [private] |
Definition at line 72 of file XrdXrootdJob.hh.
Referenced by XrdXrootdJob2Do::DoIt(), and XrdXrootdJob().
char* XrdXrootdJob::JobName [private] |
Definition at line 73 of file XrdXrootdJob.hh.
Referenced by List(), XrdXrootdJob(), and ~XrdXrootdJob().
int XrdXrootdJob::maxJobs [private] |
Definition at line 74 of file XrdXrootdJob.hh.
Referenced by XrdXrootdJob2Do::DoIt(), Schedule(), and XrdXrootdJob().
int XrdXrootdJob::numJobs [private] |
Definition at line 75 of file XrdXrootdJob.hh.
Referenced by CleanUp(), XrdXrootdJob2Do::DoIt(), Schedule(), XrdXrootdJob2Do::verClient(), and XrdXrootdJob().