--- a/xdmprotocols/XcapProtocol/XcapOperations/src/XcapDeletion.cpp Thu Jul 01 14:09:06 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,248 +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: CXcapDeletion
-*
-*/
-
-
-
-
-// INCLUDES
-#include "XcapCache.h"
-#include "XcapProtocol.h"
-#include "XcapDeletion.h"
-#include "XcapAppUsage.h"
-#include "XcapDocument.h"
-#include "XcapUriParser.h"
-#include "XdmXmlParser.h"
-#include "XcapDocumentNode.h"
-#include "XcapHttpTransport.h"
-#include "XcapHttpOperation.h"
-#include "XcapHttpReqDelete.h"
-#include "XcapOperationFactory.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// CXcapDeletion::CXcapDeletion
-//
-// ---------------------------------------------------------
-//
-CXcapDeletion::CXcapDeletion( CXcapDocument& aParentDoc,
- CXcapDocumentNode* aDocumentSubset,
- CXcapOperationFactory& aOperationFactory ) :
- CXcapHttpOperation( aParentDoc, aDocumentSubset, aOperationFactory ),
- iOperationType( iDocumentSubset == NULL ?
- EXdmDocument : EXdmPartialDocument )
- {
- }
-
-// ---------------------------------------------------------
-// CXcapDeletion::NewL
-//
-// ---------------------------------------------------------
-//
-CXcapDeletion* CXcapDeletion::NewL( CXcapDocument& aParentDoc,
- CXcapDocumentNode* aDocumentSubset,
- CXcapOperationFactory& aOperationFactory )
- {
- CXcapDeletion* self = new ( ELeave ) CXcapDeletion( aParentDoc, aDocumentSubset, aOperationFactory );
- CleanupStack::PushL( self );
- self->BaseConstructL();
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-// ---------------------------------------------------------
-// CXcapDeletion::ConstructL
-//
-// ---------------------------------------------------------
-//
-void CXcapDeletion::ConstructL()
- {
- CXcapHttpReqDelete* request = Transport().DeleteL( iTargetDoc.Name() );
- CleanupStack::PushL( request );
- User::LeaveIfError( iRequestQueue.Append( request ) );
- request->SetExpiryTimeL( NULL, KDefaultHttpRequestTimeout * 1000000 );
- CleanupStack::Pop(); //request
- if( iOperationType != EXdmDocument && iDocumentSubset != NULL )
- {
- iUriParser->SetDocumentSubset( iDocumentSubset );
- //Add namespace mappings
- User::LeaveIfError( iTargetDoc.ApplicationUsage().Validate(
- *iDocumentSubset, iUriParser, ETrue ) );
- }
- }
-
-// ---------------------------------------------------------
-// CXcapDeletion::ExecuteL
-//
-// ---------------------------------------------------------
-//
-void CXcapDeletion::ExecuteL()
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapDeletion::ExecuteL()" ) );
- #endif
- TPtrC8 eTag = iTargetDoc.ETag();
- if( eTag.Length() > 0 )
- iActiveRequest->SetHeaderL( KHttpHeaderIfMatch, eTag );
- 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
- }
- }
-
-// ---------------------------------------------------------
-// CXcapDeletion::OperationCompleteL
-//
-// ---------------------------------------------------------
-//
-void CXcapDeletion::OperationCompleteL()
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapDeletion::OperationCompleteL()" ) );
- #endif
- switch( iRequestData->iHttpStatus )
- {
- case 200: //Document was deleted
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( " Status 200 - Document deleted" ) );
- #endif
- iOperationType == EXdmDocument ?
- HandleDocDeletion() :
- HandlePartialDeletion();
- iCompleted = ETrue;
- }
- break;
- case 404: //Document was not found
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( " Status 404 - Document not found" ) );
- #endif
- iCompleted = ETrue;
- iResult = KErrNotFound;
- }
- break;
- default:
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( " Default case - Status: %d" ),
- iRequestData->iHttpStatus );
- #endif
- iCompleted = ETrue;
- break;
- }
- iResult = ReinterpretStatus( iRequestData->iHttpStatus );
- }
-
-// ---------------------------------------------------------
-// CXcapDeletion::HandleDocDeletion
-//
-// ---------------------------------------------------------
-//
-void CXcapDeletion::HandleDocDeletion()
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapDeletion::HandleDocDeletion()" ) );
- #endif
- TPtrC name = iTargetDoc.Name();
- TPtrC8 root = Transport().RootUri();
- RXcapCache* cache = iTargetDoc.Protocol().Cache();
- if( cache != NULL )
- {
- TInt error = cache->Delete( name, root );
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( " Document deleted from the cache" ) );
- #endif
- }
- }
-
-// ---------------------------------------------------------
-// CXcapDeletion::HandlePartialDeletion
-//
-// ---------------------------------------------------------
-//
-void CXcapDeletion::HandlePartialDeletion()
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapDeletion::HandlePartialDeletion()" ) );
- #endif
- TPtrC name = iTargetDoc.Name();
- TPtrC8 root = Transport().RootUri();
- iTargetDoc.RemoveFromModelL( iDocumentSubset );
- TPtrC8 eTag = Descriptor( iRequestData->iETag );
- RXcapCache* cache = iTargetDoc.Protocol().Cache();
- if( cache != NULL )
- {
- HBufC8* newDoc = iXmlParser->FormatToXmlLC( ETrue, &iTargetDoc, iTargetDoc.DocumentRoot() );
- cache->Store( eTag, name, root, newDoc->Des() );
- CleanupStack::PopAndDestroy(); //newDoc
- }
- iTargetDoc.SetETag( eTag );
- }
-
-// ---------------------------------------------------------
-// CXcapDeletion::OperationFailedL
-//
-// ---------------------------------------------------------
-//
-void CXcapDeletion::OperationFailedL()
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapDeletion::OperationFailedL() - Error: %d" ),
- iStatus.Int() );
- #endif
- if( iStatus.Int() >= KErrNone )
- {
- TInt status = iActiveRequest->ResponseData()->iHttpStatus;
- TInt completion = iActiveRequest->ResponseData()->iCompletion;
- iResult = status < KErrNone || completion < KErrNone ? status : ReinterpretStatus( status );
- }
- else iResult = iStatus.Int();
- iCompleted = ETrue;
- }
-
-// ---------------------------------------------------------
-// CXcapDeletion::Result
-//
-// ---------------------------------------------------------
-//
-TBool CXcapDeletion::Result() const
- {
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// CXcapDeletion::~CXcapDeletion
-//
-// ---------------------------------------------------------
-//
-CXcapDeletion::~CXcapDeletion()
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapDeletion::~CXcapDeletion()" ) );
- #endif
- }
-
-// End of File
-