Public Member Functions | Public Attributes | Private Attributes | Friends

hsm_JobListMgr Class Reference
[Classes for managing object list]

#include <hsm_joblistmgr.h>

Collaboration diagram for hsm_JobListMgr:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 hsm_JobListMgr (const int a_defaultNumOfJobs, i_PartitionManager_ptr a_iPM)
 ~hsm_JobListMgr ()
Int32_t Insert (UInt32_t a_jobIdx, hsm_FileHeader *a_fh_p)
 insert jobElement to job vector and set its position in vector
void ReleaseElement (UInt32_t a_jobIdx, UInt32_t a_jobElemIdx)
 Release jobElement from job vector.
void ReleaseElement (UInt32_t a_jobIdx, UInt32_t a_jobElemIdx, ivd_FileSize_t a_fileSize)
 When file is successfuly hndled then this call release it and increase job size statistics.
bool ReleaseJobIdxWithTest (UInt32_t a_jobIdx)
bool ReleaseJobIdxWithTest (UInt32_t a_jobIdx, UInt32_t &a_numOfHandledFiles, UInt64_t &a_sizeOfHandledFiles)
void ReleaseJobIdx (UInt32_t a_jobIdx)
UInt32_t MigrateFailedJob ()
hsm_FileHeaderAt (UInt32_t a_jobIdx, UInt32_t a_jobElemIdx)
 return pointer to job element
hsm_JobElemVecMgrAt (UInt32_t a_jobIdx)
 return pointer to job element vector
hsm_JobElemVecMgrGetJobElemVecMgr (UInt64_t a_pmJobID, Int32_t &hsmJobIdx)
 return pointer to job element vector and update hsmJobIdx
UInt32_t GetJobIdx (UInt32_t a_numFiles)
 return fre job's index, if no job is free then wait for it.
void SetMigJobID (UInt32_t a_jobIdx, UInt64_t a_pmJobID, ivd_MigrationID_t a_migID)
void SetJobStatus (UInt32_t a_jobIdx, hsm_JobStatus_e a_jobStatus)
ivd_MigrationID_t GetMigrationID (UInt32_t a_jobIdx)
UInt32_t GetNumActiveJobs ()
void GetNumJobs (UInt32_t &a_active, UInt32_t &a_prepared, UInt32_t &a_wait4doMig, UInt32_t &a_doMig, UInt32_t &a_wait4Complete, UInt32_t &a_complete, UInt32_t &a_failed, UInt32_t &a_recall)

Public Attributes

 log_CLASSID_m

Private Attributes

i_PartitionManager_var m_iPM
const int m_defaultNumOfJobs
 number of vecrtors
hsm_Job_p_v_t m_job_p_v
 vector of jobs
hsm_FreeJobIdxStack m_freeJobIdx_s
 stack of free job indeces
cmn_Mutex m_jobList_x
cmn_Mutex m_failedJob_x

Friends

class ut_hsm_JobListMgr

Detailed Description

Definition at line 197 of file hsm_joblistmgr.h.


Constructor & Destructor Documentation

hsm_JobListMgr::hsm_JobListMgr ( const int  a_defaultNumOfJobs,
i_PartitionManager_ptr  a_iPM 
)

Definition at line 268 of file hsm_joblistmgr.cpp.

References log_FUNC_m, m_defaultNumOfJobs, m_freeJobIdx_s, m_iPM, and m_job_p_v.

        :
        m_defaultNumOfJobs(a_defaultNumOfJobs)
{ 
    log_FUNC_m(hsm_JobListMgr);

    m_iPM = i_PartitionManager::_duplicate(a_iPM);

    m_job_p_v.reserve(m_defaultNumOfJobs); 
    for (int i = m_defaultNumOfJobs - 1; i >= 0; i--) {
        hsm_JobElemVecMgr * jobElemVecMgr = new hsm_JobElemVecMgr();
        m_job_p_v.push_back(jobElemVecMgr);
        m_freeJobIdx_s.push(i);
    }
}

hsm_JobListMgr::~hsm_JobListMgr (  ) 

Definition at line 286 of file hsm_joblistmgr.cpp.

References dbg_LOW, log_DBG_m, log_FUNC_m, and m_job_p_v.

                                { 
    log_FUNC_m(~hsm_JobListMgr);

    log_DBG_m(dbg_LOW, "      ~hsm_JobListMgr: delete its elements");
    for (unsigned int i = 0; i < m_job_p_v.size(); i++) {
        delete m_job_p_v[i];
        m_job_p_v[i] = NULL;
    }
}


Member Function Documentation

hsm_FileHeader * hsm_JobListMgr::At ( UInt32_t  a_jobIdx,
UInt32_t  a_jobElemIdx 
)

return pointer to job element

Definition at line 338 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, and m_job_p_v.

Referenced by At(), i_HSM_i::Recall(), and hsm_FHmigc::SendToPM().

                                                                           {
    log_FUNC_m(At(a_jobIdx, a_jobElemIdx));
    if (static_cast<UInt32_t>(m_job_p_v.size()) > a_jobIdx) {
        hsm_JobElemVecMgr &jobElemVecMgr = *m_job_p_v[a_jobIdx];

        if (static_cast<UInt32_t>(jobElemVecMgr.size()) > a_jobElemIdx ) {
            return (jobElemVecMgr[a_jobElemIdx]);
        }
    }
    else {
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
    }
    return NULL;
}

Here is the call graph for this function:

Here is the caller graph for this function:

hsm_JobElemVecMgr & hsm_JobListMgr::At ( UInt32_t  a_jobIdx  ) 

return pointer to job element vector

Definition at line 355 of file hsm_joblistmgr.cpp.

References At(), cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, and m_job_p_v.

                                                       {
    log_FUNC_m(At(a_jobIdx));
    if (static_cast<UInt32_t>(m_job_p_v.size()) > a_jobIdx) {
        return *m_job_p_v[a_jobIdx];
    }
    else {
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
//        throw ivd_InternalError(ie_INVALID_ARG, 
//            "Job index exceed vector size. " + cmn_Num2Str(a_jobIdx), true);
    }
}

Here is the call graph for this function:

hsm_JobElemVecMgr * hsm_JobListMgr::GetJobElemVecMgr ( UInt64_t  a_pmJobID,
Int32_t hsmJobIdx 
)

return pointer to job element vector and update hsmJobIdx

Definition at line 369 of file hsm_joblistmgr.cpp.

References dbg_LOW, log_DBG_m, log_FUNC_m, m_job_p_v, and NULL.

Referenced by i_HSM_i::CompleteMigration(), i_HSM_i::DoMigrationJob(), i_HSM_i::EfficientRecall(), and i_HSM_i::Recall().

                                                                                          {
    log_FUNC_m(GetJobElemVecMgr);
    if (a_pmJobID == 0) {
        log_DBG_m(dbg_LOW, "PM JobID = " << a_pmJobID);
    }
    else {
        Int32_t idx = 0;
        for (hsm_Job_p_v_i iter = m_job_p_v.begin(); iter != m_job_p_v.end(); iter++, idx++) {
            if (   *iter != NULL 
            && (*iter)->GetPMJobID() == a_pmJobID) {
                hsmJobIdx = idx;
                return *iter;
            }
        }
        log_DBG_m(dbg_LOW, "PM JobID not found: " << a_pmJobID);
    }
    return NULL;
}

Here is the caller graph for this function:

UInt32_t hsm_JobListMgr::GetJobIdx ( UInt32_t  a_numFiles  ) 

return fre job's index, if no job is free then wait for it.

see constructor for default number of job indeces

Definition at line 389 of file hsm_joblistmgr.cpp.

References log_FUNC_m, m_freeJobIdx_s, m_job_p_v, and hsm_FreeJobIdxStack::Pop().

Referenced by hsm_FileHeader::EventOffline(), hsm_FHmigc::Migrate(), i_HSM_i::TrigEfficientRecall(), and i_HSM_i::TrigRecall().

                                                      {
    log_FUNC_m(GetJobIdx);

    UInt32_t jobElemVecMgrIdx = m_freeJobIdx_s.Pop();
    m_job_p_v[jobElemVecMgrIdx]->Reserve(a_numFiles);
    return jobElemVecMgrIdx;
}

Here is the call graph for this function:

Here is the caller graph for this function:

ivd_MigrationID_t hsm_JobListMgr::GetMigrationID ( UInt32_t  a_jobIdx  ) 

Definition at line 587 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, and m_job_p_v.

Referenced by hsm_FileHeader::GetJobMigID().

                                                                  {
    log_FUNC_m(GetMigrationID);
    if (static_cast<UInt32_t>(m_job_p_v.size()) > a_jobIdx) {
        return m_job_p_v[a_jobIdx]->GetMigrationID();
    }
    else {
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
    }
    return 0;
}

Here is the call graph for this function:

Here is the caller graph for this function:

UInt32_t hsm_JobListMgr::GetNumActiveJobs (  )  [inline]

Definition at line 262 of file hsm_joblistmgr.h.

References m_defaultNumOfJobs, and m_freeJobIdx_s.

{ return m_defaultNumOfJobs - m_freeJobIdx_s.size();};

void hsm_JobListMgr::GetNumJobs ( UInt32_t a_active,
UInt32_t a_prepared,
UInt32_t a_wait4doMig,
UInt32_t a_doMig,
UInt32_t a_wait4Complete,
UInt32_t a_complete,
UInt32_t a_failed,
UInt32_t a_recall 
)

Definition at line 532 of file hsm_joblistmgr.cpp.

References hjs_COMPLETEMIG, hjs_DOMIG, hjs_MIGFAILED, hjs_PREPARATION, hjs_RECALL, hjs_WAITFORCOMPLETEMIG, hjs_WAITFORDOMIG, log_FUNC_m, m_failedJob_x, and m_job_p_v.

Referenced by i_HSM_i::GetInfo(), and i_HSM_i::ShowStatus().

                                                   {
    log_FUNC_m(GetNumJobs);
    a_active    = 0;
    a_prepared  = 0;
    a_wait4doMig    = 0;
    a_doMig         = 0;
    a_wait4Complete = 0;
    a_complete  = 0;
    a_failed    = 0;
    a_recall    = 0;

    cmn_MutexLock l(m_failedJob_x);
    hsm_JobElemVecMgr** ip = &*m_job_p_v.begin();
    hsm_JobElemVecMgr** ep = &*m_job_p_v.end();
    for (; ip != ep; ++ip) {
        switch ((**ip).GetJobStatus()) {
        case hjs_MIGFAILED :
            ++a_failed;
            break;
        case hjs_PREPARATION :
            ++a_prepared;
            ++a_active;
            break;
        case  hjs_WAITFORDOMIG:
            ++a_wait4doMig;
            ++a_active;
            break;
        case  hjs_DOMIG:
            ++a_doMig;
            ++a_active;
            break;
        case  hjs_WAITFORCOMPLETEMIG:
            ++a_wait4Complete;
            ++a_active;
            break;
        case  hjs_COMPLETEMIG:
            ++a_complete;
            ++a_active;
            break;
        case  hjs_RECALL:
            ++a_recall;
            break;
        default : break;
        }
    }
}

Here is the caller graph for this function:

Int32_t hsm_JobListMgr::Insert ( UInt32_t  a_jobIdx,
hsm_FileHeader a_fh_p 
)

insert jobElement to job vector and set its position in vector

Definition at line 297 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, and m_job_p_v.

Referenced by hsm_FileHeader::EventOffline(), hsm_FileHeader::MigCanToPreJob(), and i_HSM_i::TrigRecall().

                                                                        {

    if (static_cast<UInt32_t>(m_job_p_v.size()) <= a_jobIdx) {
        log_FUNC_m(Insert);
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
    }
    return m_job_p_v[a_jobIdx]->Insert(a_fh_p);
}

Here is the call graph for this function:

Here is the caller graph for this function:

UInt32_t hsm_JobListMgr::MigrateFailedJob (  ) 

Definition at line 483 of file hsm_joblistmgr.cpp.

References dbg_DETAIL, evt_ERROR, g_cmn, ivd_BaseException::GetFriendly(), hsm_JobElemVecMgr::GetJobStatus(), hsm_JobElemVecMgr::GetMigrationID(), hjs_WAITFORDOMIG, ipc_EXEC_m, hsm_JobElemVecMgr::JobToSequence(), log_DBG_m, log_ERR_m, log_FUNC_m, log_WriteEvent(), m_failedJob_x, m_iPM, m_job_p_v, ivd_Product::m_nameShort, cmn_Global::prod, ReleaseJobIdx(), hsm_JobElemVecMgr::SetJobStatus(), and hsm_JobElemVecMgr::SetMigJobID().

Referenced by hsm_FHmigc::TrigMigration().

                                           {
    log_FUNC_m(MigrateFailedJob);
    UInt32_t count = 0;
    cmn_MutexLock l(m_failedJob_x);
    hsm_JobElemVecMgr** bp = &*m_job_p_v.begin();
    hsm_JobElemVecMgr** ip = bp;
    hsm_JobElemVecMgr** ep = &*m_job_p_v.end();
    for (; ip != ep; ++ip) {
        hsm_JobElemVecMgr &job = (**ip);
        if (job.GetJobStatus() == hjs_MIGFAILED) {
            i_JobRequestList_t seqTFileList;
            job.JobToSequence(seqTFileList);
            if (seqTFileList.length() > 0) {
                log_DBG_m(dbg_DETAIL, "  Sequence is prepared to retry Migration of " 
                                    << seqTFileList.length() << " files");

                try {
                    ipc_EXEC_m(
                        i_JobID_t jobID = m_iPM->Migrate(seqTFileList, job.GetMigrationID(), 0, 0, 0);
                        job.SetJobStatus(hjs_WAITFORDOMIG);
                        job.SetMigJobID(jobID, job.GetMigrationID());
                        count += seqTFileList.length();
                        log_DBG_m(dbg_DETAIL, "  Called PM retry Migrate returned. Waiting for PM to call DoMigration.");
                    );
                }
                catch (ivd_Exception &ie) {
                    log_ERR_m("PM->Migrate() failed: " + ie.GetFriendly());
                    ostringstream sstr;
                    sstr << "Failed to start migration on " << g_cmn.prod.m_nameShort
                         << "-PM (" << ie.GetFriendly() << ").";
                    log_WriteEvent(evt_ERROR, sstr.str());
                }
                catch (...){
                    log_ERR_m("PM->Migrate() failed: unknown exception");
                    log_WriteEvent(evt_ERROR, "Failed to start migration on " 
                                              + g_cmn.prod.m_nameShort + "-PM.");
                }
            }
            else {
                ReleaseJobIdx(ip - bp);
            }
        }
    }
    log_DBG_m(dbg_DETAIL, "MigrateFailedJob " 
                        << count << " files");
    return count;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void hsm_JobListMgr::ReleaseElement ( UInt32_t  a_jobIdx,
UInt32_t  a_jobElemIdx 
)

Release jobElement from job vector.

Definition at line 308 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, m_job_p_v, and hsm_JobElemVecMgr::ReleaseElement().

Referenced by hsm_FileHeader::CompleteMigIsDone(), i_HSM_i::Recall(), hsm_FileHeader::Recalled(), ReleaseElement(), and hsm_ListPos::RemoveFromList().

                                                                            {

    if (static_cast<UInt32_t>(m_job_p_v.size()) <= a_jobIdx) {
        log_FUNC_m(ReleaseElement);
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
    }

    hsm_JobElemVecMgr &jobElemVecMgr = *m_job_p_v[a_jobIdx];

    if (jobElemVecMgr.ReleaseElement(a_jobElemIdx)) {
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void hsm_JobListMgr::ReleaseElement ( UInt32_t  a_jobIdx,
UInt32_t  a_jobElemIdx,
ivd_FileSize_t  a_fileSize 
)

When file is successfuly hndled then this call release it and increase job size statistics.

Definition at line 323 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, m_job_p_v, hsm_JobElemVecMgr::ReleaseElement(), and ReleaseElement().

                                                                                                       {

    if (static_cast<UInt32_t>(m_job_p_v.size()) <= a_jobIdx) {
        log_FUNC_m(ReleaseElement);
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
    }

    hsm_JobElemVecMgr &jobElemVecMgr = *m_job_p_v[a_jobIdx];

    if (jobElemVecMgr.ReleaseElement(a_jobElemIdx, a_fileSize)) {
    }
}

Here is the call graph for this function:

void hsm_JobListMgr::ReleaseJobIdx ( UInt32_t  a_jobIdx  ) 

Definition at line 462 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, m_freeJobIdx_s, m_job_p_v, and hsm_FreeJobIdxStack::Push().

Referenced by hsm_FHmigc::Migrate(), MigrateFailedJob(), i_HSM_i::Recall(), hsm_FHmigc::SendToPM(), and i_HSM_i::TrigEfficientRecall().

                                                    {
    log_FUNC_m(ReleaseJobIdx);
    if (static_cast<UInt32_t>(m_job_p_v.size()) > a_jobIdx) {
        m_job_p_v[a_jobIdx]->ReleaseJob();
        m_freeJobIdx_s.Push(a_jobIdx);
    }
    else {
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
//        throw ivd_InternalError(ie_INVALID_ARG, 
//            "Job index exceed vector size. " + cmn_Num2Str(a_jobIdx), true);
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:

bool hsm_JobListMgr::ReleaseJobIdxWithTest ( UInt32_t  a_jobIdx,
UInt32_t a_numOfHandledFiles,
UInt64_t a_sizeOfHandledFiles 
)

Definition at line 441 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, m_freeJobIdx_s, m_job_p_v, hsm_FreeJobIdxStack::Push(), ReleaseJobIdxWithTest(), and hsm_JobElemVecMgr::ReleaseJobWithTest().

                                                                           {
    log_FUNC_m(ReleaseJobIdxWithTest);
    if (static_cast<UInt32_t>(m_job_p_v.size()) > a_jobIdx) {
        hsm_JobElemVecMgr &jevm = *m_job_p_v[a_jobIdx];
        if (jevm.ReleaseJobWithTest(a_numOfHandledFiles, a_sizeOfHandledFiles)) {
            m_freeJobIdx_s.Push(a_jobIdx);
            return true; 
        }
    }
    else {
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
//        throw ivd_InternalError(ie_INVALID_ARG, 
//            "Job index exceed vector size. " + cmn_Num2Str(a_jobIdx), true);
    }
    return false;
}

Here is the call graph for this function:

bool hsm_JobListMgr::ReleaseJobIdxWithTest ( UInt32_t  a_jobIdx  ) 

Definition at line 423 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, m_freeJobIdx_s, m_job_p_v, and hsm_FreeJobIdxStack::Push().

Referenced by i_HSM_i::CompleteMigration(), i_HSM_i::EfficientRecall(), i_HSM_i::Recall(), and ReleaseJobIdxWithTest().

                                                            {
    log_FUNC_m(ReleaseJobIdxWithTest);
    if (static_cast<UInt32_t>(m_job_p_v.size()) > a_jobIdx) {
        if (m_job_p_v[a_jobIdx]->ReleaseJobWithTest()) {
            m_freeJobIdx_s.Push(a_jobIdx);
            return true; 
        }
    }
    else {
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
//        throw ivd_InternalError(ie_INVALID_ARG, 
//            "Job index exceed vector size. " + cmn_Num2Str(a_jobIdx), true);
    }
    return false;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void hsm_JobListMgr::SetJobStatus ( UInt32_t  a_jobIdx,
hsm_JobStatus_e  a_jobStatus 
)

Definition at line 410 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, and m_job_p_v.

Referenced by i_HSM_i::CompleteMigration(), hsm_FileHeader::EventOffline(), hsm_FHmigc::Migrate(), hsm_FHmigc::SendToPM(), i_HSM_i::TrigEfficientRecall(), and i_HSM_i::TrigRecall().

                                                               {
    log_FUNC_m(SetJobStatus);
    if (static_cast<UInt32_t>(m_job_p_v.size()) > a_jobIdx) {
        m_job_p_v[a_jobIdx]->SetJobStatus(a_jobStatus);
    }
    else {
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void hsm_JobListMgr::SetMigJobID ( UInt32_t  a_jobIdx,
UInt64_t  a_pmJobID,
ivd_MigrationID_t  a_migID 
)

Definition at line 398 of file hsm_joblistmgr.cpp.

References cmn_Num2Str(), ie_HSM_INVJOBIDX, log_FUNC_m, and m_job_p_v.

Referenced by hsm_FileHeader::EventOffline(), hsm_FHmigc::SendToPM(), i_HSM_i::TrigEfficientRecall(), and i_HSM_i::TrigRecall().

                                                                                                 {
    log_FUNC_m(SetMigJobID);
    if (static_cast<UInt32_t>(m_job_p_v.size()) > a_jobIdx) {
        m_job_p_v[a_jobIdx]->SetMigJobID(a_pmJobID, a_migID);
    }
    else {
        throw ivd_InternalError(ie_HSM_INVJOBIDX, 
            "Job Idx " + cmn_Num2Str(a_jobIdx) + "  VecSize " + cmn_Num2Str(m_job_p_v.size()), true);
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:


Friends And Related Function Documentation

friend class ut_hsm_JobListMgr [friend]

Definition at line 198 of file hsm_joblistmgr.h.


Member Data Documentation

Definition at line 220 of file hsm_joblistmgr.h.

number of vecrtors

Definition at line 208 of file hsm_joblistmgr.h.

Referenced by GetNumActiveJobs(), and hsm_JobListMgr().

Definition at line 217 of file hsm_joblistmgr.h.

Referenced by GetNumJobs(), and MigrateFailedJob().

stack of free job indeces

Definition at line 214 of file hsm_joblistmgr.h.

Referenced by GetJobIdx(), GetNumActiveJobs(), hsm_JobListMgr(), ReleaseJobIdx(), and ReleaseJobIdxWithTest().

i_PartitionManager_var hsm_JobListMgr::m_iPM [private]

Definition at line 206 of file hsm_joblistmgr.h.

Referenced by hsm_JobListMgr(), and MigrateFailedJob().

Definition at line 216 of file hsm_joblistmgr.h.


The documentation for this class was generated from the following files: