xdmprotocols/XcapProtocol/XcapOperations/inc/XcapHttpOperation.h
branchRCL_3
changeset 35 fbd2e7cec7ef
parent 0 c8caa15ef882
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xdmprotocols/XcapProtocol/XcapOperations/inc/XcapHttpOperation.h	Wed Sep 01 12:23:14 2010 +0100
@@ -0,0 +1,264 @@
+/*
+* 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:   CXcapHttpOperation
+*
+*/
+
+
+
+
+#ifndef __XCAPHTTPOPERATION__
+#define __XCAPHTTPOPERATION__
+
+#include <e32base.h>
+#include "XdmOperation.h"
+#include "XcapOperationFactory.h"
+#include "XcapHttpRequestTimerCallback.h"
+
+//The default timout for HTTP requests in seconds
+const TInt KDefaultHttpRequestTimeout           = 30;
+
+//Set, if document should be fetched from cache when processing a doc subset
+const TInt KFetchMasterFromCache                             = KXdmOption1;
+
+//Set, if rules concerning document subsets should be applied when processing responses
+const TInt KDocumentSubset                                   = KXdmOption2;
+
+//Set, if the document an operation targets should not be cached (a directory document, for example)
+const TInt KNoCache                                          = KXdmOption3;
+
+//Set, if EARLY-IMS is in use => add the public ID in X-3GPP-Intended-Identity header
+const TInt KUseIntendedIdentity                              = KXdmOption4;
+
+//FORWARD DECLARATION
+class RXcapCache;
+class CXdmDocument;
+class CXcapDocument;
+class CXdmXmlParser;
+class CXcapUriParser;
+class CXcapHttpRequest;
+class CXdmDocumentNode;
+class CXcapDocumentNode;
+class CXcapHttpTransport;
+
+//Override application usage validation
+//Must ONLY be used for testing, comment out before release
+//#define                           __OVERRIDE_VALIDATION__
+
+//CLASS DECLARATION
+NONSHARABLE_CLASS( CXcapHttpOperation ) : public CActive,
+                                          public MXdmOperation
+                           
+    {
+    public:
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        static void EscapeLC( CXdmDocumentNode& aRootNode );
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        static HBufC8* EscapeLC( const TDesC8& aDescriptor );
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        static HBufC8* Escape2LC( const TDesC& aDescriptor );
+        
+    public:
+        
+        /**
+        * Destructor.
+        */      
+        void ExecuteL( TRequestStatus& aStatus, TUint aOptions );
+
+        /**
+        * Destructor.
+        */      
+        TInt Result() const;
+        
+        /**
+        * Destructor.
+        */      
+        const TXdmCompletionData& CompletionData() const;
+        
+        /**
+        * Destructor.
+        */    
+        TBool IsCompleted() const;
+        
+        /**
+        * Set this operation to completed state.
+        */      
+        void Destroy();
+        
+        /**
+        * Set this operation to completed state.
+        */      
+        virtual CXdmDocumentNode* TargetNode() const;
+        
+        /**
+        * Destructor.
+        */    
+        CXcapHttpRequest* HttpRequest() const;
+
+        /**
+        * Destructor.
+        */      
+        virtual ~CXcapHttpOperation();
+
+    protected:  //Methods
+
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        CXcapHttpOperation( const CXdmDocument& aTargetDoc,
+                            CXcapDocumentNode* aDocumentSubset,
+                            CXcapOperationFactory& aOperationFactory );
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        void BaseConstructL();
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        TPtrC8 Descriptor( HBufC8* aBuffer );
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        TInt ReinterpretStatus( const TInt aHttpStatus ) const;
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */ 
+        CXcapHttpTransport& Transport() const;
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        virtual void OperationCompleteL() = 0;
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        virtual void OperationFailedL() = 0;
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        virtual void ExecuteL() = 0;
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        virtual void ExecuteL( CXcapHttpRequest* aHttpRequest,
+                               CXdmDocumentNode* aDocumentNode );
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */    
+        virtual TInt FormatModRequestL( const CXdmDocumentNode* aDocumentNode );
+        
+    private:
+    
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        void RunL();
+
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        void DoCancel();
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */    
+        TBool StartOperationL();
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        void CancelOperation();
+        
+        /**
+        * Symbian OS default constructor.
+        * @param TInt Default Access Point ID
+        * @return CXdmDocOperation*
+        */     
+        void HandleTimerEventL();
+
+    protected:
+        
+        TInt                                 iResult;
+        TInt                                 iCurrentIndex;
+        TBool                                iCompleted;
+        TBool                                iPartial;
+        TUint                                iOptionFlags;
+        CXdmXmlParser*                       iXmlParser;
+        TXdmCompletionData                   iFailureData;
+        TXdmCompletionData*                  iRequestData;
+        TRequestStatus*                      iClientStatus;
+        CXcapUriParser*                      iUriParser;
+        CXcapHttpRequest*                    iActiveRequest;
+        CXcapDocumentNode*                   iDocumentSubset;
+        CXcapDocument&                       iTargetDoc;
+        CXcapOperationFactory&               iOperationFactory;
+        RPointerArray<CXcapHttpRequest>      iRequestQueue;
+
+    private:  //Data
+    };
+
+#endif      //__XCAPHTTPOPERATION__
+            
+// End of File