syncmlfw/common/historylog/src/NSmlHistoryEntry.cpp
changeset 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/common/historylog/src/NSmlHistoryEntry.cpp	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,194 @@
+/*
+* Copyright (c) 2002 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:  History entry
+*
+*/
+
+
+#include <s32mem.h>
+#include <SyncMLHistory.h>
+#include <SyncMLAlertInfo.h>
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::CSyncMLHistoryEntry(TUid aUid)
+// Constructor
+// ---------------------------------------------------------
+CSyncMLHistoryEntry::CSyncMLHistoryEntry(TUid aUid)
+: iEntryType(aUid), iEntryId(0), iSpare(0)
+	{
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::NewL(TUid aEntryType)
+// Two phase constructor
+// ---------------------------------------------------------
+EXPORT_C CSyncMLHistoryEntry* CSyncMLHistoryEntry::NewL(TUid aEntryType)
+	{
+	if (aEntryType == KUidSmlHistoryEntryJob)
+		{		
+		CSyncMLHistoryJob* self =CSyncMLHistoryJob::NewL();		
+		return self;	
+		}
+	else
+	if (aEntryType == KUidSmlHistoryEntryPushMsg)
+		{
+		CSyncMLHistoryPushMsg* self = CSyncMLHistoryPushMsg::NewL();			
+		return self;
+		}
+	
+	return NULL;
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::NewL(RReadStream& aStream)
+// Two phase constructor
+// ---------------------------------------------------------	
+EXPORT_C CSyncMLHistoryEntry* CSyncMLHistoryEntry::NewL(RReadStream& aStream)
+	{
+	const TInt entryType = aStream.ReadInt32L();
+	
+	TUid entryUid;
+	entryUid.iUid = entryType;
+	
+	CSyncMLHistoryEntry* self = CSyncMLHistoryEntry::NewL(entryUid);
+	CleanupStack::PushL(self);
+	self->InternalizeL(aStream);
+	CleanupStack::Pop();
+	return self;
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::NewL(const CSyncMLHistoryEntry& aEntry)
+// Two phase constructor
+// ---------------------------------------------------------	
+EXPORT_C CSyncMLHistoryEntry* CSyncMLHistoryEntry::NewL(const CSyncMLHistoryEntry& aEntry)
+	{
+	TUid entryType = aEntry.EntryType();
+	
+	CSyncMLHistoryEntry* entry = CSyncMLHistoryEntry::NewL(aEntry.iEntryType);
+	CleanupStack::PushL(entry);
+	
+	CBufBase* buffer = CBufFlat::NewL(1024);
+	CleanupStack::PushL(buffer);
+	
+	RBufWriteStream writeStream(*buffer);
+	writeStream.PushL();
+	aEntry.ExternalizeL(writeStream);
+	writeStream.CommitL();
+	
+	CleanupStack::PopAndDestroy(); //writeStream
+	
+	RBufReadStream readStream(*buffer);
+	readStream.PushL();
+	entry->InternalizeL(readStream);
+	
+	CleanupStack::PopAndDestroy(2); //readStream, buffer
+	CleanupStack::Pop(); //entry
+	
+	return entry;
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::~CSyncMLHistoryEntry()
+// Destructor
+// ---------------------------------------------------------		
+EXPORT_C CSyncMLHistoryEntry::~CSyncMLHistoryEntry()
+	{
+	
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::ExternalizeL(RWriteStream& aStream) const
+// Writes entry to given stream
+// ---------------------------------------------------------		
+EXPORT_C void CSyncMLHistoryEntry::ExternalizeL(RWriteStream& aStream) const
+	{
+	aStream.WriteInt32L( iEntryType.iUid  );
+	aStream.WriteInt32L( iEntryId );
+	aStream.WriteInt32L( iSpare );
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::EntryType() const
+// Returns entry type identifier
+// ---------------------------------------------------------		
+EXPORT_C TUid CSyncMLHistoryEntry::EntryType() const
+	{
+	return iEntryType;
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::EntryId() const
+// Returns entry identifier
+// ---------------------------------------------------------		
+EXPORT_C TInt CSyncMLHistoryEntry::EntryId() const
+	{
+	return iEntryId;
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::DoDynamicCast(TUid aEntryType, CSyncMLHistoryEntry* aEntry)
+// Checks is entry is valid.
+// ---------------------------------------------------------		
+EXPORT_C CSyncMLHistoryEntry* CSyncMLHistoryEntry::DoDynamicCast(TUid aEntryType, CSyncMLHistoryEntry* aEntry)
+	{
+	if (aEntryType != aEntry->EntryType())
+		{
+		return NULL;
+		}
+		
+	return aEntry;
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::DoDynamicCast(TUid aEntryType, const CSyncMLHistoryEntry* aEntry)
+// Checks is entry is valid.
+// ---------------------------------------------------------		
+EXPORT_C const CSyncMLHistoryEntry* CSyncMLHistoryEntry::DoDynamicCast(TUid aEntryType, const CSyncMLHistoryEntry* aEntry)
+	{
+	if (aEntryType != aEntry->EntryType())
+		{
+		return NULL;
+		}
+		
+	return aEntry;
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::SetEntryId(TInt aEntryId)
+// Sets entry identifier
+// ---------------------------------------------------------	
+EXPORT_C void CSyncMLHistoryEntry::SetEntryId(TInt aEntryId)
+	{
+	iEntryId = aEntryId;
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::Reserved(TUid)
+// Reserved for future use
+// ---------------------------------------------------------		
+EXPORT_C TAny* CSyncMLHistoryEntry::Reserved(TUid)
+	{
+	return 0;
+	}
+
+// ---------------------------------------------------------
+// CSyncMLHistoryEntry::InternalizeL(RReadStream& aStream)
+// Reads item from stream
+// ---------------------------------------------------------
+void CSyncMLHistoryEntry::InternalizeL(RReadStream& aStream)
+	{
+	iEntryId = aStream.ReadInt32L();
+	iSpare = aStream.ReadInt32L();
+	}