diff -r 000000000000 -r f5a58ecadc66 upnp/upnpstack/serviceframework/inc/upnphttpclientengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnp/upnpstack/serviceframework/inc/upnphttpclientengine.h Tue Feb 02 01:12:20 2010 +0200 @@ -0,0 +1,113 @@ +/** @file +* Copyright (c) 2008 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: Declares the CUpnpHttpClientEngine class +* +*/ + + +#ifndef __UPNPHTTPCLIENTENGINE_H__ +#define __UPNPHTTPCLIENTENGINE_H__ + +// INCLUDES +#include +#include +#include "upnphttpmessagesenderowner.h" +#include "upnpconnectionmanagerproxy.h" + +// FORWARD DECLARATIONS +class CUpnpHttpTransaction; +class CUpnpHttpMessageSender; + +// CLASS DECLARATION + +/** +* MUpnpHttpClientObserver +* CUpnpHttpClientEngine passes end of transaction event with this interface. +* An instance of this class must be provided for construction of CUpnpHttpClientEngine. +*/ +class MUpnpHttpClientObserver + { + public: + virtual void ClientResponseRecivedLD( CUpnpHttpTransaction& aEndedTransaction ) = 0; + }; + +/** +* CUpnpHTTPClientEngine +* Provides simple interface to HTTP Client API. +*/ +NONSHARABLE_CLASS( CUpnpHttpClientEngine ): public CBase, public MUpnpHttpMessageSenderOwner + { + public: + /** + * Create a CUpnpHttpClientEngine object. + * @param iObserver: + * @return A pointer to the created instance of CWebClientEngine + */ + IMPORT_C static CUpnpHttpClientEngine* NewL( + MUpnpHttpClientObserver& aObserver, TInt aActiveIap ); + + /** + * Create a CUpnpHttpClientEngine object and leave it on cleanup stack. + * @param iObserver: + * @return A pointer to the created instance of CWebClientEngine + */ + IMPORT_C static CUpnpHttpClientEngine* NewLC( + MUpnpHttpClientObserver& aObserver, TInt aActiveIap ); + + /** + * Destroy the object + */ + IMPORT_C ~CUpnpHttpClientEngine(); + + IMPORT_C void SendL( CUpnpHttpTransaction& aTransaction ); + + /*IMPORT_C*/ void Cancel( CUpnpHttpTransaction& aTransaction ); +private: + TInt Find( CUpnpHttpTransaction& aTransaction ); + + +private://from MUpnpHttpMessageSenderOwner + + /* + * Destroyes sender and removes it from senders list. + */ + virtual void SenderFinishedLD( CUpnpHttpMessageSender* aSenderToRelease ); + +private: + + /** + * Perform the second phase construction of a CWebClientEngine object. + */ + void ConstructL( TInt aActiveIap ); + + /** + * Perform the first phase of two phase construction. + * @param iObserver: + */ + CUpnpHttpClientEngine( MUpnpHttpClientObserver& iObserver ); + + private: + RHTTPSession iSession; + MUpnpHttpClientObserver& iObserver; + + RSocketServ iSocketServ; + CUpnpConnectionManagerProxy* iConnectionManagerProxy; + + RPointerArray iSenders; + }; + +#endif // __UPNPHTTPCLIENTENGINE_H__ + +// End of File +