PECengine/PresenceManager2/SrcNWSessionSlot/CPEngNWSessionSlotEventEntry.cpp
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/PresenceManager2/SrcNWSessionSlot/CPEngNWSessionSlotEventEntry.cpp	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,147 @@
+/*
+* 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:  Tracked Presence ID entry.
+*
+*/
+
+// INCLUDE FILES
+#include "CPEngNWSessionSlotEventEntry.h"
+#include "CPEngSessionSlotEvent.h"
+#include "CPEngNWSessionSlotID2Imp.h"
+#include <CPEngNWSessionSlotID2.h>
+#include <E32Std.h>
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPEngNWSessionSlotEventEntry::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CPEngNWSessionSlotEventEntry* CPEngNWSessionSlotEventEntry::NewL()
+    {
+    CPEngNWSessionSlotEventEntry* self = new ( ELeave ) CPEngNWSessionSlotEventEntry;
+    CleanupStack::PushL( self );
+    self->iNWSessionSlotID = CPEngNWSessionSlotID2::NewL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+
+
+// Destructor
+CPEngNWSessionSlotEventEntry::~CPEngNWSessionSlotEventEntry()
+    {
+    delete iNWSessionSlotID;
+    delete iEventDescBuf;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPEngNWSessionSlotEventEntry::CPEngNWSessionSlotEventEntry
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CPEngNWSessionSlotEventEntry::CPEngNWSessionSlotEventEntry()
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPEngNWSessionSlotEventEntry::CopyL()
+// -----------------------------------------------------------------------------
+//
+void CPEngNWSessionSlotEventEntry::CopyL( const CPEngNWSessionSlotEventEntry& aSource )
+    {
+    CPEngNWSessionSlotID2* newId = aSource.iNWSessionSlotID->CloneL();
+    delete iNWSessionSlotID;
+    iNWSessionSlotID = newId;
+
+    iEvent = aSource.iEvent;
+    iNWSessionSlotState = aSource.iNWSessionSlotState;
+    iCSPSessionState = aSource.iCSPSessionState;
+    iEventInt = aSource.iEventInt;
+
+    //Carefully with the additional buffer.
+    //Source may not always have the buffer, but
+    //the TPtrC points always to valid data...
+    HBufC* newBuf = aSource.iEventDesc.AllocL();
+    delete iEventDescBuf;
+    iEventDescBuf = newBuf;
+    iEventDesc.Set( *iEventDescBuf );
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngNWSessionSlotEventEntry::SetFullEventReferenceL()
+// -----------------------------------------------------------------------------
+//
+void CPEngNWSessionSlotEventEntry::SetFullEventReferenceL( const CPEngSessionSlotEvent& aInternalEvent )
+    {
+    iNWSessionSlotID->Implementation()->SetAllL( aInternalEvent.SessionSlotIndentification(),
+                                                 aInternalEvent.ApplicationId() );
+
+    iEvent = aInternalEvent.Event();
+    iNWSessionSlotState = aInternalEvent.AppSessSltState();
+    iCSPSessionState = aInternalEvent.GlobSessSltState();
+    iEventInt = aInternalEvent.EventInt();
+
+    iEventDesc.Set( aInternalEvent.EventDesc() );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPEngNWSessionSlotEventEntry::SetPseudoEventReferenceL()
+// -----------------------------------------------------------------------------
+//
+void CPEngNWSessionSlotEventEntry::SetPseudoEventReferenceL(
+    const CPEngSessionSlotId& aBasePart,
+    const TDesC& aAppId,
+    TPEngNWSessionSlotState aAppState,
+    TPEngNWSessionSlotState aCSPState )
+    {
+    //valid parts
+    iNWSessionSlotID->Implementation()->SetAllL( aBasePart, aAppId );
+    iNWSessionSlotState = aAppState;
+    iCSPSessionState = aCSPState;
+
+    //Pseudo data
+    iEvent = EPEngEventNone;
+    iEventInt = KErrNotFound;
+    iEventDesc.Set( NULL, 0 );
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// CPEngNWSessionSlotEventEntry::ResetReferences()
+// -----------------------------------------------------------------------------
+//
+void CPEngNWSessionSlotEventEntry::ResetReferences()
+    {
+    iNWSessionSlotID->Implementation()->Reset();
+    iEventDesc.Set( NULL, 0 );
+    delete iEventDescBuf;
+    iEventDescBuf = NULL;
+    }
+
+
+
+//  End of File
+