--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/protocol/src/ncd_cp_cookieimpl.cpp Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,285 @@
+/*
+* Copyright (c) 2006 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: Implementation of CNcdCookieHandler
+*
+*/
+
+
+#include "ncd_cp_cookieimpl.h"
+#include "ncdprotocolutils.h"
+#include "catalogsdebug.h"
+#include "catalogsutils.h"
+
+// ---------------------------------------------------------------------------
+// Constructor
+// ---------------------------------------------------------------------------
+//
+CNcdConfigurationProtocolCookie::CNcdConfigurationProtocolCookie()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// NewL
+// ---------------------------------------------------------------------------
+//
+CNcdConfigurationProtocolCookie*
+ CNcdConfigurationProtocolCookie::NewL()
+ {
+ CNcdConfigurationProtocolCookie* self = new(ELeave)
+ CNcdConfigurationProtocolCookie();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// NewLC
+// ---------------------------------------------------------------------------
+//
+CNcdConfigurationProtocolCookie*
+ CNcdConfigurationProtocolCookie::NewLC()
+ {
+ CNcdConfigurationProtocolCookie* self =
+ new (ELeave) CNcdConfigurationProtocolCookie();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Copy constructor
+// ---------------------------------------------------------------------------
+//
+CNcdConfigurationProtocolCookie*
+ CNcdConfigurationProtocolCookie::NewLC(
+ const MNcdConfigurationProtocolCookie& aCookie )
+ {
+ CNcdConfigurationProtocolCookie* self =
+ new (ELeave) CNcdConfigurationProtocolCookie();
+ CleanupStack::PushL( self );
+ self->ConstructL( aCookie );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// ConstructL
+// ---------------------------------------------------------------------------
+//
+void CNcdConfigurationProtocolCookie::ConstructL()
+ {
+ NcdProtocolUtils::AssignEmptyDesL( iKey );
+ NcdProtocolUtils::AssignDesL( iType,
+ NcdConfigurationProtocolCookieTypes::KSaveAndSend );
+ NcdProtocolUtils::AssignDesL( iScope,
+ NcdConfigurationProtocolCookieScopes::KClient );
+ NcdProtocolUtils::AssignEmptyDesL( iSim );
+ }
+
+
+// ---------------------------------------------------------------------------
+// ConstructL
+// ---------------------------------------------------------------------------
+//
+void CNcdConfigurationProtocolCookie::ConstructL(
+ const MNcdConfigurationProtocolCookie & aCookie )
+ {
+ NcdProtocolUtils::AssignDesL( iKey, aCookie.Key() );
+ NcdProtocolUtils::AssignDesL( iType, aCookie.Type() );
+ NcdProtocolUtils::AssignDesL( iScope, aCookie.Scope() );
+ iExpirationDelta = aCookie.ExpirationDelta();
+ iValues.ReserveL( aCookie.ValueCount() );
+ for ( TInt i = 0; i < aCookie.ValueCount(); ++i )
+ {
+ HBufC* value = aCookie.Value( i ).AllocL();
+ iValues.Append( value );
+ }
+ NcdProtocolUtils::AssignDesL( iSim, aCookie.Sim() );
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CNcdConfigurationProtocolCookie::~CNcdConfigurationProtocolCookie()
+ {
+ delete iKey;
+ delete iType;
+ delete iScope;
+ iValues.ResetAndDestroy();
+ delete iSim;
+ }
+
+// ---------------------------------------------------------------------------
+// Key
+// ---------------------------------------------------------------------------
+//
+const TDesC& CNcdConfigurationProtocolCookie::Key() const
+ {
+ DASSERT( iKey );
+ return *iKey;
+ }
+
+// ---------------------------------------------------------------------------
+// Type
+// ---------------------------------------------------------------------------
+//
+const TDesC& CNcdConfigurationProtocolCookie::Type() const
+ {
+ DASSERT( iType );
+ return *iType;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Scope
+// ---------------------------------------------------------------------------
+//
+const TDesC& CNcdConfigurationProtocolCookie::Scope() const
+ {
+ DASSERT( iScope );
+ return *iScope;
+ }
+
+// ---------------------------------------------------------------------------
+// ExpirationDelta
+// ---------------------------------------------------------------------------
+//
+TInt CNcdConfigurationProtocolCookie::ExpirationDelta() const
+ {
+ return iExpirationDelta;
+ }
+
+
+// ---------------------------------------------------------------------------
+// ValueCount
+// ---------------------------------------------------------------------------
+//
+TInt CNcdConfigurationProtocolCookie::ValueCount() const
+ {
+ return iValues.Count();
+ }
+
+// ---------------------------------------------------------------------------
+// Value
+// ---------------------------------------------------------------------------
+//
+const TDesC& CNcdConfigurationProtocolCookie::Value( TInt aIndex ) const
+ {
+ DASSERT( aIndex >= 0 && aIndex < ValueCount() );
+ return *( iValues[aIndex]);
+ }
+
+
+// ---------------------------------------------------------------------------
+// Sim
+// ---------------------------------------------------------------------------
+//
+const TDesC8& CNcdConfigurationProtocolCookie::Sim() const
+ {
+ return *iSim;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Expiration time getter
+// ---------------------------------------------------------------------------
+//
+TTime CNcdConfigurationProtocolCookie::ExpirationTime() const
+ {
+ return iExpirationTime;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Identity
+// ---------------------------------------------------------------------------
+//
+TBool CNcdConfigurationProtocolCookie::Identity(
+ const MNcdConfigurationProtocolCookie& aFirst,
+ const MNcdConfigurationProtocolCookie& aSecond )
+ {
+ return aFirst.Key() == aSecond.Key();
+ }
+
+// ---------------------------------------------------------------------------
+// ExternalizeL
+// ---------------------------------------------------------------------------
+//
+
+void CNcdConfigurationProtocolCookie::ExternalizeL( RWriteStream& aStream )
+ {
+ DLTRACEIN((""));
+ DASSERT( iKey );
+ DASSERT( iType );
+ DASSERT( iScope );
+ ExternalizeDesL( *iKey, aStream );
+
+ DLTRACE(("Externalizing cookie values"));
+ // Externalize values
+ aStream.WriteInt32L( ValueCount() );
+ for ( TInt i = 0; i < ValueCount(); ++i )
+ {
+ ExternalizeDesL( Value( i ), aStream );
+ }
+
+ DLTRACE(("Cookie values externalized"));
+ ExternalizeDesL( *iType, aStream );
+ ExternalizeDesL( *iScope, aStream );
+ ExternalizeDesL( *iSim, aStream );
+ aStream.WriteInt32L( iExpirationDelta );
+ aStream << iExpirationTime.Int64();
+ DLTRACEOUT((""));
+ }
+
+
+// ---------------------------------------------------------------------------
+// InternalizeL
+// ---------------------------------------------------------------------------
+//
+void CNcdConfigurationProtocolCookie::InternalizeL( RReadStream& aStream )
+ {
+ DLTRACEIN((""));
+ InternalizeDesL( iKey, aStream );
+
+ TInt valueCount = aStream.ReadInt32L();
+ iValues.ResetAndDestroy();
+ iValues.ReserveL( valueCount );
+
+ DLTRACE(( "Internalizing cookie values, count: %d", valueCount ));
+ for ( TInt i = 0; i < valueCount; ++i )
+ {
+ HBufC* value = NULL;
+ InternalizeDesL( value, aStream );
+ // "Can't" fail
+ iValues.Append( value );
+ }
+ DLTRACE(( "Cookies values internalized" ));
+
+ InternalizeDesL( iType, aStream );
+ InternalizeDesL( iScope, aStream );
+ InternalizeDesL( iSim, aStream );
+ iExpirationDelta = aStream.ReadInt32L();
+
+ // Read expiration time
+ TInt64 time( 0 );
+ aStream >> time;
+ iExpirationTime = TTime( time );
+ DLTRACEOUT((""));
+ }
+