fio_StartTransaction_t Struct Reference
[Classes for large file i/o, relative file, and DataBase]

#include <fio_Transaction.h>

List of all members.


Detailed Description

Definition at line 76 of file fio_Transaction.h.


Public Member Functions

 fio_StartTransaction_t ()
 fio_StartTransaction_t (ivd_TransNumber_t a_transNumber, ivd_FileBufSize_t a_transSize, ivd_AlterNumber_t a_alterNumber, UInt32_t a_FreedVector, UInt32_t a_UsedVector)
void Init (fio_JourHandle &m_jourHnd_p)
bool operator== (fio_StartTransaction_t a)
bool operator== (fio_EndTransaction_t a)

Static Public Member Functions

static ivd_FilePosition_t FindStart (fio_JourHandle &m_jourHnd_p)
static ivd_FilePosition_t FindStart (fio_File &f, ivd_FilePosition_t startPos)

Public Attributes

char Prefix [fio_START_TRANS_STR_LEN_d]
ivd_TransNumber_t TransNumber
ivd_FileBufSize_t TransSize
ivd_AlterNumber_t AlterNumber
time_t Time
unsigned short MilliTime
UInt32_t FreedVector
UInt32_t UsedVector
 log_CLASSID_m

Friends

ostream & operator<< (ostream &a_os, fio_StartTransaction_t &a_startTrans)
 Operator prints fio_StartTransaction to stream.

Constructor & Destructor Documentation

fio_StartTransaction_t::fio_StartTransaction_t (  )  [inline]

Definition at line 77 of file fio_Transaction.h.

00077 {};

fio_StartTransaction_t::fio_StartTransaction_t ( ivd_TransNumber_t  a_transNumber,
ivd_FileBufSize_t  a_transSize,
ivd_AlterNumber_t  a_alterNumber,
UInt32_t  a_FreedVector,
UInt32_t  a_UsedVector 
)

Definition at line 125 of file fio_Transaction.cpp.

References c_StartTransString, c_StartTransStrLen, cmn_Time::GetMilliTime(), cmn_Time::GetTime_t(), MilliTime, Prefix, and Time.

00131             :
00132             TransNumber(a_transNumber),
00133             TransSize(a_transSize),
00134             AlterNumber(a_alterNumber),
00135             FreedVector(a_FreedVector),
00136             UsedVector(a_UsedVector)
00137 {
00138     strncpy(Prefix, c_StartTransString, c_StartTransStrLen);  
00139     
00140     cmn_Time t;
00141     Time      = t.GetTime_t();
00142     MilliTime = t.GetMilliTime();
00143 }
//============================================================================//

Here is the call graph for this function:


Member Function Documentation

void fio_StartTransaction_t::Init ( fio_JourHandle m_jourHnd_p  ) 

Definition at line 147 of file fio_Transaction.cpp.

References c_StartTransString, c_StartTransStrLen, dbg_NORM, fio_JourHandle::GetTransNumber(), ie_NOT_STARTTRANS_T, ivd_Error, fio_JourHandle::JourRead(), len, log_DBG_m, log_FUNC_m, Prefix, fio_JourHandle::ResetPosition(), fio_JourHandle::SetTransSize(), and TransNumber.

Referenced by fio_JourFile::Dump(), and fio_Transaction::ReadTransactionFromLog().

00147                                                            {
00148     log_FUNC_m(Init);
00149     a_jourHnd.SetTransSize(sizeof(fio_StartTransaction_t));
00150     unsigned int len = a_jourHnd.JourRead(this, sizeof(fio_StartTransaction_t));
00151 
00152     if (  (len == sizeof(fio_StartTransaction_t))
00153        && (strncmp(Prefix, c_StartTransString, c_StartTransStrLen) == 0)
00154        ) {
00155         if (  (TransNumber != 0)
00156            && (a_jourHnd.GetTransNumber() != 0)
00157            && (TransNumber != a_jourHnd.GetTransNumber() + 1)
00158            ) {
00159                 log_DBG_m(dbg_NORM, "Trans number not in sequence! Last trans number =" << a_jourHnd.GetTransNumber()
00160                                     << *this);            
00161            }
00162         // Empty
00163     }
00164     else { // len > sizeof(Prefix) + sizeof(Version) && ...
00165         a_jourHnd.ResetPosition(); //  revert position
00166         ostringstream sstr;
00167         sstr << "Bad transaction header. TransNumber=" << TransNumber
00168              << ", but expect " << (a_jourHnd.GetTransNumber() + 1);
00169         throw ivd_Error(ie_NOT_STARTTRANS_T, sstr.str(), false);
00170     }
00171 }

Here is the call graph for this function:

Here is the caller graph for this function:

bool fio_StartTransaction_t::operator== ( fio_StartTransaction_t  a  ) 

Definition at line 175 of file fio_Transaction.cpp.

References c_StartTransStrLen, Prefix, and TransNumber.

00175                                                                   {
00176     return  ( (strncmp(Prefix, a.Prefix, c_StartTransStrLen) == 0)
00177             &&(TransNumber == a.TransNumber) );
00178 }

bool fio_StartTransaction_t::operator== ( fio_EndTransaction_t  a  ) 

Definition at line 182 of file fio_Transaction.cpp.

References fio_EndTransaction_t::TransNumber, and TransNumber.

00182                                                                 {
00183     return  ( TransNumber == a.TransNumber );
00184 }

ivd_FilePosition_t fio_StartTransaction_t::FindStart ( fio_JourHandle m_jourHnd_p  )  [static]

Definition at line 188 of file fio_Transaction.cpp.

References fio_JourHandle::GetJourFile(), and fio_JourHandle::GetStartPosition().

Referenced by fio_JourHandle::FindNextTransHdr().

00188                                                                               {
00189     return FindStart(*(fio_File*)m_jourHnd.GetJourFile(), m_jourHnd.GetStartPosition() + 1);
00190 }

Here is the call graph for this function:

Here is the caller graph for this function:

ivd_FilePosition_t fio_StartTransaction_t::FindStart ( fio_File f,
ivd_FilePosition_t  startPos 
) [static]

Definition at line 194 of file fio_Transaction.cpp.

References cmn_FastFileSearch::Find(), fio_START_TRANS_STR_LEN_d, fio_START_TRANS_STRING_d, log_FUNC_m, and cmn_File::SeekEndF().

00194                                                                                              {
00195     log_FUNC_m(StartSearch);
00196 
00197     static cmn_SkipTbl4FS startTransSearchTbl(string(fio_START_TRANS_STRING_d,fio_START_TRANS_STR_LEN_d));
00198 
00199     static cmn_FastPattSearch fastSearch(&startTransSearchTbl);
00200 
00201     cmn_FastFileSearch ffs(&fastSearch, &f, 4096);
00202 
00203 //DEL    ivd_FilePosition_t  pos = ffs.Find(startPos, f.SeekEndF());
00204     ivd_FilePosition_t  pos = ffs.Find(startPos);
00205 
00206     if (pos < 0) {           // if not found then
00207         pos =  f.SeekEndF(); // next start is at the end of the file
00208     }
00209     return pos;
00210 }

Here is the call graph for this function:


Friends And Related Function Documentation

ostream& operator<< ( ostream &  a_os,
fio_StartTransaction_t a_startTrans 
) [friend]

Operator prints fio_StartTransaction to stream.

Definition at line 214 of file fio_Transaction.cpp.

00214                                                                   {
00215     string pref(a_st.Prefix, fio_START_TRANS_STR_LEN_d);
00216     cmn_Time t(a_st.Time, a_st.MilliTime);
00217     a_os << "*** Start Trans Rec " << a_st.TransNumber << '\n';
00218 //    a_os << "Prefix = " << pref                       << '\n';
00219 //    a_os << "Number = " << a_st.TransNumber           << '\n'; 
00220     a_os << "Size   = " << a_st.TransSize             << '\n';
00221     a_os << "Time   = " << t.Time2YMDhmsm()           << '\n';
00222     a_os << "Alter  = " << a_st.AlterNumber           << '\n';
00223     a_os << "ReleVec= " << a_st.FreedVector           << '\n'; 
00224     a_os << "UsedVec= " << a_st.UsedVector            << '\n';
00225     a_os << "*** End\n";
00226     return a_os;
00227 }


Member Data Documentation

char fio_StartTransaction_t::Prefix[fio_START_TRANS_STR_LEN_d]

Definition at line 94 of file fio_Transaction.h.

Referenced by fio_StartTransaction_t(), Init(), operator<<(), and operator==().

Definition at line 97 of file fio_Transaction.h.

Referenced by operator<<(), and fio_Transaction::ReadTransactionFromLog().

Definition at line 98 of file fio_Transaction.h.

Referenced by fio_StartTransaction_t(), and operator<<().

Definition at line 99 of file fio_Transaction.h.

Referenced by fio_StartTransaction_t(), and operator<<().

Definition at line 100 of file fio_Transaction.h.

Referenced by operator<<(), and fio_Transaction::ReadTransactionFromLog().

Definition at line 101 of file fio_Transaction.h.

Referenced by operator<<(), and fio_Transaction::ReadTransactionFromLog().

Definition at line 103 of file fio_Transaction.h.


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

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