fsc_MedPosMgr Class Reference
[File System Catalog]

#include <fsc_MedPosMgr.h>

Inheritance diagram for fsc_MedPosMgr:

Inheritance graph
[legend]
Collaboration diagram for fsc_MedPosMgr:

Collaboration graph
[legend]

List of all members.


Detailed Description

<Description:> A more elaborate class description that describes all aspects of class usage etc.

Author:
Dejan Volk Lupo, HERMES SoftLab
See also:
<reference>

Definition at line 34 of file fsc_MedPosMgr.h.


Public Member Functions

 fsc_MedPosMgr (df_SplitInfo &a_splitInfo)
 fsc_MedPosMgr (const fsc_NextEntity_t &a_nextEntity)
virtual ~fsc_MedPosMgr ()
bool Remove (ivd_MediaKey_t a_mediumKey, ivd_MedVolNum_t a_medVolNum)
 Insert a split into Data location tree.
bool Remove (ivd_MediaKey_t a_mediumKey, ivd_MedVolNum_t a_medVolNum, UInt32_t a_blockOffs)
 Remove one particular entry.
bool IsItEqual (df_SplitInfo &a_splitInfo)
bool IsItEqual (fsc_MedPosMgr &a_medPos)
void GetMediaPos (ivd_MediaPos_t &a_mediaPos)
bool Write2DB (fsc_NextEntity_t &a_nextEntity)
bool Write2DB (fsc_MediaPosition_t &a_mediaPos)
void Dump (ostream &os)
bool TreeWalk (fsc_Collector &a_collector)

Public Attributes

bool m_changed
ivd_DataType_t m_dataType
ivd_MedVolNum_t m_medVolNum
ivd_MediaKey_t m_mediaKey
ivd_BlockOffset_t m_blockOffset
 log_CLASSID_m

Friends

class ut_fsc_MedPosMgr

Constructor & Destructor Documentation

fsc_MedPosMgr::fsc_MedPosMgr ( df_SplitInfo a_splitInfo  ) 

Definition at line 34 of file fsc_MedPosMgr.cpp.

00036             :
00037             m_changed(true),  // it's new
00038             m_medVolNum(a_splitInfo.medVolNum),
00039             m_mediaKey(a_splitInfo.mediaKey),
00040             m_blockOffset(a_splitInfo.blockOffset)
00041 {
00042 //    log_FUNC_m(fsc_MedPosMgr(df_SplitInfo));
00043     
00044 }
//============================================================================//

fsc_MedPosMgr::fsc_MedPosMgr ( const fsc_NextEntity_t a_nextEntity  ) 

Definition at line 47 of file fsc_MedPosMgr.cpp.

References fsc_MediaPosition_t::blockOffset, fsc_NextEntity_t::GetMedPosConst(), m_blockOffset, m_mediaKey, m_medVolNum, fsc_MediaPosition_t::mediaKey, and fsc_MediaPosition_t::medVolNum.

00049             :
00050             m_changed(false)
00051 {
00052 //    log_FUNC_m(fsc_MedPosMgr);
00053     const fsc_MediaPosition_t &mediaPosition = a_nextEntity.GetMedPosConst();
00054     m_medVolNum   = mediaPosition.medVolNum;
00055     m_mediaKey    = mediaPosition.mediaKey;
00056     m_blockOffset = mediaPosition.blockOffset;
00057 }
//============================================================================//

Here is the call graph for this function:

fsc_MedPosMgr::~fsc_MedPosMgr (  )  [virtual]

Definition at line 60 of file fsc_MedPosMgr.cpp.

00061 {
00062 
00063 }


Member Function Documentation

bool fsc_MedPosMgr::Remove ( ivd_MediaKey_t  a_mediumKey,
ivd_MedVolNum_t  a_medVolNum 
)

Insert a split into Data location tree.

remove all entries from particular volume. Return true if removed.

Definition at line 66 of file fsc_MedPosMgr.cpp.

References dbg_DETAIL, log_DBG_m, log_FUNC_m, m_blockOffset, m_changed, m_mediaKey, and m_medVolNum.

Referenced by fsc_Split::Remove(), Remove(), fsc_Generation::Remove(), and fsc_Copy::Remove().

00067                                                             {
00068     log_FUNC_m(Remove);
00069 
00070     log_DBG_m(dbg_DETAIL,"Check Remove medKey " <<  m_mediaKey
00071                         << " volNum " << m_medVolNum);
00072     if (  m_mediaKey    == a_mediumKey
00073        && m_medVolNum   == a_medVolNum) {
00074         log_DBG_m(dbg_DETAIL,"Removed medKey " <<  a_mediumKey
00075                         << " volNum " << a_medVolNum);
00076         m_changed     = true;
00077         m_mediaKey    = 0;
00078         m_medVolNum   = 0;
00079         m_blockOffset = 0;
00080         return true;
00081     }
00082     return false;
00083 }

Here is the caller graph for this function:

bool fsc_MedPosMgr::Remove ( ivd_MediaKey_t  a_mediumKey,
ivd_MedVolNum_t  a_medVolNum,
UInt32_t  a_blockOffs 
)

Remove one particular entry.

Definition at line 86 of file fsc_MedPosMgr.cpp.

References dbg_DETAIL, log_DBG_m, log_FUNC_m, m_blockOffset, m_changed, m_mediaKey, m_medVolNum, and Remove().

00088                                                             {
00089     log_FUNC_m(Remove);
00090     log_DBG_m(dbg_DETAIL,"Check Remove medKey " <<  m_mediaKey
00091                         << " volNum " << m_medVolNum
00092                         << " offset " << a_blockOffs);
00093     if (  m_mediaKey    == a_mediumKey
00094        && m_medVolNum   == a_medVolNum
00095        && m_blockOffset == a_blockOffs) {
00096         log_DBG_m(dbg_DETAIL,"Removed medKey " <<  a_mediumKey
00097                         << " volNum " << a_medVolNum
00098                         << " offset " << a_blockOffs);
00099         m_changed     = true;
00100         m_mediaKey    = 0;
00101         m_medVolNum   = 0;
00102         m_blockOffset = 0;
00103         return true;
00104     }
00105     return false;
00106 }

Here is the call graph for this function:

bool fsc_MedPosMgr::IsItEqual ( df_SplitInfo a_splitInfo  ) 

Definition at line 109 of file fsc_MedPosMgr.cpp.

References df_SplitInfo::blockOffset, m_blockOffset, m_mediaKey, m_medVolNum, df_SplitInfo::mediaKey, and df_SplitInfo::medVolNum.

Referenced by fsc_Copy::AddSplit(), fsc_Generation::Insert(), and fsc_Split::IsSplitEqual().

00109                                                         {
00110 //    log_FUNC_m(IsItEqual);
00111 
00112     return (  m_mediaKey    == a_splitInfo.mediaKey
00113            && m_medVolNum   == a_splitInfo.medVolNum
00114            && m_blockOffset == a_splitInfo.blockOffset);
00115 }

Here is the caller graph for this function:

bool fsc_MedPosMgr::IsItEqual ( fsc_MedPosMgr a_medPos  ) 

Definition at line 118 of file fsc_MedPosMgr.cpp.

References m_blockOffset, m_mediaKey, and m_medVolNum.

00118                                                      {
00119 //    log_FUNC_m(IsItEqual);
00120 
00121     return (  m_mediaKey    == a_medPos.m_mediaKey
00122            && m_medVolNum   == a_medPos.m_medVolNum
00123            && m_blockOffset == a_medPos.m_blockOffset);
00124 }

void fsc_MedPosMgr::GetMediaPos ( ivd_MediaPos_t a_mediaPos  ) 

Definition at line 127 of file fsc_MedPosMgr.cpp.

References ivd_MediaPos_t::blockOffset, dbg_DETAIL, log_DBG_m, log_FUNC_m, m_blockOffset, m_mediaKey, m_medVolNum, ivd_MediaPos_t::mediaKey, and ivd_MediaPos_t::medVolNum.

Referenced by fsc_Generation::GetCopiesPos(), fsc_Split::GetMediaPos(), and fsc_Copy::GetMediaPos().

00127                                                           {
00128     log_FUNC_m(GetMediaPos(ivd_MediaPos_t));
00129 
00130      a_mediaPos.mediaKey    = m_mediaKey;
00131      a_mediaPos.medVolNum   = m_medVolNum;
00132      a_mediaPos.blockOffset = m_blockOffset;
00133 
00134      log_DBG_m(dbg_DETAIL,"GetMedPos: medKey: " <<  m_mediaKey
00135                         << ", MedVolNum: "  << (int)m_medVolNum
00136                         << ", Block offset: "  << m_blockOffset);
00137 }

Here is the caller graph for this function:

bool fsc_MedPosMgr::Write2DB ( fsc_NextEntity_t a_nextEntity  ) 

Definition at line 146 of file fsc_MedPosMgr.cpp.

References fsc_MediaPosition_t::blockOffset, dbg_DETAIL, dlc_MediaPos, dlc_NotUsed, fsc_NextEntity_t::dlcType, fsc_NextEntity_t::GetMedPos(), log_DBG_m, log_FUNC_m, m_blockOffset, m_changed, m_mediaKey, m_medVolNum, fsc_MediaPosition_t::mediaKey, and fsc_MediaPosition_t::medVolNum.

Referenced by fsc_Split::Write2DB(), fsc_Generation::Write2DB(), and fsc_Copy::Write2DB().

00146                                                            {
00147     log_FUNC_m(Write2DB(fsc_NextEntity_t));
00148 
00149     fsc_MediaPosition_t &mediaPosition = a_nextEntity.GetMedPos();
00150     if (  m_mediaKey  == 0
00151        && m_medVolNum == 0) { // entry was removed
00152         log_DBG_m(dbg_DETAIL,"MedPos released medKey " <<  m_mediaKey
00153                           << " volNum " << m_medVolNum);
00154         a_nextEntity.dlcType = dlc_NotUsed;
00155         mediaPosition.mediaKey
00156         = mediaPosition.medVolNum
00157         = mediaPosition.blockOffset = 0;
00158     }
00159     else {
00160         a_nextEntity.dlcType      = dlc_MediaPos;
00161         mediaPosition.mediaKey    = m_mediaKey;
00162         mediaPosition.medVolNum   = m_medVolNum;
00163         mediaPosition.blockOffset = m_blockOffset;
00164     }
00165     return m_changed;
00166 }

Here is the call graph for this function:

Here is the caller graph for this function:

bool fsc_MedPosMgr::Write2DB ( fsc_MediaPosition_t a_mediaPos  ) 

void fsc_MedPosMgr::Dump ( ostream &  os  ) 

Definition at line 169 of file fsc_MedPosMgr.cpp.

References log_FUNC_m, m_blockOffset, m_mediaKey, and m_medVolNum.

Referenced by fsc_Split::Dump(), fsc_Generation::Dump(), fsc_Copy::Dump(), and operator<<().

00169                                     {
00170     log_FUNC_m(Dump);
00171 
00172     os << "               MediaKey     "  << m_mediaKey << endl;
00173     os << "               MedVolNum    "  << (int)m_medVolNum << endl;
00174     os << "               Block offset "  << m_blockOffset << endl;
00175 }

Here is the caller graph for this function:

bool fsc_MedPosMgr::TreeWalk ( fsc_Collector a_collector  ) 

Definition at line 140 of file fsc_MedPosMgr.cpp.

References fsc_Collector::ProcObjMedPosMgr().

Referenced by fsc_Split::TreeWalk(), fsc_Generation::TreeWalk(), and fsc_Copy::TreeWalk().

00140                                                          {
00141 //    log_FUNC_m(TreeWalk);
00142     return a_collector.ProcObjMedPosMgr(this);
00143 }

Here is the call graph for this function:

Here is the caller graph for this function:


Friends And Related Function Documentation

friend class ut_fsc_MedPosMgr [friend]

Definition at line 35 of file fsc_MedPosMgr.h.


Member Data Documentation

Definition at line 44 of file fsc_MedPosMgr.h.

Referenced by Remove(), and Write2DB().

Definition at line 46 of file fsc_MedPosMgr.h.

Reimplemented from fsc_EntryMgr.

Definition at line 52 of file fsc_MedPosMgr.h.


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

Generated on Mon Feb 27 19:21:21 2012 for OPENARCHIVE by  doxygen 1.5.6