diff -r 000000000000 -r 62f9d29f7211 webservices/wshttpchanneltransportplugin/inc/senhttpsyncrequester.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webservices/wshttpchanneltransportplugin/inc/senhttpsyncrequester.h Thu Jan 07 16:19:19 2010 +0200 @@ -0,0 +1,174 @@ +/* +* Copyright (c) 2002-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: The class for submitting synchronous HTTP requests. +* Create and initialize instance of CSenHttpChannel +* first and pass it as a parameter to this wrapper +* class in a constructor. +* +*/ + + + + + + + + + + + +#ifndef WSF_HTTP_SYNC_REQUESTER_H +#define WSF_HTTP_SYNC_REQUESTER_H + +// INCLUDES +#include + +#include "senresponseobserver.h" +#include "MSenElement.h" + +// FORWARD DECLARATIONS +class CSenHttpChannel; +class CSenLayeredHttpTransportProperties; + +// CLASS DECLARATION + +/** + * The class for submitting synchronous HTTP requests. + * Create and initialize instance of CSenHttpChannel + * first and pass it as a parameter to this wrapper + * class in a constructor. + * + */ +class CSenHttpSyncRequester : public CTimer, + public MSenResponseObserver + { +public: + /** + * Two-phased constructor. + */ + static CSenHttpSyncRequester* NewL(CSenHttpChannel* aHttpChannel); + + /** + * Two-phased constructor. + */ + static CSenHttpSyncRequester* NewLC(CSenHttpChannel* aHttpChannel); + + /** + * Two-phased constructor. + */ + static CSenHttpSyncRequester* NewL(CSenHttpChannel* aHttpChannel, + MSenResponseObserver* aParentObserver); + + /** + * Two-phased constructor. + */ + static CSenHttpSyncRequester* NewLC(CSenHttpChannel* aHttpChannel, + MSenResponseObserver* aParentObserver); + + /** + * Destructor. + */ + virtual ~CSenHttpSyncRequester(); + + /** + * Submit a synchronous HTTP GET request to a given URI. + * The method leaves if an error occurs. This method + * takes the ownership of the heap buffers aResponseContentType + * and aResponseContent. + * + * @param aRequestUri outgoing request URI. + * @param aResponseContentType incoming response content type. + * @param aResponseContent incoming response content. + */ + // HTTP GET + //TInt SubmitL(const TDesC8& aRequestUri, + // HBufC8*& aResponseContentType, + // HBufC8*& aResponseContent, + // TInt& aErrorCode); + + /** + * Submit a synchronous HTTP POST request to a given URI. + * The method leaves if an error occurs. This method + * takes the ownership of the heap buffers aResponseContentType + * and aResponseContent. + * + * @param aRequestUri outgoing request URI. + * @param aRequestContentType outgoing request content type. + * @param aRequestContent outgoing request content. + * @param aResponseContentType incoming response content type. + * @param aResponseContent incoming response content. + */ + TInt SubmitL(const TDesC8& aRequestUri, + CSenLayeredHttpTransportProperties& aProps, + const TDesC8& aRequestContent, + HBufC8*& aResponseContentType, + HBufC8*& aResponseContent, + TInt& aErrorCode); + + /* + // SOAP envelope version of HTTP POST, IOP + TInt SubmitL(const TDesC8& aRequestUri, + const TDesC8* aRequestContentType, + MSenElement& aMessage, // SOAP envelope + HBufC8*& aResponseContentType, + HBufC8*& aResponseContent, + TInt& aErrorCode); + */ + + // Functions from base classes + + /** + * Callback method from MSenResponseObserver. + */ + virtual void ResponseReceivedL( TInt aRequestId, + const TAny* aContentType, + HBufC8* apContent, + CSenHttpTransportProperties* aHttpPrperties = NULL ); + + /** + * Callback method from MSenResponseObserver. + */ + virtual void ResponseErrorL(TInt aId, TInt aError, HBufC8* aErrorBody, CSenHttpTransportProperties* aHttpProperties ); + virtual void FileProgress(TInt /*aTxnId*/, TBool /*aIncoming*/, + TBool /*aIsSoap*/, const TDesC8& /*aSoapOrCid*/, TInt /*aProgress*/) + { + } + + virtual void StateChanged(TInt aRequestId, TInt aState); // In order to propagate http status codes + virtual void SetTrafficDetails(TSenDataTrafficDetails& aDetails) ; + virtual MSenProperties& PropertiesL(); + +//from activeObject + void DoCancel(); + void RunL(); + TInt RunError(TInt /*aError*/); + +private: + CSenHttpSyncRequester(CSenHttpChannel* aHttpChannel, + MSenResponseObserver* aParentObserver); + void ConstructL(); + +private: // Data + CSenHttpChannel* iHttpChannel; // not owned + CActiveSchedulerWait iSchedulerWait; + TBool isStopped; + HBufC8* iContentType; + HBufC8* iContent; + TInt iStatusCode; // containts KErrNone or some error + MSenResponseObserver* iParentObserver; // not owned + }; + +#endif //WSF_HTTP_SYNC_REQUESTER_H + +// End of File