xdmprotocols/XcapProtocol/XcapOperations/src/XcapReplacement.cpp
branchRCL_3
changeset 34 2669f8761a99
parent 31 2580314736af
child 35 fbd2e7cec7ef
--- a/xdmprotocols/XcapProtocol/XcapOperations/src/XcapReplacement.cpp	Thu Aug 19 10:19:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-/*
-* Copyright (c) 2005 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:   CXcapReplacement
-*
-*/
-
-
-
-
-// INCLUDES
-#include "XcapAppUsage.h"
-#include "XcapDocument.h"
-#include "XcapUriParser.h"
-#include "XdmXmlParser.h"
-#include "XcapHttpReqPut.h"
-#include "XcapReplacement.h"
-#include "XcapHttpReqDelete.h"
-#include "XcapHttpTransport.h"
-#include "XcapHttpOperation.h"
-#include "XdmNodeAttribute.h"
-#include "XcapEngineDefines.h"
-        
-// ---------------------------------------------------------
-// C++ constructor can NOT contain any code, that might leave.
-//
-// ---------------------------------------------------------
-//
-CXcapReplacement::CXcapReplacement( CXcapDocument& aParentDoc,
-                                    CXcapDocumentNode* aOldNode,
-                                    CXcapDocumentNode* aNewNode,
-                                    CXcapOperationFactory& aOperationFactory ) :
-                                    CXcapHttpOperation( aParentDoc, aOldNode, aOperationFactory ),
-                                    iNewNode( ( CXcapDocumentNode* )aNewNode ),
-                                    iOperationType( aOldNode == NULL ?
-                                    EXdmDocument : EXdmPartialDocument )
-                                    
-    {
-    }
-
-// ---------------------------------------------------------
-// Two-phased constructor.
-//
-// ---------------------------------------------------------
-//
-CXcapReplacement* CXcapReplacement::NewL( CXcapDocument& aParentDoc,
-                                          CXcapDocumentNode* aOldNode,
-                                          CXcapDocumentNode* aNewNode,
-                                          CXcapOperationFactory& aOperationFactory )
-    {
-    CXcapReplacement* self = new ( ELeave ) CXcapReplacement( aParentDoc, aOldNode, aNewNode, aOperationFactory );
-    CleanupStack::PushL( self );
-    self->BaseConstructL();
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-// ---------------------------------------------------------
-// CXcapReplacement::ConstructL
-//
-// ---------------------------------------------------------
-//
-void CXcapReplacement::ConstructL()
-    {
-    CXcapHttpReqPut* request = Transport().PutL( iTargetDoc.Name() );
-    CleanupStack::PushL( request );
-    User::LeaveIfError( iRequestQueue.Append( request ) );
-    request->SetExpiryTimeL( NULL, KDefaultHttpRequestTimeout * 1000000 );
-    CleanupStack::Pop();  //request
-    //If they point to the same node, we're dealing with a complete document
-    if( iDocumentSubset != NULL && iTargetDoc.DocumentRoot() != iDocumentSubset )
-        iUriParser->SetDocumentSubset( iDocumentSubset );
-    }
-
-// ---------------------------------------------------------
-// CXcapReplacement::FormatModRequestL
-//
-// ---------------------------------------------------------
-//
-TInt CXcapReplacement::FormatModRequestL( const CXcapDocumentNode* aDocumentNode )
-    {
-    #ifdef _DEBUG
-        iOperationFactory.WriteToLog( _L8( "CXcapReplacement::FormatModRequestL()" ) );
-        iOperationFactory.WriteToLog( _L8( "  Operation type:  %d" ), iOperationType );
-        iOperationFactory.WriteToLog( _L8( "  Document subset: %x" ), iDocumentSubset );
-    #endif
-    return CXcapHttpOperation::FormatModRequestL( aDocumentNode );   
-    }
-    
-// ---------------------------------------------------------
-// CXcapReplacement::ExecuteL
-//
-// ---------------------------------------------------------
-//
-void CXcapReplacement::ExecuteL()
-    {
-    #ifdef _DEBUG
-        iOperationFactory.WriteToLog( _L8( "CXcapReplacement::ExecuteL()" ) );  
-    #endif
-    User::LeaveIfError( FormatModRequestL( iNewNode ) );
-    if( iOperationType == EXdmPartialDocument )
-        {
-        TPtrC8 eTag = iTargetDoc.ETag();
-        if( eTag.Length() > 0 )
-            iActiveRequest->SetHeaderL( KHttpHeaderIfMatch, eTag );
-        //If they match semantically, there's no need for DELETE operation
-        if( iDocumentSubset->Match( *iNewNode ) )
-            iOperationPhase = EHttpPutting;
-        else
-            {
-            CXcapHttpReqDelete* request = Transport().DeleteL( iTargetDoc.Name() );
-            CleanupStack::PushL( request );
-            User::LeaveIfError( iRequestQueue.Insert( request, 0 ) );
-            CleanupStack::Pop();  //request
-            if( eTag.Length() > 0 )
-                request->SetHeaderL( KHttpHeaderIfMatch, eTag );
-            request->SetHeaderL( KHttpHeaderAccept, _L8( "application/xcap-diff+xml" ) );
-            iActiveRequest = request;
-            iOperationPhase = EHttpDeleting;
-            }
-        TRAPD( error, iUriParser->ParseL( iActiveRequest->RequestUriL() ) );
-        if( error == KErrNone )
-            {
-            TPtrC8 uri = iUriParser->DesC8();
-            #ifdef _DEBUG
-                iOperationFactory.WriteToLog( _L8( " New URI: %S" ), &uri );  
-            #endif
-            HBufC8* escape = CXcapHttpOperation::EscapeLC( uri );
-            iActiveRequest->UpdateRequestUriL( escape->Des() );
-            CleanupStack::PopAndDestroy();  //escape
-            }
-        }
-    else
-        {
-        
-        }
-    }
-        
-// ---------------------------------------------------------
-// CXcapReplacement::OperationCompleteL
-//
-// ---------------------------------------------------------
-//
-void CXcapReplacement::OperationCompleteL()
-    {
-    #ifdef _DEBUG
-        iOperationFactory.WriteToLog(
-            _L8( "CXcapReplacement::OperationCompleteL() - Phase: %d" ), iOperationPhase );  
-    #endif
-    switch( iOperationPhase )
-        {
-        case EHttpDeleting:
-            break;
-        case EHttpPutting:
-            break;
-        default:
-            iCompleted = ETrue;
-            break;
-        }
-    }
-    
-// ---------------------------------------------------------
-// CXcapReplacement::OperationFailedL
-//
-// ---------------------------------------------------------
-//
-void CXcapReplacement::OperationFailedL()
-    {
-    #ifdef _DEBUG
-        iOperationFactory.WriteToLog( _L8( "CXcapReplacement::OperationFailedL() - Error: %d" ),
-                                        iStatus.Int() );
-        TInt httpStatus = iRequestData == NULL ? KErrUnknown :
-                          iRequestData->iHttpStatus;
-    #endif
-
-    switch( iOperationPhase )
-        {
-        case EHttpDeleting:
-            #ifdef _DEBUG
-                iOperationFactory.WriteToLog(
-                    _L8( "DELETE failed - Error: %d  Status: %d" ), iStatus.Int(), httpStatus );  
-            #endif
-            break;
-        case EHttpPutting:
-            #ifdef _DEBUG
-                iOperationFactory.WriteToLog(
-                    _L8( "PUT failed - Error: %d  Status: %d" ), iStatus.Int(), httpStatus );  
-            #endif
-            break;
-        default:
-            break;
-        }
-    iResult = iStatus.Int();
-    iCompleted = ETrue;   
-    }
-
-// ---------------------------------------------------------
-// CXcapReplacement::Result
-//
-// ---------------------------------------------------------
-//
-TBool CXcapReplacement::Result() const
-    {
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// CXcapReplacement::~CXcapReplacement
-//
-// ---------------------------------------------------------
-//
-CXcapReplacement::~CXcapReplacement()
-    {
-    #ifdef _DEBUG
-        iOperationFactory.WriteToLog( _L8( "CXcapReplacement::~CXcapReplacement()" ) );  
-    #endif
-    }
-
-//  End of File  
-