diff -r 26645d81f48d -r cc28652e0254 persistentstorage/sql/SRC/Server/SqlBur.cpp --- a/persistentstorage/sql/SRC/Server/SqlBur.cpp Tue Aug 31 16:57:14 2010 +0300 +++ b/persistentstorage/sql/SRC/Server/SqlBur.cpp Wed Sep 01 12:39:58 2010 +0100 @@ -15,13 +15,7 @@ #include "SqlBur.h" #include "SqlAssert.h" -#include "OstTraceDefinitions.h" -#ifdef OST_TRACE_COMPILER_IN_USE -#include "SqlBurTraces.h" -#endif -#include "SqlTraceDef.h" - -#define UNUSED_ARG(arg) arg = arg +#include "SqlPanic.h" //Extracts and returns 32-bit integer from aNumBuf buffer. static TUint32 GetNumUint32L(const TDesC& aNumBuf) @@ -29,7 +23,7 @@ TLex lex(aNumBuf); lex.SkipSpace(); TUint32 num = 0xFFFFFFFF; - __SQLLEAVE_IF_ERROR2(lex.Val(num, EHex)); + __SQLLEAVE_IF_ERROR(lex.Val(num, EHex)); return num; } @@ -39,7 +33,7 @@ TLex lex(aNumBuf); lex.SkipSpace(); TInt64 num = -1; - __SQLLEAVE_IF_ERROR2(lex.Val(num, EHex)); + __SQLLEAVE_IF_ERROR(lex.Val(num, EHex)); return num; } @@ -63,7 +57,6 @@ CSqlBackupClient *self=(CSqlBackupClient *)new(ELeave) CSqlBackupClient(aInterface); CleanupStack::PushL(self); self->ConstructL(); - SQL_TRACE_BUR(OstTrace1(TRACE_INTERNALS, CSQLBACKUPCLIENT_NEWLC, "0x%X;CSqlBackupClient::NewLC", (TUint)self)); return self; } @@ -93,8 +86,6 @@ */ CSqlBackupClient::~CSqlBackupClient() { - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_CSQLBACKUPCLIENT2, "0x%X;CSqlBackupClient::~CSqlBackupClient;iFile.SubSessionHandle()=0x%X", (TUint)this, (TUint)iFile.SubSessionHandle())); - // cancel outstanding requests Cancel(); @@ -139,10 +130,8 @@ @return a flag indicating whether we actioned the error @param the error unused */ -TInt CSqlBackupClient::RunError(TInt aError) +TInt CSqlBackupClient::RunError(TInt /* aError */) { - UNUSED_ARG(aError); - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_RUNERROR, "0x%X;CSqlBackupClient::RunError;aError=%d", (TUint)this, aError)); // just satisfy it that we did something! return KErrNone; } @@ -160,7 +149,6 @@ */ void CSqlBackupClient::NotifyChange() { - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_NOTIFYCHANGE, "0x%X;CSqlBackupClient::NotifyChange;iBurProperty.Handle()=0x%X", (TUint)this, (TUint)iBurProperty.Handle())); iBurProperty.Subscribe(iStatus); SetActive(); } @@ -173,17 +161,10 @@ */ void CSqlBackupClient::TestBurStatusL() { - SQL_TRACE_BUR(OstTrace1(TRACE_INTERNALS, CSQLBACKUPCLIENT_TESTBURSTATUSL_ENTRY, "Entry;0x%X;CSqlBackupClient::TestBurStatusL", (TUint)this)); TInt status; - __SQLTRACE_BURVAR(TInt err = KErrNone); - if((__SQLTRACE_BUREXPR(err =) iBurProperty.Get(status)) != KErrNotFound) + if(iBurProperty.Get(status)!=KErrNotFound) { status&=KBURPartTypeMask; -#ifdef _SQL_RDEBUG_PRINT - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_TESTBURSTATUSL1, "0x%X;CSqlBackupClient::TestBurStatusL;status=%d", (TUint)this, status)); -#else - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_TESTBURSTATUSL2, "0x%X;CSqlBackupClient::TestBurStatusL;status=%{TBURPartType}", (TUint)this, status)); -#endif switch(status) { case EBURUnset: // same as EBURNormal @@ -203,10 +184,9 @@ iActiveBackupClient->ConfirmReadyForBURL(KErrNone); break; default: - break; + return; } } - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_TESTBURSTATUSL_EXIT, "Exit;0x%X;CSqlBackupClient::TestBurStatusL;iProperty.Get() err=%d", (TUint)this, err)); } /** Called when BUE notifies a BUR event @@ -229,12 +209,10 @@ @return an arbitrary number @param TDrive unused */ -TUint CSqlBackupClient::GetExpectedDataSize(TDriveNumber aDrive) +TUint CSqlBackupClient::GetExpectedDataSize(TDriveNumber /* aDrive */) { - UNUSED_ARG(aDrive); // we have no idea at this point - we even don't know who is to be backed up yet const TUint KArbitraryNumber = 1024; - SQL_TRACE_BUR(OstTraceExt3(TRACE_INTERNALS, CSQLBACKUPCLIENT_GETEXPECTEDDATASIZE, "0x%X;CSqlBackupClient::GetExpectedDataSize;aDrive=%d;rc=%u", (TUint)this, (TInt)aDrive, KArbitraryNumber)); return KArbitraryNumber; } @@ -249,13 +227,11 @@ */ void CSqlBackupClient::GetBackupDataSectionL(TPtr8& aBuffer, TBool& aFinishedFlag) { - SQL_TRACE_BUR(OstTraceExt3(TRACE_INTERNALS, CSQLBACKUPCLIENT_GETBACKUPDATASECTIONL0, "0x%X;CSqlBackupClient::GetBackupDataSectionL;iState=%d;iFileIndex=%d", (TUint)this, (TInt)iState, iFileIndex)); // don't assume they set it to false aFinishedFlag=EFalse; // any files to backup if(iFileList.Count()==0) { - SQL_TRACE_BUR(OstTrace1(TRACE_INTERNALS, CSQLBACKUPCLIENT_GETBACKUPDATASECTIONL1, "0x%X;CSqlBackupClient::GetBackupDataSectionL;file count is 0", (TUint)this)); // nothing to backup - just return the finished flag aFinishedFlag=ETrue; // clear down the list @@ -263,7 +239,7 @@ // iFileList closed in dtor return; } - + // run the state machine for(TInt bufFreeSpace=aBuffer.MaxSize()-aBuffer.Size(); bufFreeSpace>0; bufFreeSpace=aBuffer.MaxSize()-aBuffer.Size()) { @@ -273,7 +249,6 @@ { if(iFileIndex>=iFileList.Count()) { - SQL_TRACE_BUR(OstTrace1(TRACE_INTERNALS, CSQLBACKUPCLIENT_GETBACKUPDATASECTIONL2, "0x%X;CSqlBackupClient::GetBackupDataSectionL;all files processed", (TUint)this)); // all files have been processed - send the finished flag aFinishedFlag=ETrue; // clear down the filelist @@ -282,8 +257,6 @@ } // open the database file to send TInt rc=iFile.Open( iInterface->Fs(), iFileList[iFileIndex].FullName(), EFileRead | EFileShareExclusive); - __SQLTRACE_BUREXPR(TPtrC fname = iFileList[iFileIndex].FullName()); - SQL_TRACE_BUR(OstTraceExt5(TRACE_INTERNALS, CSQLBACKUPCLIENT_GETBACKUPDATASECTIONL3, "0x%X;CSqlBackupClient::GetBackupDataSectionL;BEGIN;fname=%S;iFileIndex=%d;iFile.SubSessionHandle()=0x%X;rc=%d", (TUint)this, __SQLPRNSTR(fname), iFileIndex, (TUint)iFile.SubSessionHandle(), rc)); if(KErrNone!=rc) { // there's nothing we can do if we can't open the file so we just skip it @@ -317,7 +290,6 @@ fileSize, // %16lx fileName.Length(), // %8x &fileName); // %S - SQL_TRACE_BUR(OstTraceExt4(TRACE_INTERNALS, CSQLBACKUPCLIENT_GETBACKUPDATASECTIONL5, "0x%X;CSqlBackupClient::GetBackupDataSectionL;fileName=%S;hdrPtr=|%S|;fileSize=%lld", (TUint)this, __SQLPRNSTR(fileName), __SQLPRNSTR(iBuffer), fileSize)); // we need it to look like an 8bit buffer TPtr8 hdrPtr8((TUint8*)iBuffer.Ptr(), iBuffer.Size(), iBuffer.Size()); @@ -385,7 +357,6 @@ } case EBackupEndOfFile: { - SQL_TRACE_BUR(OstTraceExt3(TRACE_INTERNALS, CSQLBACKUPCLIENT_GETBACKUPDATASECTIONL4, "0x%X;CSqlBackupClient::GetBackupDataSectionL;END;iFile.SubSessionHandle()=0x%X;iFileIndex=%d", (TUint)this, (TUint)iFile.SubSessionHandle(), iFileIndex)); iFile.Close(); ++iFileIndex; // move on to next file iState = EBackupNoFileOpen; // go round again @@ -403,10 +374,8 @@ Nothing to do here except tell the server @param TDrive the drive that is being restored (unused) */ -void CSqlBackupClient::RestoreComplete(TDriveNumber aDrive) +void CSqlBackupClient::RestoreComplete(TDriveNumber /* aDrive */) { - UNUSED_ARG(aDrive); - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_RESTORECOMPLETE, "0x%X;CSqlBackupClient::RestoreComplete;aDrive=%d", (TUint)this, (TInt)aDrive)); } /** This is called to let us know that the given SID is to be backed up @@ -418,10 +387,8 @@ @param TDriveNumber the drive to be backed up (unused) @leave */ -void CSqlBackupClient::InitialiseGetProxyBackupDataL(TSecureId aSid, TDriveNumber aDrive) +void CSqlBackupClient::InitialiseGetProxyBackupDataL(TSecureId aSid, TDriveNumber /*aDrive*/) { - UNUSED_ARG(aDrive); - SQL_TRACE_BUR(OstTraceExt3(TRACE_INTERNALS, CSQLBACKUPCLIENT_INITIALIZEGETPROXYBACKUPDATAL, "0x%X;CSqlBackupClient::InitialiseGetProxyBackupDataL;aSid=0x%X;aDrive=%d", (TUint)this, (TUint)aSid.iId, (TInt)aDrive)); // get the list of database files to back up - this is provided by the SQL server GetBackupListL(aSid); // this is the index of the file being processed - point to the beginning @@ -437,10 +404,8 @@ @param TDriveNumber the drive to restore (unused) @leave */ -void CSqlBackupClient::InitialiseRestoreProxyBaseDataL(TSecureId aSid, TDriveNumber aDrive) +void CSqlBackupClient::InitialiseRestoreProxyBaseDataL(TSecureId aSid, TDriveNumber /* aDrive */) { - UNUSED_ARG(aDrive); - SQL_TRACE_BUR(OstTraceExt3(TRACE_INTERNALS, CSQLBACKUPCLIENT_INITIALIZERESTOREPROXYBASEDATAL, "0x%X;CSqlBackupClient::InitialiseRestoreProxyBaseDataL;aSid=0x%X;aDrive=%d", (TUint)this, (TUint)aSid.iId, (TInt)aDrive)); iBuffer.Zero(); // this is the first state of the restore state machine iState=ERestoreExpectChecksum; @@ -461,7 +426,6 @@ */ void CSqlBackupClient::RestoreBaseDataSectionL(TDesC8& aInBuffer, TBool aFinishedFlag) { - SQL_TRACE_BUR(OstTraceExt4(TRACE_INTERNALS, CSQLBACKUPCLIENT_RESTOREBASEDATASECTONL0, "0x%X;CSqlBackupClient::RestoreBaseDataSectionL;iState=%d;aInBuffer.Length()=%d;aFinishedFlag=%d", (TUint)this, (TInt)iState, aInBuffer.Length(), (TInt)aFinishedFlag)); // used to walk the buffer // got a new buffer - because each time this method is called, we have a // fresh chunk of data @@ -562,7 +526,6 @@ iState = ERestoreExpectFileNameSize; iBuffer.Zero(); } - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_RESTOREBASEDATASECTONL1, "0x%X;CSqlBackupClient::RestoreBaseDataSectionL;iFileSize=%lld", (TUint)this, iFileSize)); break; } case ERestoreExpectFileNameSize: // the size of the file name to restore @@ -580,7 +543,6 @@ case ERestoreExpectFileName: // the name of the file to restore { CopyBufData(aInBuffer, inBufferPos, iBuffer, iFileNameSize); - SQL_TRACE_BUR(OstTraceExt4(TRACE_INTERNALS, CSQLBACKUPCLIENT_RESTOREBASEDATASECTONL2, "0x%X;CSqlBackupClient::RestoreBaseDataSectionL;BEGIN;iBuffer=%S;iBuffer.Length()=%d;iFileNameSize=%d", (TUint)this, __SQLPRNSTR(iBuffer), iBuffer.Length(), iFileNameSize)); if(iBuffer.Length() == iFileNameSize) { iState = ERestoreExpectData; @@ -590,7 +552,6 @@ // once all the temp files are created, then they are renamed to the // real file names in one fell swoop __SQLLEAVE_IF_ERROR(iFile.Replace(iInterface->Fs(), iBuffer, EFileWrite | EFileShareExclusive)); - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_RESTOREBASEDATASECTONL3, "0x%X;CSqlBackupClient::RestoreBaseDataSectionL;iFile.SubSessionHandle()=0x%X", (TUint)this, (TUint)iFile.SubSessionHandle())); iBuffer.Zero(); } break; @@ -613,9 +574,8 @@ TUint32 cksum = CheckSumL(iFile) & KMaxTUint32; // done with the file now - has to follow checksum cos it - // expects ann open file - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_RESTOREBASEDATASECTONL4, "0x%X;CSqlBackupClient::RestoreBaseDataSectionL;END;iFile.SubSessionHandle()=0x%X", (TUint)this, (TUint)iFile.SubSessionHandle())); - __SQLLEAVE_IF_ERROR(iFile.Flush()); + // expects an open file + __SQLLEAVE_IF_ERROR(iFile.Flush()); iFile.Close(); // validate that the checksum matches @@ -648,7 +608,6 @@ //the ".bak" file, if exists, will be deleted first. (void)iInterface->Fs().Delete(bak); TInt err=iInterface->Fs().Rename(db,bak); - SQL_TRACE_BUR(OstTraceExt4(TRACE_INTERNALS, CSQLBACKUPCLIENT_RESTOREBASEDATASECTONL5, "0x%X;CSqlBackupClient::RestoreBaseDataSectionL;END;bak=%S;db=%S;err=%d", (TUint)this, __SQLPRNSTR(bak), __SQLPRNSTR(db), err)); if(err == KErrNone || err == KErrNotFound) { // now, rename the .rst as .db @@ -661,6 +620,7 @@ //its owner. Then "TInt err=iInterface->Fs().Rename(db,bak);" will fail again. err2 = err; } + // if we got here, we have a backup of the original database in .db.bak // and the new database in .db }//end of for(...) @@ -677,7 +637,6 @@ // files that belong together and not bits of old and new __SQLLEAVE_IF_ERROR(iInterface->Fs().GetDir(KBackupFilter,KEntryAttNormal,ESortNone,dir)); CleanupStack::PushL(dir); - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_RESTOREBASEDATASECTONL6, "0x%X;CSqlBackupClient::RestoreBaseDataSectionL;bak files count=%d", (TUint)this, dir->Count())); for(TInt a1=0;a1Count();++a1) { TEntry entry=(*dir)[a1]; @@ -716,7 +675,6 @@ // rename all the .bak files to .db CDir *dir=NULL; TInt rc=iInterface->Fs().GetDir(KBackupFilter,KEntryAttNormal,ESortNone,dir); - SQL_TRACE_BUR(OstTraceExt3(TRACE_INTERNALS, CSQLBACKUPCLIENT_TERMINATEMULTISTAGEOPERATION1, "0x%X;CSqlBackupClient::TerminateMultiStageOperation;Fs().GetDir() err=%d;file count=%d", (TUint)this, rc, rc == KErrNone ? dir->Count() : 0)); if(KErrNone!=rc) { // can't get a file list - can't do anything @@ -737,7 +695,7 @@ //and continue with the next file. if(KErrNone != rc) { - SQL_TRACE_BUR(OstTraceExt4(TRACE_INTERNALS, CSQLBACKUPCLIENT_TERMINATEMULTISTAGEOPERATION2, "0x%X;CSqlBackupClient::TerminateMultiStageOperation;Fs().Rename() err=%d;bak=%S;db=%S", (TUint)this, rc, __SQLPRNSTR(bak), __SQLPRNSTR(db))); + RDebug::Print(_L(" *** CSqlBackupClient::TerminateMultiStageOperation(), file \"%S\", err=%d\r\n"), &db, rc); } // backup restored ok } @@ -825,7 +783,6 @@ */ void CSqlBackupClient::GetBackupListL(TSecureId aSid) { - SQL_TRACE_BUR(OstTraceExt2(TRACE_INTERNALS, CSQLBACKUPCLIENT_GETBACKUPLISTL, "0x%X;CSqlBackupClient::GetBackupListL;aSid=0x%X", (TUint)this, (TUint)aSid.iId)); // we own the array - the SQL server just populates it iInterface->GetBackUpListL(aSid,iFileList); } @@ -886,9 +843,9 @@ // void CSqlBackupClient::CopyBufData(const TDesC8& aInBuf, TInt& aInBufReadPos, TDes& aOutBuf, TInt aDataLen) { - __ASSERT_DEBUG(aInBufReadPos >= 0, __SQLPANIC(ESqlPanicBadArgument)); - __ASSERT_DEBUG(aDataLen > 0, __SQLPANIC(ESqlPanicBadArgument)); - __ASSERT_DEBUG(!(aInBuf.Length() & 0x01), __SQLPANIC(ESqlPanicInternalError)); + __SQLASSERT(aInBufReadPos >= 0, ESqlPanicBadArgument); + __SQLASSERT(aDataLen > 0, ESqlPanicBadArgument); + __SQLASSERT(!(aInBuf.Length() & 0x01), ESqlPanicInternalError); TInt needed = (aDataLen - aOutBuf.Length()) << K8to16bitShift; TInt available = aInBuf.Size() - aInBufReadPos;