--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/servicediscoveryandcontrol/pnp/test/upnp/Client/upnpplugin/inc/cupnpsearch.h Tue Feb 02 01:12:20 2010 +0200
@@ -0,0 +1,99 @@
+// Copyright (c) 2008-2009 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 __CUPNPSEARCH_H_
+#define __CUPNPSEARCH_H_
+
+#include <e32base.h>
+#include <mpnpobserver.h>
+#include <upnp/upnpconstants.h>
+
+#include "pnputils.h"
+#include "ccallbackargument.h"
+#include "ctimermappeduri.h"
+
+/* Used to send discover requests for service points in the network
+ @internalComponent
+ */
+class CUPnPSearch: public CBase
+{
+public:
+ static CUPnPSearch* NewL( RSubConnection& aSubConnection );
+ void SubmitRequestL( const RPnPParameterBundle& aServiceInfo );
+ void NotifyResultsL( RPnPParameterBundleBase& aBundle );
+ void CancelSearchL( const RPnPParameterBundle& aServiceInfo );
+ inline TBool DiscoverInProgress();
+ ~CUPnPSearch();
+
+private:
+ CUPnPSearch( RSubConnection& aSubConnection );
+ void ConstructL();
+ void CancelSearchL(const TDesC8& aUri);
+ void CreateTimerEntryL( const TDesC8& aUri );
+ void MakeBundleAndNotifyL(CCallbackArgument* aCallArgument);
+ static TInt StopSearch( TAny* aPtr );
+
+ inline TInt AdjustedDelay(TInt aTime);
+ inline RPointerArray<CTimerMappedUri>& GetTimerArray();
+ inline MPnPObserver* Observer();
+ inline RPointerArray<CCallbackArgument>& GetArgumentArray();
+ inline void SetDiscoverProgress( TBool aValue);
+ CTimerMappedUri* iMappedUri;
+ RSubConnection& iSubConnection;
+ CDeltaTimer* iDeltaTimer;
+ MPnPObserver* iObserver;
+ RPointerArray<CTimerMappedUri> iTimerMappedArray;
+ RPointerArray<CCallbackArgument> iCallbackArray;
+ TDeltaTimerEntry* iEntry;
+ TBool iIsSearching;
+};
+
+/* Used to calculate the time in microseconds to set the timer entry.Also a little
+ of time is used extra to account for Intra process communication
+ @param aTime The time for which the timer has to be set in seconds
+ @return The actual time in microseconds
+ */
+TInt CUPnPSearch::AdjustedDelay( TInt aTime )
+ {
+ const TUint KIntTime = 1000000 ;
+ const TUint KInternalIPCLag = 1;
+ aTime = ( aTime + KInternalIPCLag ) * KIntTime ;
+ return aTime;
+ }
+
+MPnPObserver* CUPnPSearch::Observer()
+ {
+ return iObserver;
+ }
+
+/* inline method to return the RPointerArray */
+RPointerArray<CTimerMappedUri>& CUPnPSearch::GetTimerArray()
+ {
+ return iTimerMappedArray;
+ }
+RPointerArray<CCallbackArgument>& CUPnPSearch::GetArgumentArray()
+ {
+ return iCallbackArray;
+ }
+
+TBool CUPnPSearch::DiscoverInProgress()
+ {
+ return iIsSearching;
+ }
+void CUPnPSearch::SetDiscoverProgress( TBool aValue)
+ {
+ iIsSearching = aValue;
+ }
+#endif /*CUPNPSEARCH_H_*/