Public Member Functions | Private Attributes

fsc_FileLocStorage Class Reference
[G_new_group]

is used to collect file locations got from FSC. More...

#include <fsc_FileLocStorage.h>

Collaboration diagram for fsc_FileLocStorage:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 fsc_FileLocStorage (void)
 ~fsc_FileLocStorage (void)
void Insert (ivd_MediaKey_t a_medKey, ivd_MedVolNum_t a_volNum, ivd_FileLocationData_t &a_fileLoc)
fsc_FLSPerMediaGetNextFSLMedium (ivd_MediaKey_t &a_medKey)
void SortList ()

Private Attributes

 log_CLASSID_m
stx_CacheVec m_mediaStorageCache
unsigned int m_iterIdx

Detailed Description

is used to collect file locations got from FSC.

The particular split location is is stored in ivd_FileLocationData_t structure. Storage is organized by media and volume. So the fsc_FileLocStorage class contains file locations storage per media fsc_FLSPerMedia. The fsc_FLSPerMedia contains file location storage per volume fsc_FLSPerVolume. The fsc_FLSPerVolume contains vector of ivd_FileLocationData_t and vector of i_Recall_t.

Definition at line 48 of file fsc_FileLocStorage.h.


Constructor & Destructor Documentation

fsc_FileLocStorage::fsc_FileLocStorage ( void   ) 

Definition at line 48 of file fsc_FileLocStorage.cpp.

    : 
    m_iterIdx(0)
{
    // Empty
}

fsc_FileLocStorage::~fsc_FileLocStorage ( void   ) 

Definition at line 56 of file fsc_FileLocStorage.cpp.

                                            {
}


Member Function Documentation

fsc_FLSPerMedia * fsc_FileLocStorage::GetNextFSLMedium ( ivd_MediaKey_t a_medKey  ) 

Definition at line 77 of file fsc_FileLocStorage.cpp.

References dbg_DETAIL, fsc_FLSPerMedia::GetMediaKey(), log_DBG_m, log_FUNC_m, m_iterIdx, and m_mediaStorageCache.

Referenced by pm_JobMgr::CreateEfficientRecallJobs().

                                                                              {
    log_FUNC_m(GetNextFSLMedium);
    
    log_DBG_m(dbg_DETAIL, "m_iterIdx: " << m_iterIdx
                       << ", number of media: " << m_mediaStorageCache.size());
    
    while (m_iterIdx < m_mediaStorageCache.size()) {
        fsc_FLSPerMedia* p 
            = static_cast<fsc_FLSPerMedia*>(m_mediaStorageCache[m_iterIdx]);

        a_medKey = p->GetMediaKey();
        
        m_mediaStorageCache[m_iterIdx] = NULL; //job will delete this element

        ++m_iterIdx;
        return p;
    }
    return NULL;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void fsc_FileLocStorage::Insert ( ivd_MediaKey_t  a_medKey,
ivd_MedVolNum_t  a_volNum,
ivd_FileLocationData_t a_fileLoc 
)

Definition at line 60 of file fsc_FileLocStorage.cpp.

References stx_CacheVec::Get(), fsc_FLSPerMedia::Insert(), stx_CacheVec::Insert(), log_FUNC_m, m_mediaStorageCache, and NULL.

Referenced by pm_JobMgr::EfficientRecallGetLocations().

                                                                  {
    log_FUNC_m(Insert);
    fsc_FLSPerMedia *storagePerMedia_p 
        = (fsc_FLSPerMedia*)(m_mediaStorageCache.Get(a_medKey));
    if ( storagePerMedia_p == NULL) {
        storagePerMedia_p = new fsc_FLSPerMedia(a_medKey);
        m_mediaStorageCache.Insert(storagePerMedia_p);
    }
    storagePerMedia_p->Insert(a_volNum,
                              a_fileLoc);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void fsc_FileLocStorage::SortList (  ) 

Definition at line 98 of file fsc_FileLocStorage.cpp.

References log_FUNC_m, m_mediaStorageCache, and fsc_FLSPerMedia::SortList().

Referenced by pm_JobMgr::EfficientRecallGetLocations().

                                  {
    log_FUNC_m(SortList);

    UInt32_t idx = 0;    
    while (idx < m_mediaStorageCache.size()) {
        fsc_FLSPerMedia* p 
            = static_cast<fsc_FLSPerMedia*>(m_mediaStorageCache[idx]);
        p->SortList();
        ++idx;
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 67 of file fsc_FileLocStorage.h.

unsigned int fsc_FileLocStorage::m_iterIdx [private]

Definition at line 70 of file fsc_FileLocStorage.h.

Referenced by GetNextFSLMedium().

Definition at line 69 of file fsc_FileLocStorage.h.

Referenced by GetNextFSLMedium(), Insert(), and SortList().


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