diff -r 000000000000 -r 094583676ce7 wvuing/IMPSConnectionUI/OperationStepSrc/CnUiSapDataPacker.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wvuing/IMPSConnectionUI/OperationStepSrc/CnUiSapDataPacker.cpp Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,123 @@ +/* +* 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: SAP data packer for Connection UI. +* +*/ + +// INCLUDE FILES +#include +#include +#include +#include "CnUiSapDataPacker.h" + + +// ----------------------------------------------------------------------------- +// CnUiSapDataPacker::RemovePackedSapL() +// ----------------------------------------------------------------------------- +// +void CnUiSapDataPacker::RemovePackedSapL( CIMPSSAPSettings& aSap ) + { + aSap.SetOpaqueInt( KIMPSPackAAClientsKey, EFalse ); + } + + +// ----------------------------------------------------------------------------- +// CnUiSapDataPacker::PackAAClientsL() +// ----------------------------------------------------------------------------- +// +void CnUiSapDataPacker::PackAAClientsL( const RArray< TIMPSConnectionClient >& aClients, + CIMPSSAPSettings& aContainer ) + { + if ( aClients.Count() ) + { + // there is an ao client + aContainer.SetOpaqueInt( KIMPSPackAAClientsKey, ETrue ); + } + } + + + +// ----------------------------------------------------------------------------- +// CnUiSapDataPacker::ExtractAAClientsL() +// ----------------------------------------------------------------------------- +// +TBool CnUiSapDataPacker::ExtractAAClientsL( CIMPSSAPSettings& aContainer, + RArray< TIMPSConnectionClient >& /* aClients */ ) + { + TInt returnValue( 0 ); + TInt err = aContainer.GetOpaqueInt( KIMPSPackAAClientsKey, returnValue ); + //ignore not found, since there cannot be clients if the key is not set at all + if ( ( err != KErrNotFound ) && ( err != KErrNone ) ) + { + User::Leave( err ); + } + aContainer.SetOpaqueInt( KIMPSPackAAClientsKey, EFalse ); + return returnValue; + } + + +// ----------------------------------------------------------------------------- +// CnUiSapDataPacker::WriteMarkL() +// ----------------------------------------------------------------------------- +// +void CnUiSapDataPacker::WriteMarkL( RWriteStream& aWStream, TInt8 aMark ) + { + aWStream.WriteInt8L( aMark ); + } + + +// ----------------------------------------------------------------------------- +// CnUiSapDataPacker::CheckMarkL() +// ----------------------------------------------------------------------------- +// +TBool CnUiSapDataPacker::CheckMarkL( RReadStream& aRStream, TInt8 aSupposedMark ) + { + TInt8 streamMark = aRStream.ReadInt8L(); + return ( streamMark == aSupposedMark ); + } + + +// ----------------------------------------------------------------------------- +// CnUiSapDataPacker::WriteClientsL() +// ----------------------------------------------------------------------------- +// +void CnUiSapDataPacker::WriteClientsL( RWriteStream& aWStream , + const RArray< TIMPSConnectionClient >& aClients ) + { + const TInt clientCount = aClients.Count(); + aWStream.WriteInt32L( clientCount ); + for ( TInt index = 0; index < clientCount ; ++index ) + { + aWStream.WriteInt32L( aClients[ index ] ); + } + } + + +// ----------------------------------------------------------------------------- +// CnUiSapDataPacker::ReadClientsL() +// ----------------------------------------------------------------------------- +// +void CnUiSapDataPacker::ReadClientsL( RReadStream& aRStream, + RArray< TIMPSConnectionClient >& aClients ) + { + const TInt clientCount = aRStream.ReadInt32L(); + for ( TInt index = 0; index < clientCount ; ++index ) + { + TInt client = aRStream.ReadInt32L(); + User::LeaveIfError( aClients.Append( static_cast< TIMPSConnectionClient >( client ) ) ); + } + } + +// End of File +