--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/server/src/ncdhttputils.cpp Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,229 @@
+/*
+* 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:
+*
+*/
+
+
+#include "ncdhttputils.h"
+#include "ncdconnectionmethod.h"
+
+#include "catalogsdebug.h"
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CNcdHttpUtils::CNcdHttpUtils(
+ MCatalogsAccessPointManager& aAccessPointManager ) :
+ iAccessPointManager( aAccessPointManager )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CNcdHttpUtils::CreateTransactionL(
+ MCatalogsHttpSession& aSession,
+ MCatalogsHttpOperation*& aOperation,
+ const TDesC& aUri,
+ MCatalogsHttpObserver& aObserver,
+ const TDesC8& aBody )
+ {
+ DLTRACEIN((""));
+ if ( aOperation )
+ {
+ aOperation->Release();
+ aOperation = NULL;
+ }
+
+ aOperation = aSession.CreateTransactionL(
+ aUri,
+ &aObserver );
+
+ aOperation->SetBodyL( aBody );
+
+ // Try to get and set fixed AP
+ TUint32 ap = 0;
+ iAccessPointManager.GetFixedApL( ap );
+ if ( ap )
+ {
+ SetAccessPoint( *aOperation, KErrNone, ap );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CNcdHttpUtils::CreateTransactionL(
+ MCatalogsHttpSession& aSession,
+ MCatalogsHttpOperation*& aOperation,
+ const TDesC& aUri,
+ MCatalogsHttpObserver& aObserver,
+ const TDesC8& aBody,
+ const TDesC& aNamespace,
+ const MCatalogsAccessPointManager::TAction& aAction,
+ const TUid& aClientUid )
+ {
+ DLTRACEIN((""));
+ CreateTransactionL( aSession, aOperation, aUri, aObserver, aBody );
+
+ TUint32 ap = 0;
+ TInt error = iAccessPointManager.AccessPointIdL(
+ aNamespace,
+ aAction,
+ aClientUid,
+ ap );
+
+ SetAccessPoint( *aOperation, error, ap );
+ }
+
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CNcdHttpUtils::CreateTransactionL(
+ MCatalogsHttpSession& aSession,
+ MCatalogsHttpOperation*& aOperation,
+ const TDesC& aUri,
+ MCatalogsHttpObserver& aObserver,
+ const TDesC8& aBody,
+ const TDesC& aNamespace,
+ const TDesC& aCatalogId,
+ const MCatalogsAccessPointManager::TAction& aAction,
+ const TUid& aClientUid )
+ {
+ DLTRACEIN((""));
+ CreateTransactionL( aSession, aOperation, aUri, aObserver, aBody );
+
+ TUint32 ap = 0;
+ TInt error = iAccessPointManager.AccessPointIdL(
+ aNamespace,
+ aCatalogId,
+ aAction,
+ aClientUid,
+ ap );
+
+ SetAccessPoint( *aOperation, error, ap );
+
+ }
+
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CNcdHttpUtils::CreateTransactionL(
+ MCatalogsHttpSession& aSession,
+ MCatalogsHttpOperation*& aOperation,
+ const TDesC& aUri,
+ MCatalogsHttpObserver& aObserver,
+ const TDesC8& aBody,
+ const CNcdNodeIdentifier& aNodeIdentifier,
+ const MCatalogsAccessPointManager::TAction& aAction,
+ const TUid& aClientUid )
+ {
+ DLTRACEIN((""));
+ CreateTransactionL( aSession, aOperation, aUri, aObserver, aBody );
+
+ TUint32 ap = 0;
+ TInt error = iAccessPointManager.AccessPointIdL(
+ aNodeIdentifier,
+ aAction,
+ aClientUid,
+ ap );
+
+ SetAccessPoint( *aOperation, error, ap );
+ }
+
+
+// ---------------------------------------------------------------------------
+// Set access point
+// ---------------------------------------------------------------------------
+//
+void CNcdHttpUtils::CreateTransactionL(
+ MCatalogsHttpSession& aSession,
+ MCatalogsHttpOperation*& aOperation,
+ const TDesC& aUri,
+ MCatalogsHttpObserver& aObserver,
+ const TDesC8& aBody,
+ const CNcdNodeIdentifier& aNodeIdentifier,
+ const CNcdNodeIdentifier& aBackupNodeIdentifier,
+ const MCatalogsAccessPointManager::TAction& aAction,
+ const TUid& aClientUid )
+ {
+ DLTRACEIN((""));
+ CreateTransactionL( aSession, aOperation, aUri, aObserver, aBody );
+
+ TUint32 ap = 0;
+ TInt error = iAccessPointManager.AccessPointIdL(
+ aNodeIdentifier,
+ aAction,
+ aClientUid,
+ ap );
+
+ if ( error != KErrNone )
+ {
+ DLTRACE(("First node id failed, try backup"));
+ ap = 0;
+ error = iAccessPointManager.AccessPointIdL(
+ aBackupNodeIdentifier,
+ aAction,
+ aClientUid,
+ ap );
+ }
+ SetAccessPoint( *aOperation, error, ap );
+ }
+
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CNcdHttpUtils::ConvertConnectionMethod(
+ const TNcdConnectionMethod& aSource,
+ TCatalogsConnectionMethod& aTarget ) const
+ {
+ aTarget = TCatalogsConnectionMethod(
+ aSource.iId,
+ static_cast<TCatalogsConnectionMethodType>( aSource.iType ) );
+ }
+
+
+// ---------------------------------------------------------------------------
+// Set access point
+// ---------------------------------------------------------------------------
+//
+void CNcdHttpUtils::SetAccessPoint(
+ MCatalogsHttpOperation& aOperation,
+ TInt aError,
+ TUint32 aAp )
+ {
+ if ( aError == KErrNone )
+ {
+ DLTRACE(("Setting accesspoint id"));
+ TCatalogsConnectionMethod method(
+ aAp,
+ ECatalogsConnectionMethodTypeAccessPoint );
+
+ aOperation.Config().SetConnectionMethod( method );
+ }
+ }
+
+