#include <fsc_MedPosMgr.h>


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 |
| 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 } //============================================================================//

| fsc_MedPosMgr::~fsc_MedPosMgr | ( | ) | [virtual] |
| 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 }

| 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 }

| 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 }

| 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 }

| 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 }


| 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 }

| 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 }


friend class ut_fsc_MedPosMgr [friend] |
Definition at line 35 of file fsc_MedPosMgr.h.
Definition at line 46 of file fsc_MedPosMgr.h.
Definition at line 47 of file fsc_MedPosMgr.h.
Referenced by Dump(), fsc_MedPosMgr(), GetMediaPos(), IsItEqual(), fsc_SplitInfoCollector::ProcObjMedPosMgr(), Remove(), and Write2DB().
Definition at line 48 of file fsc_MedPosMgr.h.
Referenced by fsc_SplitMgr::AddSplit(), Dump(), fsc_MedPosMgr(), GetMediaPos(), IsItEqual(), fsc_SplitInfoCollector::ProcObjMedPosMgr(), Remove(), and Write2DB().
Definition at line 49 of file fsc_MedPosMgr.h.
Referenced by Dump(), fsc_MedPosMgr(), GetMediaPos(), IsItEqual(), fsc_SplitInfoCollector::ProcObjMedPosMgr(), Remove(), and Write2DB().
1.5.6