00001 /* 00002 * Copyright � 2008 Nokia Corporation. 00003 */ 00004 00005 #include <e32base.h> 00006 #include <e32cons.h> 00007 #include <e32std.h> 00008 #include <f32file.h> 00009 #include "DescriptorExamples.h" 00010 00011 // ----------------------------------------------------------------------------- 00012 // @see documentation from the header file "DescriptorExamples.h". 00013 // ----------------------------------------------------------------------------- 00014 void CFileForwarder::ConstructL(const TDesC &logFileName) 00015 { 00016 iBuf = HBufC::NewL( 4096 ); 00017 00018 int pos = logFileName.LocateReverse( '\\' ); 00019 TPtrC dirName = logFileName.Left( pos+1 ); 00020 00021 User::LeaveIfError(iFsSession.Connect()); // connect session 00022 iFsSession.MkDirAll(dirName); 00023 00024 if( iFile.Open(iFsSession,logFileName,EFileWrite|EFileStreamText) 00025 == KErrNone ) 00026 { 00027 // go to the end of the file 00028 TInt tmp = 0; 00029 iFile.Seek(ESeekEnd, tmp); 00030 } else 00031 { 00032 // file doesn't exist, create a new 00033 User::LeaveIfError(iFile.Replace(iFsSession,logFileName, 00034 EFileWrite|EFileStreamText)); 00035 } 00036 } 00037 00038 // ----------------------------------------------------------------------------- 00039 // @see documentation from the header file "DescriptorExamples.h". 00040 // ----------------------------------------------------------------------------- 00041 TPtr CFileForwarder::GetViewBuffer() 00042 { 00043 return iBuf->Des(); 00044 } 00045 00046 // ----------------------------------------------------------------------------- 00047 // @see documentation from the header file "DescriptorExamples.h". 00048 // ----------------------------------------------------------------------------- 00049 void CFileForwarder::UpdateView() 00050 { 00051 TPtrC8 representation((TUint8*)iBuf->Ptr(), iBuf->Size()); 00052 iFile.Write(representation); 00053 iFile.Flush(); 00054 00055 iBuf->Des().SetLength( 0 ); 00056 } 00057 00058 // ----------------------------------------------------------------------------- 00059 // @see documentation from the header file "DescriptorExamples.h". 00060 // ----------------------------------------------------------------------------- 00061 CFileForwarder::~CFileForwarder() 00062 { 00063 iFile.Close(); 00064 iFsSession.Close(); 00065 delete iBuf; 00066 }
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.