diff -r 0b3699f6c654 -r e36b2f4799c0 taskswitcher/utils/src/tsidlist.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/utils/src/tsidlist.cpp Mon Oct 04 00:38:31 2010 +0300 @@ -0,0 +1,120 @@ +/* +* Copyright (c) 2009 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: +* +*/ +#include "tsidlist.h" + +//------------------------------------------------------------------------------ +CTsIdList* CTsIdList::NewLC() + { + CTsIdList* self = new(ELeave)CTsIdList(); + CleanupStack::PushL( self ); + return self; + } + +//------------------------------------------------------------------------------ +CTsIdList* CTsIdList::NewL() + { + CTsIdList* self = CTsIdList::NewLC(); + CleanupStack::Pop( self ); + return self; + } + +//------------------------------------------------------------------------------ +CTsIdList* CTsIdList::NewLC(RReadStream& aStream) + { + CTsIdList* self = CTsIdList::NewLC(); + aStream >> (*self); + return self; + } + +//------------------------------------------------------------------------------ +CTsIdList::CTsIdList() + { + //No implementation required + } + +//------------------------------------------------------------------------------ +CTsIdList::~CTsIdList() + { + iIds.Reset(); + } + +//------------------------------------------------------------------------------ +TBool CTsIdList::IsPresent( TInt aId ) const + { + return KErrNotFound != iIds.Find(aId); + } + +//------------------------------------------------------------------------------ +void CTsIdList::AppendL(const TInt aArray[], TInt aSize ) + { + for( TInt iter(0); iter < aSize; ++iter ) + { + AppendL( aArray[iter] ); + } + } + +//------------------------------------------------------------------------------ +void CTsIdList::AppendL(const TArray& aArray) + { + for( TInt iter(0); iter < aArray.Count(); ++iter ) + { + AppendL( aArray[iter] ); + } + } + +//------------------------------------------------------------------------------ +void CTsIdList::AppendL(TInt aId) + { + if( !IsPresent( aId ) ) + { + iIds.AppendL( aId ); + } + } + +//------------------------------------------------------------------------------ +void CTsIdList::Reset() + { + iIds.Reset(); + } + +//------------------------------------------------------------------------------ +TInt CTsIdList::Size() const + { + return ( iIds.Count() + 1 ) * sizeof( TInt ); + } + +//------------------------------------------------------------------------------ +void CTsIdList::ExternalizeL(RWriteStream &aStream) const + { + aStream.WriteInt32L(iIds.Count()); + for( TInt iter(0); iter < iIds.Count(); ++iter ) + { + aStream.WriteInt32L(iIds[iter]); + } + } + +//------------------------------------------------------------------------------ +void CTsIdList::InternalizeL(RReadStream &aStream) + { + Reset(); + const TInt count( aStream.ReadInt32L()); + for( TInt iter(0); iter < count; ++iter ) + { + AppendL( aStream.ReadInt32L() ); + } + } +