Classes | Defines | Typedefs | Enumerations | Functions | Variables

Classes for large file i/o, relative file, and DataBase
[Common modules]

Collaboration diagram for Classes for large file i/o, relative file, and DataBase:

Classes

class  cmn_FastFileSearch
 <Description:> A more elaborate class description that describes all aspects of class usage etc. More...
struct  fio_uvListHeader_t
struct  fio_Alter_t
class  fio_AlterJour
class  fio_AlterJourBlock
struct  fio_CirFileHeader_t
struct  fio_CirBlockHeader_t
class  fio_CirFileTrans
class  fio_DBFileDef
 Description of each file inside database. More...
class  fio_DataBase
class  fio_File
 Basic (super) class for large file IO. More...
struct  fio_jourDumpArguments_t
struct  fio_SizeOffset
struct  fio_PermJourInfo_t
 Permanent journal manager information stored in each journal file as header. More...
class  fio_JourFile
 <Description:> A more elaborate class description that describes all aspects of class usage etc. More...
class  fio_JourHandle
class  fio_JourMgr
struct  fio_permDBinfo_t
struct  fio_permDBinfo32_t
 Helper struct to convert from 32-bit aligned pdbi to 64-bit aligned version. More...
struct  fioWIN_permDBinfo_t
struct  fioLIN_permDBinfo_t
class  fio_PermDBinfoMgr
struct  fio_RelFileHeader_t
 The relative file header must stay the same size almost for ever. More...
struct  fio_RelFileHeader32_t
 This struct reflects the original fio_RelFileHeader_t structure on 32 bit systems. More...
struct  fio_UnusedRec_t
class  fio_RelFile
class  fio_RelFileTrans
class  fio_RelFileTransLstMgr
struct  fio_EndTransaction_t
struct  fio_StartTransaction_t
class  fio_Transaction
class  fio_TransGroupLock< _T, _defTransEl >
class  fio_TransLstMgr
class  fio_uvListMgr
class  fio_VarLenRFT
 this class transform each strem of data represented as stream of byte to particular number of records. More...
struct  fio_VecQualifers
class  fio_Vector
class  fio_BasicString
 <Description:> A more elaborate class description that describes all aspects of class usage etc. More...

Defines

#define fio_ALTER_T_version   1
 alter structure MUST be created on heap, cause alteration object take care about it.
#define c_fio_AlterPrefix_d   0x4824
#define c_fio_AlterSuffix_d   0x4424
#define fio_CIR_BLOCK_HDR_T_VERSION   1
 <Description:> A more elaborate class description that describes all aspects of class usage etc.
#define fio_CIR_FILE_HDR_T_VERSION   1
#define fio_CIR_FH_IDENTIFICATION_LEN_d   10
#define ivd_ALIGNDUMMY32(a)
#define fio_PERM_DB_INFO_STRUCT_VERSION_d   1
 Permanent DB information structure.
#define fio_HEADER_STRUCT_VERSION_d   1
 Header structure version.
#define fio_FH_IDENTIFICATION_LEN_d   24
#define fio_UNUSED_REC_CLEAR_BYTES_d   24
#define fio_MAX_UV_SIZE_TO_COMPARE_d   18
#define fio_RECOMENDED_UV_BUFFER_SIZE_d   256
#define fio_START_TRANS_STRING_d   "\250]DV}\251"
 Enought strange string, for better search of start transaction.
#define fio_START_TRANS_STR_LEN_d   6
#define fio_UV_T_VERSION   2
#define fio_ENDTRANS_T_VERSION   1
 NOTE: This two structure are used as start and end transaction mark.
#define fio_STARTTRANS_T_VERSION   1

Typedefs

typedef ivd_RecordIDX_t fio_RecordIDX_t
 Type of fileio record index.
typedef ivd_TransactionID_t fio_TransactionID_t
 Type of transaction ID, to difer between trarnsactions.
typedef cmn_UUID_t fio_DataBaseID_t
 Special numbeer to difer between different DB in case of FSC ivd_PartitionID is used.
typedef UInt64_t ivd_TransNumber_t
 transaction counter
typedef UInt32_t ivd_AlterNumber_t
 number of alterations inside one transaction
typedef vector
< fio_AlterJourBlock * > 
fio_AlterJourBlock_p_v_t
typedef
fio_AlterJourBlock_p_v_t::iterator 
fio_AlterJourBlock_p_v_i
typedef vector
< fio_RelFileTrans * > 
fio_RelFileTrans_p_v_t
typedef vector< ivd_RecordIDX_tfsc_RecordIDX_v_t
typedef vector< fsc_RecordIDX_v_tfsc_RecordIDX_vv_t
typedef vector< fio_SizeOffsetfio_SizeOff_v
typedef fio_SizeOff_v::iterator fio_SizeOff_vi
typedef list< fio_JourHandle * > fio_JourHandle_p_l_t
typedef vector
< fio_uvListHeader_t
fio_LoUV_v_t
typedef fio_LoUV_v_t::iterator fio_LoUV_v_i
typedef vector< fio_uvListMgrfio_uvListMgr_v_t
typedef vector
< fio_RelFileTrans * > 
fio_RelFileTrans_p_v_t
 <Description:> A more elaborate class description that describes all aspects of class usage etc.
typedef
fio_RelFileTrans_p_v_t::iterator 
fio_RelFileTrans_p_v_ti
typedef vector< fio_UV_tfio_UV_v_t
typedef fio_UV_v_t::iterator fio_UV_v_i
typedef vector< fio_Transaction * > fio_Transaction_p_v_t
typedef vector
< fio_TransactionID_t
fio_TransactionID_v_t
typedef vector< fio_RecordIDX_tfio_RecordIDX_v_t

Enumerations

enum  fio_TransType_e {
  ftt_NONE = 0, ftt_NORMAL = 1,
  ftt_HANDLE_UV = 2, ftt_FLUSH_UV = 3,
  ftt_CIRC_VECT = 4, ftt_SENTINEL = 5
}

Functions

 cmn_ASSERT (sizeof(fio_Alter_t)==18)
 cmn_ASSERT (sizeof(fio_CirFileHeader_t)==32)
 cmn_ASSERT (sizeof(fio_CirBlockHeader_t)==8)
 cmn_ASSERT (sizeof(fio_PermJourInfo_t)==44)
 cmn_ASSERT (sizeof(fio_permDBinfo_t)==68)
 cmn_ASSERT (sizeof(fioWIN_permDBinfo_t)==76)
 cmn_ASSERT (sizeof(fioLIN_permDBinfo_t)==68)
 cmn_ASSERT (sizeof(fio_RelFileHeader_t)==46)
 cmn_ASSERT (sizeof(fio_RelFileHeader32_t)==46)
 cmn_ASSERT (sizeof(fio_UnusedRec_t)==1023)
 cmn_ASSERT (sizeof(fio_EndTransaction_t)==10)
 cmn_ASSERT (sizeof(fio_StartTransaction_t)==36)
 cmn_ASSERT (sizeof(fio_VecQualifers)==ivd_SIZE_OF_FIO_VECTOR_QUALIFERS_d)

Variables

IVD_FILEIO_DECL_d const int c_fio_numOfDifVector
 NullClass is used in map as element, cause element is not need.
const Int16_t c_fio_headerStructVersion
const int c_fio_loUVHeaderLen
const ivd_FileBufSize_t c_fio_maxRelFileHeadLen
const string c_fio_ExtenOfTransFile
const unsigned int c_fio_recommendUVBufferSize
IVD_FILEIO_DECL_d const string c_fio_JourFileExt
const ivd_FileBufSize_t c_fio_MaxJourSize
const Int16_t c_fio_JournalHeaderStructVersion
const ivd_FileBufSize_t c_fio_maxJourFileHeadLen
IVD_FILEIO_DECL_d bool g_notCheckRFHeader

Define Documentation

#define c_fio_AlterPrefix_d   0x4824

Definition at line 43 of file fio_Alteration.h.

Referenced by fio_Alter_t::isValid().

#define c_fio_AlterSuffix_d   0x4424

Definition at line 45 of file fio_Alteration.h.

Referenced by fio_Alter_t::Init(), and fio_Alter_t::isValid().

#define fio_ALTER_T_version   1

alter structure MUST be created on heap, cause alteration object take care about it.

Definition at line 40 of file fio_Alteration.h.

Referenced by fio_Alter_t::isValid().

#define fio_CIR_BLOCK_HDR_T_VERSION   1

<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 47 of file fio_CirFileTrans.h.

#define fio_CIR_FH_IDENTIFICATION_LEN_d   10

Definition at line 49 of file fio_CirFileTrans.h.

Referenced by fio_CirFileHeader_t::fio_CirFileHeader_t(), and operator<<().

#define fio_CIR_FILE_HDR_T_VERSION   1

Definition at line 48 of file fio_CirFileTrans.h.

#define fio_ENDTRANS_T_VERSION   1

NOTE: This two structure are used as start and end transaction mark.

Both have version number that is checked at time of rever a transaction. DO NOT change the structure without changing the version number. If you change the structure then update == operator and constructor from file to work properly no mather which version of record is read.

Definition at line 70 of file fio_Transaction.h.

#define fio_FH_IDENTIFICATION_LEN_d   24
#define fio_HEADER_STRUCT_VERSION_d   1

Header structure version.

Definition at line 47 of file fio_RelFile.h.

Referenced by fio_RelFileHeader_t::To64Bit().

#define fio_MAX_UV_SIZE_TO_COMPARE_d   18

Definition at line 144 of file fio_RelFile.h.

Referenced by IsUVFillerCorrupted(), and fio_RelFile::ReadNextUnusedVectorIDX().

#define fio_PERM_DB_INFO_STRUCT_VERSION_d   1

Permanent DB information structure.

These info represent state of DB. Which transaciton is succesfully commited? What is next journal file position that transaction put data in it? Which journal file is current in use? Transaction number and journal date of previous archived database. All thee data are used as reliability feature for DB Replay, Archive,...

Definition at line 68 of file fio_PermDBinfoMgr.h.

Referenced by fio_permDBinfo_t::CheckValidation(), and fio_permDBinfo_t::To64Bit().

#define fio_RECOMENDED_UV_BUFFER_SIZE_d   256

Definition at line 48 of file fio_RelFileTrans.h.

#define fio_START_TRANS_STR_LEN_d   6

Definition at line 48 of file fio_Transaction.h.

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

#define fio_START_TRANS_STRING_d   "\250]DV}\251"

Enought strange string, for better search of start transaction.

Definition at line 47 of file fio_Transaction.h.

Referenced by fio_StartTransaction_t::FindStart().

#define fio_STARTTRANS_T_VERSION   1

Definition at line 91 of file fio_Transaction.h.

Referenced by fio_PermJourInfo_t::Init().

#define fio_UNUSED_REC_CLEAR_BYTES_d   24

Definition at line 143 of file fio_RelFile.h.

Referenced by fio_uvListMgr::WriteUV().

#define fio_UV_T_VERSION   2

Definition at line 51 of file fio_Transaction.h.

Referenced by fio_PermJourInfo_t::Init().

#define ivd_ALIGNDUMMY32 (   a  ) 

Definition at line 56 of file fio_PermDBinfoMgr.h.


Typedef Documentation

typedef fio_AlterJourBlock_p_v_t::iterator fio_AlterJourBlock_p_v_i

Definition at line 55 of file fio_AlterJour.h.

Definition at line 38 of file fio_AlterJour.h.

Special numbeer to difer between different DB in case of FSC ivd_PartitionID is used.

Definition at line 54 of file fileio.h.

Definition at line 57 of file fio_JourMgr.h.

typedef fio_LoUV_v_t::iterator fio_LoUV_v_i

Definition at line 211 of file fio_RelFile.h.

Definition at line 210 of file fio_RelFile.h.

Type of fileio record index.

It's 32 bit length, but could be extend on 64 bit in future. In that case all unused vectore list must be update.

Definition at line 42 of file fileio.h.

Definition at line 43 of file fio_uvListMgr.h.

<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 57 of file fio_RelFileTransLstMgr.h.

Definition at line 98 of file fio_DataBase.h.

typedef fio_RelFileTrans_p_v_t::iterator fio_RelFileTrans_p_v_ti

Definition at line 58 of file fio_RelFileTransLstMgr.h.

Definition at line 96 of file fio_JourFile.h.

typedef fio_SizeOff_v::iterator fio_SizeOff_vi

Definition at line 97 of file fio_JourFile.h.

Definition at line 53 of file fio_TransLstMgr.h.

Type of transaction ID, to difer between trarnsactions.

It's generated by database.

Definition at line 48 of file fileio.h.

Definition at line 54 of file fio_TransLstMgr.h.

typedef fio_UV_v_t::iterator fio_UV_v_i

Definition at line 142 of file fio_Transaction.h.

Definition at line 141 of file fio_Transaction.h.

Definition at line 53 of file fio_RelFileTrans.h.

Definition at line 46 of file fio_JourFile.h.

Definition at line 47 of file fio_JourFile.h.

number of alterations inside one transaction

Definition at line 60 of file fileio.h.

transaction counter

Definition at line 57 of file fileio.h.


Enumeration Type Documentation

Author:
Dejan Volk Lupo, HERMES SoftLab
Enumerator:
ftt_NONE 
ftt_NORMAL 
ftt_HANDLE_UV 
ftt_FLUSH_UV 
ftt_CIRC_VECT 
ftt_SENTINEL 

Definition at line 149 of file fio_Transaction.h.

             {
    ftt_NONE       = 0,  // transaction is not active
    ftt_NORMAL     = 1,  // normal data changes
    ftt_HANDLE_UV  = 2,  // mini transaction and exclusive, handling of UV
    ftt_FLUSH_UV   = 3,  // exclusive to flush all UV
    ftt_CIRC_VECT  = 4,  // circular vector handling
    
    ftt_SENTINEL   = 5
} fio_TransType_e;


Function Documentation

cmn_ASSERT ( sizeof(fio_Alter_t = =18  ) 
cmn_ASSERT ( sizeof(fio_VecQualifers = =ivd_SIZE_OF_FIO_VECTOR_QUALIFERS_d  ) 
cmn_ASSERT ( sizeof(fio_StartTransaction_t = =36  ) 
cmn_ASSERT ( sizeof(fio_EndTransaction_t = =10  ) 
cmn_ASSERT ( sizeof(fio_UnusedRec_t = =1023  ) 
cmn_ASSERT ( sizeof(fio_RelFileHeader32_t = =46  ) 
cmn_ASSERT ( sizeof(fio_RelFileHeader_t = =46  ) 
cmn_ASSERT ( sizeof(fioLIN_permDBinfo_t = =68  ) 
cmn_ASSERT ( sizeof(fioWIN_permDBinfo_t = =76  ) 
cmn_ASSERT ( sizeof(fio_permDBinfo_t = =68  ) 
cmn_ASSERT ( sizeof(fio_PermJourInfo_t = =44  ) 
cmn_ASSERT ( sizeof(fio_CirBlockHeader_t = =8  ) 
cmn_ASSERT ( sizeof(fio_CirFileHeader_t = =32  ) 

Variable Documentation

const string c_fio_ExtenOfTransFile

Definition at line 54 of file fio_Transaction.cpp.

Definition at line 70 of file fio_RelFile.cpp.

Referenced by fio_RelFileHeader_t::fio_RelFileHeader_t().

IVD_FILEIO_DECL_d const string c_fio_JourFileExt

Definition at line 53 of file fio_JourFile.cpp.

Referenced by fio_PermJourInfo_t::Init().

Definition at line 52 of file fio_JourFile.cpp.

Referenced by fio_JourFile::fio_JourFile(), and fio_JourFile::GetJourReadHandle().

Definition at line 56 of file fio_JourFile.cpp.

Referenced by fio_JourMgr::GetJourWriteHandle().

IVD_FILEIO_DECL_d const int c_fio_numOfDifVector

NullClass is used in map as element, cause element is not need.

All functionality is achive only with key. This helper function return unique file name on a_path directory.

Definition at line 71 of file fio_RelFile.cpp.

Referenced by fsc_Files::fsc_Files(), fsc_nsStream::ReadFromDB(), fsc_nsStream::RemoveLeftVectors(), fsc_nsStream::Write2DB(), and fsc_nsAttrMgr::Write2DB().

const unsigned int c_fio_recommendUVBufferSize

Definition at line 48 of file fio_RelFileTrans.cpp.

IVD_FILEIO_DECL_d bool g_notCheckRFHeader

Definition at line 75 of file fio_RelFile.cpp.

Referenced by fio_RelFile::fio_RelFile(), and main().