--- a/xdmprotocols/XcapProtocol/XcapOperations/src/XcapInsertion.cpp Thu May 27 13:17:17 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +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: CXcapInsertion
-*
-*/
-
-
-
-
-// INCLUDES
-//This is only for logging
-#include <XdmErrors.h>
-#include "XcapProtocol.h"
-#include "XcapDocument.h"
-#include "XcapUriParser.h"
-#include "XcapInsertion.h"
-#include "XdmXmlParser.h"
-#include "XcapHttpReqPut.h"
-#include "XdmNodeAttribute.h"
-#include "XcapHttpTransport.h"
-#include "XcapEngineDefines.h"
-#include "XcapOperationFactory.h"
-
-
-// ---------------------------------------------------------
-// C++ constructor can NOT contain any code, that
-// might leave.
-// ---------------------------------------------------------
-//
-CXcapInsertion::CXcapInsertion( CXcapDocument& aParentDoc,
- CXcapDocumentNode* aDocumentSubset,
- CXcapOperationFactory& aOperationFactory ) :
- CXcapHttpOperation( aParentDoc, aDocumentSubset, aOperationFactory ),
- iOperationType( EXdmPartialDocument )
-
- {
- }
-
-// ---------------------------------------------------------
-// Two-phased constructor.
-//
-// ---------------------------------------------------------
-//
-CXcapInsertion* CXcapInsertion::NewL( CXcapDocument& aParentDoc,
- CXcapDocumentNode* aDocumentSubset,
- CXcapOperationFactory& aOperationFactory )
- {
- CXcapInsertion* self = new ( ELeave ) CXcapInsertion( aParentDoc, aDocumentSubset, aOperationFactory );
- CleanupStack::PushL( self );
- self->BaseConstructL();
- self->ConstructL();
- CleanupStack::Pop();
- return self;
- }
-
-// ---------------------------------------------------------
-// CXcapInsertion::ConstructL
-//
-// ---------------------------------------------------------
-//
-void CXcapInsertion::ConstructL()
- {
- CXcapHttpReqPut* request = Transport().PutL( iTargetDoc.Name() );
- CleanupStack::PushL( request );
- User::LeaveIfError( iRequestQueue.Append( request ) );
- request->SetExpiryTimeL( NULL, KDefaultHttpRequestTimeout * 1000000 );
- CleanupStack::Pop(); //request
- iUriParser->SetDocumentSubset( iDocumentSubset );
- }
-
-// ---------------------------------------------------------
-// CXcapAddition::FormatModRequestL
-//
-// ---------------------------------------------------------
-//
-TInt CXcapInsertion::FormatModRequestL( const CXdmDocumentNode* aDocumentNode )
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapInsertion::FormatModRequestL()" ) );
- iOperationFactory.WriteToLog( _L8( " Operation type: %d" ), iOperationType );
- iOperationFactory.WriteToLog( _L8( " Document subset: %x" ), iDocumentSubset );
- #endif
- return CXcapHttpOperation::FormatModRequestL( aDocumentNode );
- }
-
-// ---------------------------------------------------------
-// CXcapInsertion::ExecuteL
-//
-// ---------------------------------------------------------
-//
-void CXcapInsertion::ExecuteL()
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapInsertion::ExecuteL()" ) );
- #endif
- CXcapHttpOperation::ExecuteL( iActiveRequest, iDocumentSubset );
- iActiveRequest->SetHeaderL( KHttpHeaderIfMatch, _L8( "*" ) );
- }
-
-// ---------------------------------------------------------
-// CXcapInsertion::OperationCompleteL
-//
-// ---------------------------------------------------------
-//
-void CXcapInsertion::OperationCompleteL()
- {
-
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapInsertion::OperationCompleteL()" ) );
- #endif
- TPtrC8 root = Transport().RootUri();
- iRequestData = iActiveRequest->ResponseData();
- TPtrC name = iTargetDoc.Name();
- TPtrC8 eTag = Descriptor( iRequestData->iETag );
- switch( iRequestData->iHttpStatus )
- {
- case 201: //"Created" -> Put operation was succesful
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( " Status 201 - Created" ) );
- #endif
- iResult = KErrNone;
- iTargetDoc.SetETag( eTag );
- CXcapHttpContSupplier* request = ( CXcapHttpContSupplier* )iActiveRequest;
- RXcapCache* cache = iTargetDoc.Protocol().Cache();
- if( cache != NULL && iOperationType == EXdmDocument )
- {
- TPtrC8 payload = request->RequestBody();
- cache->Store( eTag, name, root, payload );
- }
- iCompleted = ETrue;
- }
- break;
- case 412: //"Precondition failed" -> Cache out of date
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( " Status 412 - Precondition failed" ) );
- #endif
- iResult = KXcapErrorHttpPrecondFailed;
- //RXcapCache* cache = CXcapProtocol::Cache();
- //if( cache != NULL && iOperationType == EXcapDocument )
- // cache->Delete( name, root );
- iCompleted = ETrue;
- iActiveRequest->ResetUriL( _L( "" ) );
- iActiveRequest->ReleaseResponseData();
- iRequestData->iCompletion = KInsertConflict;
- }
- break;
- default:
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( " Default case - Status: %d" ),
- iRequestData->iHttpStatus );
- #endif
- TInt status = iRequestData->iHttpStatus;
- iResult = ReinterpretStatus( status );
- iCompleted = ETrue;
- break;
- }
- }
-
-// ---------------------------------------------------------
-// Symbian OS default constructor may leave.
-//
-// ---------------------------------------------------------
-//
-void CXcapInsertion::OperationFailedL()
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapInsertion::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;
- }
-
-// ---------------------------------------------------------
-// Symbian OS default constructor may leave.
-//
-// ---------------------------------------------------------
-//
-TBool CXcapInsertion::Result() const
- {
- return ETrue;
- }
-
-// ---------------------------------------------------------
-// Destructor
-//
-// ---------------------------------------------------------
-//
-CXcapInsertion::~CXcapInsertion()
- {
- #ifdef _DEBUG
- iOperationFactory.WriteToLog( _L8( "CXcapInsertion::~CXcapInsertion()" ) );
- #endif
- }
-
-// End of File
-