taskswitcher/utils/src/tsentryimp.cpp
changeset 127 7b66bc3c6dc9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/utils/src/tsentryimp.cpp	Mon Oct 18 10:44:15 2010 +0300
@@ -0,0 +1,145 @@
+/*
+ * Copyright (c) 2008 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:  Task list entry
+ *
+ */
+
+#include <s32strm.h>
+#include <fbs.h>
+
+#include "tsentryimp.h"
+
+// --------------------------------------------------------------------------
+CTsEntryImp::~CTsEntryImp()
+    {
+    delete iName;
+    delete iThumbail;
+    }
+
+// --------------------------------------------------------------------------
+void CTsEntryImp::BaseConstructL(RReadStream& aStream)
+    {
+    aStream >> ( *this );
+    }
+
+// --------------------------------------------------------------------------
+TBool CTsEntryImp::IsActive() const
+    {
+    return iIsActive;
+    }
+
+// --------------------------------------------------------------------------
+/**
+ * Application name.
+ */
+const TDesC& CTsEntryImp::DisplayName() const
+    {
+    return iName ? *iName : KNullDesC();
+    }
+
+// --------------------------------------------------------------------------
+/**
+ * ETrue if the application is closeable
+ */
+TBool CTsEntryImp::IsClosable() const
+    {
+    return iCloseableApp;
+    }
+
+// --------------------------------------------------------------------------
+/**
+ * Application icon bitmap
+ */
+TInt CTsEntryImp::IconHandle() const
+    {
+    return iThumbail ? iThumbail->Handle() : KErrNotFound;
+    }
+
+// --------------------------------------------------------------------------
+/**
+ * Entry's key
+ */
+TTsEntryKey CTsEntryImp::Key() const
+    {
+    return iKey;
+    }
+
+// --------------------------------------------------------------------------
+TTime CTsEntryImp::Timestamp() const
+    {
+    return iTimestamp;
+    }
+
+// --------------------------------------------------------------------------
+/**
+ * Timestamp of last entry change 
+ */
+TTime CTsEntryImp::TimestampUpdate() const
+    {
+    return iUpdateTimestamp;
+    }
+
+// --------------------------------------------------------------------------
+TBool CTsEntryImp::IsMandatory() const
+    {
+    return ETrue;
+    }
+
+// --------------------------------------------------------------------------
+void CTsEntryImp::ExternalizeL( RWriteStream& aDst, const MTsEntry& aSrc )
+    {
+    aDst.WriteInt32L( aSrc.DisplayName().Length() );
+    if( 0 < aSrc.DisplayName().Length() )
+        {
+        aDst << aSrc.DisplayName();
+        }
+    TPckgBuf<TTime> timestamp(aSrc.TimestampUpdate()); 
+    aDst.WriteL(timestamp);
+    aDst.WriteInt32L( aSrc.IconHandle() );
+    aDst.WriteInt32L( TTsEntryKey::Size() );
+    aDst << aSrc.Key();
+    aDst.WriteInt32L( aSrc.IsActive() );
+    aDst.WriteInt32L( aSrc.IsClosable() );
+    }
+
+// --------------------------------------------------------------------------
+void CTsEntryImp::InternalizeL( RReadStream& aSrc )
+    {
+    TInt lenght = aSrc.ReadInt32L();
+    delete iName;
+    iName = 0;
+    if(0 < lenght)
+        {
+        iName = HBufC::NewL(aSrc, lenght);
+        }
+    
+    TPckgBuf<TTime> timestamp;
+    aSrc.ReadL(timestamp);
+    iUpdateTimestamp = timestamp();
+    
+    delete iThumbail;
+    iThumbail = 0;
+    TInt handle = aSrc.ReadInt32L();
+    if(KErrNotFound != handle)
+        {
+        iThumbail = new(ELeave)CFbsBitmap();
+        User::LeaveIfError(iThumbail->Duplicate(handle));
+        }
+    aSrc.ReadInt32L();
+    aSrc >> iKey;
+    
+    iIsActive = aSrc.ReadInt32L();
+    iCloseableApp = aSrc.ReadInt32L();
+    }
+// end of file