backupandrestore/backupengine/src/sbebufferhandler.cpp
changeset 33 883e91c086aa
parent 0 d0791faffa3f
child 47 63cf70d3ecd8
equal deleted inserted replaced
28:85e0c0339cc3 33:883e91c086aa
    20 */
    20 */
    21 
    21 
    22 
    22 
    23 #include "sbebufferhandler.h"
    23 #include "sbebufferhandler.h"
    24 #include "sblog.h"
    24 #include "sblog.h"
    25 #include <connect/panic.h>
    25 #include "sbepanic.h"
    26 
    26 
    27 namespace conn
    27 namespace conn
    28 	{
    28 	{
    29 	template<class T>
    29 	template<class T>
    30 	TBool ReadFromBufferF(T& aT, TUint8*& appCurrent, const TUint8* apEnd)
    30 	TBool ReadFromBufferF(T& aT, TUint8*& appCurrent, const TUint8* apEnd)
   506 		if ((err != KErrNone) && (err != KErrAlreadyExists))
   506 		if ((err != KErrNone) && (err != KErrAlreadyExists))
   507 			{
   507 			{
   508             __LOG1("CBufferFileReader::WriteToFile() - making directory resulted in fatal error: %d", err);
   508             __LOG1("CBufferFileReader::WriteToFile() - making directory resulted in fatal error: %d", err);
   509 			User::Leave(err);
   509 			User::Leave(err);
   510 			} // if
   510 			} // if
   511 
   511 		
   512         
   512 		TEntry entry;
       
   513 		TBool isReadOnly = EFalse;
       
   514 		err = iFs.Entry(iFileName, entry);
       
   515 		if(KErrNone == err)
       
   516 			{
       
   517 			if(entry.iAtt & KEntryAttReadOnly)
       
   518 				{
       
   519 				isReadOnly = ETrue;
       
   520 				entry.iAtt &= ~KEntryAttReadOnly;
       
   521 				iFs.SetAtt(iFileName, entry.iAtt, ~entry.iAtt);
       
   522 				}
       
   523 			}				
       
   524 				
   513         err = iFileHandle.Replace(iFs, iFileName, EFileWrite);
   525         err = iFileHandle.Replace(iFs, iFileName, EFileWrite);
   514         __LOG1("CBufferFileReader::WriteToFile() - replacing file returned err: %d", err);
   526         __LOG1("CBufferFileReader::WriteToFile() - replacing file returned err: %d", err);
   515         User::LeaveIfError( err );
   527         User::LeaveIfError( err );
       
   528         
       
   529         if(isReadOnly)
       
   530         	{
       
   531 			entry.iAtt |= KEntryAttReadOnly;
       
   532         	iFs.SetAtt(iFileName, entry.iAtt, ~entry.iAtt);
       
   533         	}
   516 			
   534 			
   517 		iFileOpen = ETrue;
   535 		iFileOpen = ETrue;
   518         __LOG("CBufferFileReader::RecreateFileL() - END");
   536         __LOG("CBufferFileReader::RecreateFileL() - END");
   519 		}
   537 		}
   520 	
   538