--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/upnp/upnpstack/controlpointbase/inc/upnpcpbcurrenthttpclient.h Tue Feb 02 01:12:20 2010 +0200
@@ -0,0 +1,166 @@
+/** @file
+* Copyright (c) 2007-2007 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:
+ *
+*/
+
+
+#ifndef UPNPCPBCURRENTHTTPCLIENT_H_
+#define UPNPCPBCURRENTHTTPCLIENT_H_
+
+#include <upnpdispatcher.h>
+
+#include "upnpcpbhttpmessagecontroller.h"
+#include "upnphttpclientengine.h"
+
+class CUpnpGenaMessage;
+class CUpnpServiceInfo;
+class CUpnpControlPoint;
+class CUpnpHTTPTransaction;
+
+class MUpnpCpHttpRequestor;
+class CUpnpCpHttpRequestorImplBase;
+class MUpnpCpStackRequestor;
+class CUpnpCpStackRequestorImplBase;
+
+class CUpnpFileSender;
+
+NONSHARABLE_CLASS( CUpnpCpbCurrentHttpClient ) : public CBase, public MUpnpHttpClientObserver,
+ public MUpnpCpbHttpMessageController
+ {
+public:
+ static const TInt KDefaultSubscriptionTimeout = 300; // 5 minutes
+
+public:
+
+ virtual ~CUpnpCpbCurrentHttpClient();
+
+ static CUpnpCpbCurrentHttpClient* NewL(CUpnpControlPoint& aControlPoint,
+ MUpnpCpHttpRequestor* aHttpRequestor, MUpnpCpStackRequestor* aStackRequestor );
+
+ void StartIPFilteringL();
+
+ void StopIPFiltering();
+
+ void SendFileByPostL( CUpnpHttpMessage* aMessage );
+ /**
+ * It is called from bottom layer when wlan lost event occurs [callback method]
+ * @result None
+ */
+ void WlanLostOccurs();
+
+ /**
+ * It is called from bottom layer when address change event occurs [callback method]
+ */
+ void AddressChangedL();
+
+public: //from MUpnpCpbHttpMessageController
+
+ virtual void SendL( CUpnpHttpMessage* aMessage );
+
+ virtual void SendActionL(CUpnpAction* aAction);
+
+ virtual void SendSubscribeL(CUpnpServiceInfo* aServiceInfo);
+
+ virtual void SendUnsubscribeL(CUpnpServiceInfo* aServiceInfo);
+
+ virtual void SendResubscribeL(CUpnpServiceInfo* aServiceInfo);
+
+ virtual TInt GetServiceDescriptionL(CUpnpDevice* aDevice, const TDesC8& aServiceUrl);
+
+ virtual TInt GetDeviceDescriptionL(CUpnpDevice* aDevice);
+
+ virtual void SearchL(const TDesC8& aSearchString);
+
+ /**
+ * Stops ignoring all embedded devices of specified device
+ * @since Series60 3.2
+ * @param aRoot Root device
+ */
+ virtual void StopIgnoringEmbeddedL( CUpnpDevice* aRoot );
+
+ virtual void StopIgnoringUuidL(const TDesC8& aUuids);
+
+ /**
+ * Stops ignoring all device tree
+ * @since Series60 3.2
+ * @param aRoot Root device
+ */
+ virtual void StopIgnoringL( CUpnpDevice* aDevice );
+
+private://from MUpnpDispatcherCustomer that is derived by MUpnpCpbHttpMessageController
+
+ virtual void MessageReceivedLD(CUpnpHttpMessage* aMessage);
+
+ virtual const TDesC8& Path();
+
+private: //from MUpnpHTTPClientObserver
+
+ /**
+ * Callback indicating that response was received within transaction.
+ *
+ * @param aCompletedTrasaction completed transaction that has response message
+ */
+ virtual void ClientResponseRecivedLD( CUpnpHttpTransaction& aCompletedTrasaction );
+
+private:
+ CUpnpCpbCurrentHttpClient( CUpnpControlPoint& aControlPoint,
+ MUpnpCpHttpRequestor* aHttpRequestor, MUpnpCpStackRequestor* aStackRequestor );
+
+ void ConstructL();
+
+ /**
+ * Set requestors which leaves with KErrNotReady or do nothing.
+ * This is used when WLan Lost occurs.
+ * @result None
+ */
+ void SetNullRequestorsL();
+
+private:
+
+ // control point, not owned
+ CUpnpControlPoint& iControlPoint;
+
+ // pointer to http requestor interface
+ MUpnpCpHttpRequestor* iHttpRequestor;
+
+ // default implementation of http requestor
+ CUpnpCpHttpRequestorImplBase* iHttpRequestorDefaultImpl;
+
+ // iStackRequestor uses DLNA webserver API for http, and dispacher to communicate with stack
+ MUpnpCpStackRequestor* iStackRequestor;
+
+ // default implementation of stack requestor
+ CUpnpCpStackRequestorImplBase* iStackRequestorDefaultImpl;
+
+ // value of USER-AGENT header in sent SOAP requests
+ HBufC8* iUserAgent;
+
+ // Current state of discovery engine
+ TInt iResult;
+
+ // The pending message list
+ RPointerArray<CUpnpHttpMessage> iPendingHttpMessages;
+
+ // pending transactions array
+ RPointerArray<CUpnpHttpTransaction> iPendingTransactions;
+
+ CUpnpFileSender* iFileSender;
+
+ };
+
+#endif /*UPNPCPBCURRENTHTTPCLIENT_H_*/
+
+// End of File
+