#include <fio_PermDBinfoMgr.h>


Definition at line 185 of file fio_PermDBinfoMgr.h.
| fio_PermDBinfoMgr::fio_PermDBinfoMgr | ( | bool | a_readOnly, | |
| fio_DataBaseID_t | a_dbID, | |||
| cmn_Path | a_path, | |||
| string | a_name | |||
| ) |
Definition at line 114 of file fio_permDBinfoMgr.cpp.
References fio_permDBinfo_t::CheckValidation(), dbg_NORM, cmn_Time::GetTime_t(), fio_permDBinfo_t::Init(), log_DBG_m, log_FUNC_m, m_permDBinfo, ReadInfo(), cmn_File::SeekEndF(), and WriteInfo().
00118 : 00119 fio_File(a_readOnly, 0, a_path, a_name) { 00120 log_FUNC_m(fio_PermDBinfoMgr); 00121 00122 ivd_FilePosition_t fileSize = SeekEndF(); 00123 if (fileSize == 0) { // new or empty file 00124 cmn_Time time; 00125 m_permDBinfo.Init(a_dbID, time.GetTime_t()); 00126 WriteInfo(); 00127 } 00128 else { 00129 ReadInfo(); 00130 m_permDBinfo.CheckValidation(a_dbID); 00131 } 00132 log_DBG_m(dbg_NORM, m_permDBinfo); 00133 } //============================================================================//

| fio_PermDBinfoMgr::~fio_PermDBinfoMgr | ( | ) | [inline] |
| struct fio_permDBinfo_t* fio_PermDBinfoMgr::GetPermDBinfo | ( | ) | [inline, read] |
Definition at line 206 of file fio_PermDBinfoMgr.h.
References m_permDBinfo.
Referenced by fio_JourMgr::AddNewJourFile(), and fio_JourMgr::fio_JourMgr().
00206 { return &m_permDBinfo;};

| ivd_Time32_t fio_PermDBinfoMgr::GetJourDate | ( | ) | [inline] |
Definition at line 208 of file fio_PermDBinfoMgr.h.
References fio_permDBinfo_t::JourDate, and m_permDBinfo.
00208 { return m_permDBinfo.JourDate;};
| fio_DataBaseID_t fio_PermDBinfoMgr::GetDataBaseID | ( | ) | [inline] |
Definition at line 209 of file fio_PermDBinfoMgr.h.
References fio_permDBinfo_t::DataBaseID, and m_permDBinfo.
00209 { return m_permDBinfo.DataBaseID;};
| ivd_FileID_t fio_PermDBinfoMgr::GetLastJourFileID | ( | ) | [inline] |
Definition at line 210 of file fio_PermDBinfoMgr.h.
References fio_permDBinfo_t::LastJourFileID, and m_permDBinfo.
Referenced by fio_JourMgr::fio_JourMgr().
00210 { return m_permDBinfo.LastJourFileID;};

| ivd_TransNumber_t fio_PermDBinfoMgr::GetLastTransNumber | ( | ) | [inline] |
Definition at line 211 of file fio_PermDBinfoMgr.h.
References fio_permDBinfo_t::LastTransNumber, and m_permDBinfo.
Referenced by fio_JourMgr::Replay().
00211 { return m_permDBinfo.LastTransNumber;};

| ivd_FilePosition_t fio_PermDBinfoMgr::GetPostTransPosition | ( | ) | [inline] |
Definition at line 212 of file fio_PermDBinfoMgr.h.
References m_permDBinfo, and fio_permDBinfo_t::PostTransPosition.
00212 { return m_permDBinfo.PostTransPosition;};
| ivd_FileID_t fio_PermDBinfoMgr::GetArhivedSyncJourFileID | ( | ) | [inline] |
Definition at line 214 of file fio_PermDBinfoMgr.h.
References fio_permDBinfo_t::ArchivedSyncJourFileID, and m_permDBinfo.
Referenced by fio_JourMgr::RemoveArhivedJourFile().
00214 { return m_permDBinfo.ArchivedSyncJourFileID;};

| ivd_FileID_t fio_PermDBinfoMgr::GetLastSyncJourFileID | ( | ) | [inline] |
Definition at line 216 of file fio_PermDBinfoMgr.h.
References fio_permDBinfo_t::LastSyncJourFileID, and m_permDBinfo.
Referenced by fio_JourMgr::fio_JourMgr().
00216 { return m_permDBinfo.LastSyncJourFileID;};

| ivd_FilePosition_t fio_PermDBinfoMgr::GetLastSyncPosition | ( | ) | [inline] |
Definition at line 217 of file fio_PermDBinfoMgr.h.
References fio_permDBinfo_t::LastSyncPosition, and m_permDBinfo.
Referenced by fio_JourMgr::fio_JourMgr().
00217 { return m_permDBinfo.LastSyncPosition;};

| void fio_PermDBinfoMgr::SetJourDate | ( | ivd_Time32_t | a_date | ) |
Definition at line 147 of file fio_permDBinfoMgr.cpp.
References fio_permDBinfo_t::JourDate, cmn_Mutex::Lock(), log_FUNC_m, m_permDBinfo, m_write_x, cmn_Mutex::Unlock(), and WriteInfo().
00147 { 00148 log_FUNC_m(SetJourDate); 00149 m_write_x.Lock(); 00150 m_permDBinfo.JourDate = a_date; 00151 WriteInfo(); 00152 m_write_x.Unlock(); 00153 }

| void fio_PermDBinfoMgr::SetLastTransaction | ( | ivd_TransNumber_t | a_transNumber, | |
| ivd_FileID_t | a_jourFileID, | |||
| ivd_FilePosition_t | a_postTransPosition | |||
| ) |
Definition at line 157 of file fio_permDBinfoMgr.cpp.
References dbg_DETAIL, fio_permDBinfo_t::LastJourFileID, fio_permDBinfo_t::LastTransNumber, cmn_Mutex::Lock(), log_DBG_m, log_FUNC_m, m_permDBinfo, m_write_x, fio_permDBinfo_t::PostTransPosition, cmn_Mutex::Unlock(), and WriteInfo().
Referenced by fio_JourMgr::ReleaseWaiters().
00161 { 00162 log_FUNC_m(SetLastTransaction); 00163 m_write_x.Lock(); 00164 00165 log_DBG_m(dbg_DETAIL, "Commit up to trans num " << a_transNumber << 00166 " JourFileID " << a_jourFileID << 00167 " JourPosition = " << a_postTransPosition ); 00168 m_permDBinfo.LastTransNumber = a_transNumber; 00169 m_permDBinfo.LastJourFileID = a_jourFileID; 00170 m_permDBinfo.PostTransPosition = a_postTransPosition; 00171 00172 WriteInfo(); 00173 m_write_x.Unlock(); 00174 }


| void fio_PermDBinfoMgr::SetLastSyncPosition | ( | ivd_FileID_t | a_jourFileID, | |
| ivd_FilePosition_t | a_currentJourPosition, | |||
| bool | a_forced | |||
| ) |
Definition at line 178 of file fio_permDBinfoMgr.cpp.
References fio_permDBinfo_t::ArchivedSyncJourFileID, fio_permDBinfo_t::ArchivedSyncPosition, dbg_NORM, fio_permDBinfo_t::LastSyncJourFileID, fio_permDBinfo_t::LastSyncPosition, cmn_Mutex::Lock(), log_DBG_m, log_FUNC_m, m_permDBinfo, m_write_x, cmn_Mutex::Unlock(), and WriteInfo().
Referenced by fio_JourMgr::SetLastSyncPosition().
00182 { 00183 log_FUNC_m(SetLastSyncPosition); 00184 m_write_x.Lock(); 00185 m_permDBinfo.LastSyncJourFileID = a_jourFileID; 00186 m_permDBinfo.LastSyncPosition = a_currentJourPosition; 00187 if (a_forced) { 00188 m_permDBinfo.ArchivedSyncJourFileID = a_jourFileID; 00189 m_permDBinfo.ArchivedSyncPosition = a_currentJourPosition; 00190 } 00191 WriteInfo(); 00192 log_DBG_m(dbg_NORM, "Set last Sync position." 00193 << " a_forced: " << boolalpha << a_forced); 00194 00195 log_DBG_m(dbg_NORM, m_permDBinfo); 00196 m_write_x.Unlock(); 00197 }


| void fio_PermDBinfoMgr::WriteInfo | ( | ) |
After DB is Synchroniyed than PDBI is update permanently.
Definition at line 202 of file fio_permDBinfoMgr.cpp.
References log_FUNC_m, m_permDBinfo, cmn_File::SeekF(), and cmn_File::WriteF().
Referenced by fio_PermDBinfoMgr(), SetJourDate(), SetLastSyncPosition(), and SetLastTransaction().
00202 { 00203 log_FUNC_m(WriteInfo); 00204 SeekF(0); 00205 WriteF(&m_permDBinfo, sizeof(fio_permDBinfo_t)); 00206 }


| void fio_PermDBinfoMgr::ReadInfo | ( | ) | [private] |
Definition at line 210 of file fio_permDBinfoMgr.cpp.
References log_FUNC_m, m_permDBinfo, cmn_File::ReadF(), and cmn_File::SeekF().
Referenced by fio_PermDBinfoMgr().
00210 { 00211 log_FUNC_m(ReadInfo); 00212 SeekF(0); 00213 ReadF(&m_permDBinfo, sizeof(fio_permDBinfo_t)); 00214 }


struct fio_permDBinfo_t fio_PermDBinfoMgr::m_permDBinfo [read, private] |
permanent DB information
Definition at line 196 of file fio_PermDBinfoMgr.h.
Referenced by fio_PermDBinfoMgr(), GetArhivedSyncJourFileID(), GetDataBaseID(), GetJourDate(), GetLastJourFileID(), GetLastSyncJourFileID(), GetLastSyncPosition(), GetLastTransNumber(), GetPermDBinfo(), GetPostTransPosition(), ReadInfo(), SetJourDate(), SetLastSyncPosition(), SetLastTransaction(), and WriteInfo().
cmn_Mutex fio_PermDBinfoMgr::m_write_x [private] |
atomic write to file
Definition at line 199 of file fio_PermDBinfoMgr.h.
Referenced by SetJourDate(), SetLastSyncPosition(), and SetLastTransaction().
Macro for class name member.
Reimplemented from fio_File.
Definition at line 203 of file fio_PermDBinfoMgr.h.
1.5.6