--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommscontroller/tsrc/TestConsoles/RtpSourceSink/Src/FileUtil.cpp Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,296 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Part of TestConsole application.
+** Methods for the class TFileUtil
+**
+*/
+
+
+
+
+#include <e32std.h>
+#include "FileUtil.h"
+#include "TestConsoleDef.h"
+
+
+//**********************************************************************
+// Method : TFileUtil::WriteLogFile()
+// Parameters:
+// Function:
+// Returns:
+//**********************************************************************
+
+TInt TFileUtil::WriteLogFile(const TDesC &name, const TDesC &p)
+ {
+ HBufC *msg = NULL;
+ TRAPD(msgError, msg = HBufC::NewL(p.Length() + 50));
+
+ if(msgError != KErrNone)
+ {
+ return 1;
+ }
+
+ TPtr lineBuf(msg->Des());
+ lineBuf.Fill('\0', lineBuf.Length());
+
+ // get the current time and date
+ TTime now;
+ now.HomeTime();
+ TDateTime dateTime = now.DateTime() ;
+
+ // add the current time and date
+ lineBuf.Format(_L("%02d/%02d/%04d\t%02d:%02d:%02d:%02d\t"),
+ dateTime.Day()+1,
+ dateTime.Month()+1,
+ dateTime.Year(),
+ dateTime.Hour(),
+ dateTime.Minute(),
+ dateTime.Second(),
+ (dateTime.MicroSecond() / 1000));
+
+ // followed by the formatted data
+ // lineBuf.AppendFormatList(aFmt, aList, &overflow16
+ lineBuf.Append(p);
+ lineBuf.Append(_L(""));
+ lineBuf.Append(KTxtLineBreak);
+ lineBuf.ZeroTerminate();
+
+ TFileUtil::LogMessage(name, lineBuf);
+ delete msg;
+ return KErrNone;
+ }
+
+
+//**********************************************************************
+// Method : TFileUtil::LogMessage()
+// Parameters:
+// Function:
+// Returns:
+//**********************************************************************
+
+TInt TFileUtil::LogMessage(const TFileName& name, const TDesC& mess )
+ {
+ // convert from unicode to 8 bit
+ TBuf8<KMaxLogLineLength> lineBuf8;
+ const TText* msgBuf = mess.Ptr();
+ for (TInt i = 0; i < mess.Length() ;i++)
+ {
+ lineBuf8.Append(STATIC_CAST(TText, msgBuf[i]));
+ }
+
+ RFs fs;
+ RFile file;
+ TFileName nameWithPath;
+
+ nameWithPath = KDefaultPath;
+ nameWithPath.Append( name );
+ nameWithPath.ZeroTerminate( );
+ TInt err = fs.Connect( );
+
+ if(err!=KErrNone)
+ {
+ return err;
+ }
+
+ err=file.Open(fs, nameWithPath, EFileStreamText|EFileWrite|EFileShareExclusive);
+ if(err==KErrNotFound)
+ {
+ err=file.Create(fs, nameWithPath, EFileStreamText|EFileWrite|EFileShareExclusive);
+ }
+ if(err!=KErrNone)
+ {
+ return err;
+ }
+
+ TInt off(0);
+ err=file.Seek(ESeekEnd, off);
+ if(err!=KErrNone)
+ {
+ return err;
+ }
+
+ file.Write(lineBuf8);
+ file.Flush();
+ file.Close();
+ fs.Close();
+
+ return KErrNone;
+ }
+
+
+//**********************************************************************
+// Method : TFileUtil::WriteLogFile()
+// Parameters:
+// Function:
+// Returns:
+//**********************************************************************
+
+TInt TFileUtil::WriteLogFile(const TDesC& name, const TDesC8& p)
+ {
+ HBufC8* msg = NULL;
+ TRAPD(msgError, msg = HBufC8::NewL(p.Length() + 50));
+ if(msgError != KErrNone)
+ {
+ return 1;
+ }
+
+ TPtr8 b( msg->Des() );
+ b.Fill('\0',b.Length());
+ TTime now;
+ now.HomeTime();
+ TDateTime dateTime = now.DateTime() ;
+
+ // add the current time and date
+ b.AppendFormat(_L8("%02d/%02d/%04d\t%02d:%02d:%02d:%02d\t"),
+ dateTime.Day()+1,
+ dateTime.Month()+1,
+ dateTime.Year(),
+ dateTime.Hour(),
+ dateTime.Minute(),
+ dateTime.Second(),
+ (dateTime.MicroSecond() / 1000));
+
+ b.Append(p);
+ b.Append(_L8("\n"));
+ b.ZeroTerminate();
+
+ TFileUtil::LogMessage(name, b);
+
+ delete msg;
+ return KErrNone;
+ }
+
+
+//**********************************************************************
+// Method : TFileUtil::LogMessage()
+// Parameters:
+// Function:
+// Returns:
+//**********************************************************************
+TInt TFileUtil::LogMessage(const TFileName& name, const TDesC8& mess )
+ {
+ RFs fs;
+ RFile file;
+ TFileName nameWithPath;
+
+ nameWithPath = KDefaultPath;
+ nameWithPath.Append( name );
+ nameWithPath.ZeroTerminate( );
+ TInt err = fs.Connect( );
+
+ if(err!=KErrNone)
+ {
+ return err;
+ }
+
+ err=file.Open(fs, nameWithPath, EFileStreamText|EFileWrite|EFileShareExclusive);
+ if(err==KErrNotFound)
+ {
+ err=file.Create(fs, nameWithPath, EFileStreamText|EFileWrite|EFileShareExclusive);
+ }
+
+ if(err!=KErrNone)
+ {
+ return err;
+ }
+
+ TInt off(0);
+ err=file.Seek(ESeekEnd, off);
+ if(err!=KErrNone)
+ {
+ return err;
+ }
+
+ file.Write(mess);
+ file.Flush();
+ file.Close();
+ fs.Close();
+
+ return KErrNone;
+ }
+
+//**********************************************************************
+// Method : TFileUtil::InitLogFile()
+// Parameters:
+// Function:
+// Returns:
+//**********************************************************************
+TInt TFileUtil::InitLogFile( const TFileName& name )
+ {
+ RFs fs;
+ RFile file;
+ TFileName nameWithPath;
+
+ nameWithPath = KDefaultPath;
+ nameWithPath.Append( name );
+ nameWithPath.ZeroTerminate( );
+ TInt err = fs.Connect( );
+
+ if( err != KErrNone )
+ {
+ return err;
+ }
+
+ err = file.Replace( fs, nameWithPath, /*EFileStreamText|*/EFileWrite|EFileShareExclusive );
+ if(err!=KErrNone)
+ {
+ return err;
+ }
+
+ file.Close();
+ fs.Close();
+
+ return KErrNone;
+ }
+
+
+//**********************************************************************
+// Method : TFileUtil::LogToFile()
+// Parameters:
+// Function:
+// Returns:
+//**********************************************************************
+
+void TFileUtil::LogToFile( const TDesC& aName, TRefByValue<const TDesC> aFmt, ... )
+ {
+ VA_LIST aList;
+ VA_START(aList, aFmt);
+
+ // decode formatted data for display on console
+ TBuf<KMaxLogLineLength> lineBuf;
+ lineBuf.AppendFormatList(aFmt, aList, NULL);// &iOverflow16);
+
+ // write to log file
+ WriteLogFile(aName, lineBuf);
+
+ VA_END(aList);
+ }
+
+//**********************************************************************
+// Method : TFileUtil::LogMsg()
+// Parameters:
+// Function:
+// Returns:
+//**********************************************************************
+void TFileUtil::LogMsg( TDes& aDes, TRefByValue<const TDesC> aFmt, ...)
+ {
+ VA_LIST aList;
+ VA_START(aList, aFmt);
+
+ // Decode formatted data for display on console
+ aDes.AppendFormatList(aFmt, aList, NULL);
+
+ VA_END(aList);
+ }
+