taskswitcher/utils/src/tsidlist.cpp
changeset 124 e36b2f4799c0
child 125 26079c1bb561
--- /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<TInt>& 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() );
+        }
+    }
+