--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xdmprotocols/XcapProtocol/XcapOperations/inc/XcapHttpOperation.h Tue Feb 02 01:05:17 2010 +0200
@@ -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