00001
00002
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
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());
00022 iFsSession.MkDirAll(dirName);
00023
00024 if( iFile.Open(iFsSession,logFileName,EFileWrite|EFileStreamText)
00025 == KErrNone )
00026 {
00027
00028 TInt tmp = 0;
00029 iFile.Seek(ESeekEnd, tmp);
00030 } else
00031 {
00032
00033 User::LeaveIfError(iFile.Replace(iFsSession,logFileName,
00034 EFileWrite|EFileStreamText));
00035 }
00036 }
00037
00038
00039
00040
00041 TPtr CFileForwarder::GetViewBuffer()
00042 {
00043 return iBuf->Des();
00044 }
00045
00046
00047
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
00060
00061 CFileForwarder::~CFileForwarder()
00062 {
00063 iFile.Close();
00064 iFsSession.Close();
00065 delete iBuf;
00066 }