multimediacommsengine/tsrc/testdriver/testclient/ui/src/TTcSettings.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/testdriver/testclient/ui/src/TTcSettings.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,149 @@
+/*
+* 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:  Implementation.
+*
+*/
+
+#include <s32file.h>
+#include "TTcSettings.h"
+#include "TestClientConstants.h"
+
+// Increment this value if changes are made to the settings file contents
+const TInt KTcSettingsVersion( 7 );
+
+TTcSettings::TTcSettings()
+	: iBearerType( 1 ),
+	  iAutoConnect( EFalse ),
+	  iTCPPort( KTcDefaultPort ),
+	  iIAPId( KTcDefaultIAPId ),
+	  iIsFirstRun( ETrue ),
+	  iCSYName( 0 ),
+	  iCommPort( 0 ),
+	  iBaudrate( KTcDefaultBaudrate ),
+	  iTCPRemoteAddr()
+	{
+	iTCPRemoteAddr.SetAddress( INET_ADDR( 0, 0, 0, 0 ) );
+	}
+
+TTcSettings::~TTcSettings()
+	{
+	}
+
+void TTcSettings::Load()
+	{
+	// Connect to file server
+	RFs fs;
+	if( fs.Connect() )
+		{
+		return;
+		}
+
+	// Open the settings file for reading, it might not exist yet
+	RFileReadStream in;
+	if( !in.Open( fs, KTcSettingsFile, EFileRead ) )
+		{
+		// Load actual data, ignore errors (the file might be of a previous
+		// version and/or some items might be missing).
+		TRAP_IGNORE( doLoadL( in ) )
+		}
+
+	in.Close();
+	fs.Close();
+	}
+
+void TTcSettings::Store()
+	{
+	// Connect to file server
+	RFs fs;
+	if( fs.Connect() )
+		{
+		return;
+		}
+
+	// Open the settings file for writing, replace any existing data
+	RFileWriteStream out;
+	if( !out.Replace( fs, KTcSettingsFile, EFileWrite ) )
+		{
+		// Write actual data, ignore errors
+		TRAP_IGNORE( doStoreL( out ) )
+		}
+
+	out.Close();
+	fs.Close();
+	}
+
+void TTcSettings::doLoadL( RReadStream& aStream )
+	{
+	// Check that the file is of correct version
+	TInt version = aStream.ReadInt16L();
+	if( version == KTcSettingsVersion )
+		{
+		// Read bearer selection
+		iBearerType = aStream.ReadInt32L() ;
+		// Read autoconnect selection
+		iAutoConnect = aStream.ReadInt16L();
+		// Read TCP port selection
+		iTCPPort = aStream.ReadInt16L();
+		// Read IAP Id
+		iIAPId = aStream.ReadInt16L();
+		// Read CSY name
+		iCSYName = aStream.ReadInt32L();
+		// Read comms port name
+		iCommPort = aStream.ReadInt32L();
+		// Read baudrate of comms
+		iBaudrate = aStream.ReadInt32L();
+		// Read first run flag
+		iIsFirstRun = aStream.ReadInt16L();
+		
+		// Read remote TCP address as string
+		
+		// Read length first
+		TUint16 length = aStream.ReadInt16L();
+
+		TBuf<40> buf;
+		aStream.ReadL( buf, length);
+		iTCPRemoteAddr.Input(buf);
+			
+		}
+	}
+
+void TTcSettings::doStoreL( RWriteStream& aStream )
+	{
+	aStream.WriteInt16L( KTcSettingsVersion );
+	// Write bearer selection
+	aStream.WriteInt32L( iBearerType );
+	// Write autoconnect selection
+	aStream.WriteInt16L( iAutoConnect );
+	// Write TCP port selection
+	aStream.WriteInt16L( iTCPPort );
+	// Write IAP iD
+	aStream.WriteInt16L( iIAPId );
+	// Write CSY name
+	aStream.WriteInt32L( iCSYName );
+	// Write comms port name
+	aStream.WriteInt32L( iCommPort );
+	// Write baudrate of comms
+	aStream.WriteInt32L( iBaudrate );
+	// Write first run flag
+	aStream.WriteInt16L( iIsFirstRun );
+	
+	// Write remote tcp address as string
+	TBuf<40> buf;
+	iTCPRemoteAddr.Output(buf);
+	
+	//write length first
+	aStream.WriteInt16L( buf.Length() );
+	aStream.WriteL(buf);
+		
+	}