ncdengine/engine/transport/src/catalogshttpconnectionmanager.cpp
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/engine/transport/src/catalogshttpconnectionmanager.cpp	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,218 @@
+/*
+* Copyright (c) 2006-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:  
+*
+*/
+
+
+#include "catalogshttpconnectionmanager.h"
+
+#include "catalogshttpoperation.h"
+#include "catalogshttpconfig.h"
+#include "catalogstransportoperationid.h"
+#include "catalogshttpconnectioncreator.h"
+
+#include "catalogsdebug.h"
+
+// ======== MEMBER FUNCTIONS ========
+ 
+// ---------------------------------------------------------------------------
+// NewL
+// ---------------------------------------------------------------------------
+//
+CCatalogsHttpConnectionManager* CCatalogsHttpConnectionManager::NewL(
+    MCatalogsHttpSession& aSession )
+    {
+    CCatalogsHttpConnectionManager* self = new( ELeave ) 
+        CCatalogsHttpConnectionManager( aSession );
+    return self;        
+    }
+    
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CCatalogsHttpConnectionManager::~CCatalogsHttpConnectionManager()
+    {
+    }
+    
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+void CCatalogsHttpConnectionManager::SetConnectionConfirmationObserver( 
+    MCatalogsHttpConnectionConfirmationObserver* aObserver )
+    {
+    iConfirmationObserver = aObserver;
+    }
+
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+void CCatalogsHttpConnectionManager::SetConnectionErrorObserver( 
+    MCatalogsHttpConnectionErrorObserver* aObserver )
+    {
+    iErrorObserver = aObserver;
+    }
+    
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+void CCatalogsHttpConnectionManager::SetConnectionConfirmationState( 
+    const TCatalogsHttpConnectionConfirmationState& aState )
+    {
+    DLTRACEIN(("aState: %d", aState));
+    iConfirmationState = aState;
+    }
+    
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+TCatalogsHttpConnectionConfirmationState 
+    CCatalogsHttpConnectionManager::ConnectionConfirmationState()
+    {
+    DLTRACEIN(("State: %d", iConfirmationState));
+    return iConfirmationState;
+    }
+
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+const TCatalogsConnectionMethod& 
+    CCatalogsHttpConnectionManager::DefaultConnectionMethod() const
+    {    
+    return iDefaultAccessPoint;
+    }
+
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+void CCatalogsHttpConnectionManager::SetDefaultConnectionMethod( 
+    const TCatalogsConnectionMethod& aMethod )
+    {
+    DLTRACEIN((""));
+    DLTRACE(("Setting default as %d, %u, %u",
+        aMethod.iType,
+        aMethod.iId,
+        aMethod.iApnId ));
+        
+    iDefaultAccessPoint = aMethod;
+    }
+
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+void CCatalogsHttpConnectionManager::SetAccessPointForDefaultConnectionMethod( 
+    const TCatalogsConnectionMethod& aMethod )
+    {
+    if ( aMethod.Match( DefaultConnectionMethod() ) && 
+         !iDefaultAccessPoint.iApnId ) 
+        {
+        iDefaultAccessPoint.iApnId = aMethod.iApnId;
+        iCurrentAccessPoint = aMethod.iApnId;
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+TUint32 CCatalogsHttpConnectionManager::CurrentAccessPoint() const
+    {    
+    return iCurrentAccessPoint;
+    }
+
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+TBool CCatalogsHttpConnectionManager::AskConnectionConfirmation( 
+    const TCatalogsConnectionMethod& aMethod )
+    {
+    DLTRACEIN((""));    
+    TBool confirmed = ETrue;
+    
+    if ( iConfirmationState == ECatalogsHttpConnectionDenied ) 
+        {
+        confirmed = EFalse;
+        }
+    else if ( 
+        iConfirmationState == ECatalogsHttpConnectionConfirmationRequired &&
+        iConfirmationObserver )
+        {
+        DLTRACE(("Confirmation required and observer exists"));
+        TRAPD( err, iConfirmationState = 
+            iConfirmationObserver->HandleConnectionConfirmationRequestL(
+                iSession,
+                aMethod ) );
+                
+        if ( iConfirmationState == ECatalogsHttpConnectionDenied || 
+            err != KErrNone )
+            {
+            DLINFO(("Connection denied, err: %d", err));
+            confirmed = EFalse;
+            }
+        }
+    
+    DLTRACEOUT(("Connection confirmed: %d", confirmed ));
+    return confirmed;
+    }
+
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+TInt CCatalogsHttpConnectionManager::ReportConnectionError( 
+    const TCatalogsConnectionMethod& aMethod,
+    TInt aError )
+    {
+    DLTRACEIN(("aError: %d", aError));
+    TInt err = KErrNone;
+    if ( iErrorObserver ) 
+        {
+        DLTRACE(("Calling error observer"));
+        TRAP( err, iErrorObserver->HandleConnectionErrorL( 
+            iSession, aMethod, aError ) );
+        }
+    return err;
+    }
+    
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//    
+CCatalogsHttpConnectionManager::CCatalogsHttpConnectionManager(
+    MCatalogsHttpSession& aSession ) :
+    iSession( aSession ),
+    iConfirmationState( ECatalogsHttpConnectionConfirmationRequired )    
+    {
+    }