diff --git a/flaim/src/flbackup.cpp b/flaim/src/flbackup.cpp index fb4a64f..074a458 100644 --- a/flaim/src/flbackup.cpp +++ b/flaim/src/flbackup.cpp @@ -1941,8 +1941,7 @@ FSTATIC RCODE flmRestoreFile( // Compare the incremental backup sequence number to the value in the // database's log header. - if( RC_BAD( rc = pSFile->readBlock( - FSBlkAddress( 0, DB_LOG_HEADER_START + LOG_INC_BACKUP_SEQ_NUM), + if( RC_BAD( rc = pSFile->readOffset( 0, DB_LOG_HEADER_START + LOG_INC_BACKUP_SEQ_NUM, 4, ucTmpSeqNum, &uiTmp))) { goto Exit; @@ -1957,8 +1956,7 @@ FSTATIC RCODE flmRestoreFile( // Compare the incremental backup serial number to the value in the // database's log header. - if( RC_BAD( rc = pSFile->readBlock( - FSBlkAddress( 0, DB_LOG_HEADER_START + LOG_INC_BACKUP_SERIAL_NUM), + if( RC_BAD( rc = pSFile->readOffset( 0, DB_LOG_HEADER_START + LOG_INC_BACKUP_SERIAL_NUM, F_SERIAL_NUM_SIZE, ucTmpSerialNum, &uiTmp))) { goto Exit; diff --git a/ftk/src/ftk.h b/ftk/src/ftk.h index 1a8cd88..0ab31d9 100644 --- a/ftk/src/ftk.h +++ b/ftk/src/ftk.h @@ -2204,6 +2204,13 @@ FLMBOOL bGetForUpdate, IF_FileHdl ** ppFileHdlRV); + RCODE FLMAPI readOffset( + FLMUINT uiFileNumber, + FLMUINT uiOffset, + FLMUINT uiBytesToRead, + void * pvBuffer, + FLMUINT * puiBytesRead); + RCODE FLMAPI readBlock( FLMUINT uiBlkAddress, FLMUINT uiBytesToRead, diff --git a/ftk/src/ftksupr.cpp b/ftk/src/ftksupr.cpp index 3578fac..67a5e48 100644 --- a/ftk/src/ftksupr.cpp +++ b/ftk/src/ftksupr.cpp @@ -197,10 +197,11 @@ Exit: } /**************************************************************************** -Desc: Reads a database block into a buffer +Desc: Reads data from a file number into a buffer ****************************************************************************/ -RCODE FLMAPI F_SuperFileHdl::readBlock( - FLMUINT uiBlkAddress, +RCODE FLMAPI F_SuperFileHdl::readOffset( + FLMUINT uiFileNumber, + FLMUINT uiOffset, FLMUINT uiBytesToRead, void * pvBuffer, FLMUINT * puiBytesRead) @@ -208,14 +209,12 @@ RCODE FLMAPI F_SuperFileHdl::readBlock( RCODE rc = NE_FLM_OK; IF_FileHdl * pFileHdl = NULL; - if( RC_BAD( rc = getFileHdl( - m_pSuperFileClient->getFileNumber( uiBlkAddress), FALSE, &pFileHdl))) + if( RC_BAD( rc = getFileHdl( uiFileNumber, FALSE, &pFileHdl))) { goto Exit; } - if( RC_BAD( rc = pFileHdl->read( - m_pSuperFileClient->getFileOffset( uiBlkAddress), uiBytesToRead, + if( RC_BAD( rc = pFileHdl->read( uiOffset, uiBytesToRead, pvBuffer, puiBytesRead))) { goto Exit; @@ -231,6 +230,20 @@ Exit: return( rc); } +/**************************************************************************** +Desc: Reads a database block into a buffer +****************************************************************************/ +RCODE FLMAPI F_SuperFileHdl::readBlock( + FLMUINT uiBlkAddress, + FLMUINT uiBytesToRead, + void * pvBuffer, + FLMUINT * puiBytesRead) +{ + return( readOffset( m_pSuperFileClient->getFileNumber( uiBlkAddress), + m_pSuperFileClient->getFileOffset( uiBlkAddress), uiBytesToRead, + pvBuffer, puiBytesRead)); +} + /**************************************************************************** Desc: Writes a block to the database ****************************************************************************/