#include <fio_Vector.h>


Definition at line 61 of file fio_Vector.h.
Public Member Functions | |
| fio_Vector (const fio_Vector &v) | |
| fio_Vector (fio_RelFileTrans &a_relFileTrans, ivd_VectorSize_t a_vectorSize=0, ivd_RecordIDX_t a_vectorIndex=0, bool a_changed=true) | |
| virtual | ~fio_Vector () |
| fio_RelFileTrans & | GetRelFileTrans () |
| void | SetVector (const fio_VecQualifers &a_vq) |
| void | operator= (const fio_Vector &v) |
| bool | Write2DB (const void *a_buffer_p, ivd_VectorSize_t a_vectorSize, ivd_RecordIDX_t &a_vectorIndex, fio_Transaction &a_trans) |
| bool | Write2DB (const void *a_buffer_p, fio_Transaction &a_trans) |
| Just write sime sized new data on same place. | |
| void | ReadFromDB (void *a_buffer_p) |
| ivd_VectorSize_t | GetVectorSize () |
| ivd_RecordIDX_t | GetVectorIndex () |
| void | Dump (ostream &os) |
Public Attributes | |
| log_CLASSID_m | |
Protected Attributes | |
| fio_RelFileTrans & | m_relFileTrans |
| ivd_VectorSize_t | m_vectorSize |
| ivd_RecordIDX_t | m_vectorIndex |
| bool | m_changed |
Friends | |
| class | ut_fio_Vector |
| fio_Vector::fio_Vector | ( | const fio_Vector & | v | ) | [explicit] |
Definition at line 45 of file fio_Vector.cpp.
References log_FUNC_A_m, m_changed, m_vectorIndex, and m_vectorSize.
Referenced by fio_Vector().
00045 : 00046 m_relFileTrans(v.m_relFileTrans), 00047 m_vectorSize(v.m_vectorSize), 00048 m_vectorIndex(v.m_vectorIndex), 00049 m_changed(true) 00050 { 00051 log_FUNC_A_m(fio_Vector(fio_Vector), "m_vectorSize=" << m_vectorSize 00052 << ", m_vectorIndex=" << m_vectorIndex 00053 << ", m_changed=" << boolalpha << m_changed); 00054 // Empty 00055 } //============================================================================//

| fio_Vector::fio_Vector | ( | fio_RelFileTrans & | a_relFileTrans, | |
| ivd_VectorSize_t | a_vectorSize = 0, |
|||
| ivd_RecordIDX_t | a_vectorIndex = 0, |
|||
| bool | a_changed = true | |||
| ) | [explicit] |
Definition at line 58 of file fio_Vector.cpp.
References fio_Vector(), and log_FUNC_A_m.
00063 : 00064 m_relFileTrans(a_relFileTrans), 00065 m_vectorSize(a_vectorSize), 00066 m_vectorIndex(a_vectorIndex), 00067 m_changed(a_changed) 00068 { 00069 log_FUNC_A_m(fio_Vector(,,,), "a_vectorSize=" << a_vectorSize 00070 << ", a_vectorIndex=" << a_vectorIndex 00071 << ", a_changed=" << boolalpha << a_changed); 00072 // Empty 00073 } //============================================================================//

| fio_Vector::~fio_Vector | ( | ) | [virtual] |
Definition at line 77 of file fio_Vector.cpp.
References log_FUNC_m.
00078 { 00079 log_FUNC_m(~fio_Vector); 00080 // Empty 00081 }
| fio_RelFileTrans& fio_Vector::GetRelFileTrans | ( | ) | [inline] |
| void fio_Vector::SetVector | ( | const fio_VecQualifers & | a_vq | ) | [inline] |
Definition at line 89 of file fio_Vector.h.
References fio_VecQualifers::idx, and fio_VecQualifers::size.
Referenced by fsc_nsStream::ReadFromDB(), and fsc_nsStream::Write2DB().
00089 { 00090 m_vectorSize = a_vq.size; 00091 m_vectorIndex = a_vq.idx; 00092 };

| void fio_Vector::operator= | ( | const fio_Vector & | v | ) | [inline] |
Definition at line 94 of file fio_Vector.h.
References m_vectorIndex, and m_vectorSize.
Referenced by fio_BasicString::operator=().
00094 { 00095 m_changed = true; 00096 m_vectorSize = v.m_vectorSize; 00097 m_vectorIndex = v.m_vectorIndex; 00098 };

| bool fio_Vector::Write2DB | ( | const void * | a_buffer_p, | |
| ivd_VectorSize_t | a_vectorSize, | |||
| ivd_RecordIDX_t & | a_vectorIndex, | |||
| fio_Transaction & | a_trans | |||
| ) |
Definition at line 85 of file fio_Vector.cpp.
References assert, fio_RelFileTrans::GetVectorIDX(), m_changed, m_relFileTrans, m_vectorIndex, m_vectorSize, NULL, fio_RelFileTrans::ReleaseVectorIdx(), and fio_RelFile::WriteRec().
Referenced by hsm_FileHeader::StoreDirTreeRec(), hsm_FileHeader::StoreNameOwnRec(), hsm_FileHeader::StoreOldNameOwnRec(), fsc_nsStream::Write2DB(), fsc_nsElement::Write2DB(), fsc_nsDirEntryFormattedVec::Write2DB(), fsc_GenerationMgr::Write2DB(), and fio_BasicString::Write2DB().
00088 { 00089 00090 ivd_RecordIDX_t idx = m_vectorIndex; // still valid vector index 00091 00092 if (a_vectorSize == 0) { // nothing to write 00093 if (idx > 0) { // just release current used vectore 00094 m_relFileTrans.ReleaseVectorIdx(idx, m_vectorSize, &a_trans); 00095 idx = 0; 00096 } 00097 else { 00098 return false; // new has no size and old was not stored 00099 } 00100 } 00101 else { // vector has elements 00102 assert(a_buffer_p != NULL); 00103 if (idx == 0) { 00104 idx = m_relFileTrans.GetVectorIDX(a_vectorSize, &a_trans); 00105 } 00106 else if (a_vectorSize != m_vectorSize) { 00107 idx = m_relFileTrans.GetVectorIDX(a_vectorSize, &a_trans); 00108 m_relFileTrans.ReleaseVectorIdx(m_vectorIndex, m_vectorSize, &a_trans); 00109 } 00110 else if (!m_changed) { 00111 // if nothing is changed just anounce caller with proper index and size 00112 a_vectorIndex = m_vectorIndex; 00113 // a_vectorSize = m_vectorSize; 00114 return false; 00115 } 00116 m_relFileTrans.WriteRec(idx, a_buffer_p, a_vectorSize, &a_trans); 00117 } 00118 00119 a_vectorIndex = m_vectorIndex = idx; 00120 m_vectorSize = a_vectorSize; 00121 00122 m_changed = false; 00123 00124 return true; 00125 }


| bool fio_Vector::Write2DB | ( | const void * | a_buffer_p, | |
| fio_Transaction & | a_trans | |||
| ) |
Just write sime sized new data on same place.
Definition at line 129 of file fio_Vector.cpp.
References assert, m_changed, m_relFileTrans, m_vectorIndex, m_vectorSize, NULL, and fio_RelFile::WriteRec().
00130 { 00131 00132 assert(a_buffer_p != NULL); 00133 00134 m_relFileTrans.WriteRec(m_vectorIndex, a_buffer_p, m_vectorSize, &a_trans); 00135 00136 bool chg = m_changed; 00137 m_changed = false; 00138 00139 return chg; 00140 }

| void fio_Vector::ReadFromDB | ( | void * | a_buffer_p | ) | [inline] |
Definition at line 119 of file fio_Vector.h.
Referenced by fio_BasicString::fio_BasicString(), fsc_nsDirEntryFormattedVec::fsc_nsDirEntryFormattedVec(), and fsc_nsStream::ReadFromDB().
00119 { 00120 m_relFileTrans.ReadRec(m_vectorIndex, a_buffer_p, m_vectorSize); 00121 };

| ivd_VectorSize_t fio_Vector::GetVectorSize | ( | ) | [inline] |
Definition at line 123 of file fio_Vector.h.
Referenced by fsc_nsDirEntryFormattedVec::Dump(), fsc_nsAttrStream::Dump(), and fsc_nsStream::ReadFromDB().
00123 { return m_vectorSize; };

| ivd_RecordIDX_t fio_Vector::GetVectorIndex | ( | ) | [inline] |
Definition at line 124 of file fio_Vector.h.
Referenced by fsc_nsDirEntryMgr::AddEntry(), fsc_nsAttrMgr::ChgAttributes(), fsc_nsAttrStream::Dump(), fsc_GenerationMgr::Dump(), and fsc_nsStream::ReadFromDB().
00124 { return m_vectorIndex; };

| void fio_Vector::Dump | ( | ostream & | os | ) |
Reimplemented in fio_BasicString, fsc_GenerationMgr, fsc_nsAttrStream, fsc_nsDirectory, fsc_nsDirEntryFormattedVec, fsc_nsDirEntryVec, and fsc_nsElement.
Definition at line 143 of file fio_Vector.cpp.
References cmn_File::GetFullPathRef(), m_changed, m_relFileTrans, m_vectorIndex, and m_vectorSize.
Referenced by fio_BasicString::Dump().
00143 { 00144 os << " vector linked to rel file " << m_relFileTrans.GetFullPathRef() << endl 00145 << " vector changed " << boolalpha << m_changed << endl 00146 << " vector size " << m_vectorSize << endl 00147 << " vector idx " << m_vectorIndex << endl; 00148 }


friend class ut_fio_Vector [friend] |
Definition at line 62 of file fio_Vector.h.
fio_RelFileTrans& fio_Vector::m_relFileTrans [protected] |
Definition at line 76 of file fio_Vector.h.
Referenced by Dump(), fsc_nsStream::RemoveLeftVectors(), fsc_nsStream::Write2DB(), fsc_GenerationMgr::Write2DB(), and Write2DB().
ivd_VectorSize_t fio_Vector::m_vectorSize [protected] |
Definition at line 80 of file fio_Vector.h.
Referenced by Dump(), fio_Vector(), fsc_GenerationMgr::fsc_GenerationMgr(), fsc_nsDirEntryFormattedVec::fsc_nsDirEntryFormattedVec(), operator=(), fsc_GenerationMgr::Write2DB(), and Write2DB().
ivd_RecordIDX_t fio_Vector::m_vectorIndex [protected] |
Definition at line 81 of file fio_Vector.h.
Referenced by fsc_nsDirEntryFormattedVec::Dump(), Dump(), fio_Vector(), operator=(), fsc_GenerationMgr::Write2DB(), and Write2DB().
bool fio_Vector::m_changed [protected] |
Definition at line 83 of file fio_Vector.h.
Referenced by fsc_nsDirEntryFormattedVec::AddEntry(), fsc_nsElement::ChgOwner(), Dump(), fio_BasicString::fio_BasicString(), fio_Vector(), fsc_GenerationMgr::Insert(), fsc_nsElement::InsertSplit(), fio_BasicString::operator=(), fsc_nsDirEntryFormattedVec::RemoveEntry(), fsc_nsDirEntryFormattedVec::TryToRemoveEntry(), fsc_nsStream::Write2DB(), fsc_nsElement::Write2DB(), fsc_nsDirEntryVec::Write2DB(), fsc_nsDirectory::Write2DB(), fsc_GenerationMgr::Write2DB(), and Write2DB().
Reimplemented in fio_BasicString, fsc_GenerationMgr, fsc_nsAttrStream, fsc_nsDirectory, fsc_nsDirEntryFormattedVec, fsc_nsDirEntryVec, fsc_nsElement, and fsc_nsStream.
Definition at line 86 of file fio_Vector.h.
1.5.6