servicediscoveryandcontrol/pnp/test/testplugin/inc/testpnpparamset.h
changeset 0 f5a58ecadc66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/servicediscoveryandcontrol/pnp/test/testplugin/inc/testpnpparamset.h	Tue Feb 02 01:12:20 2010 +0200
@@ -0,0 +1,392 @@
+// 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 __TESTPNPPARAMSET_H__
+#define __TESTPNPPARAMSET_H__
+
+#include <es_sock.h>
+#include <in_sock.h>
+#include <elements/metadata.h>
+#include <comms-infras/es_parameterfamily.h>
+#include <comms-infras/es_parameterbundle.h>
+
+#include "testpnpconstants.h"
+
+/**
+TestPnP ParameterSet Family Identifiers.
+*/
+enum TTestPnPParamSetFamily
+	{
+	// Used by Control Point
+	ETestPnPRegisterAnnouncementParamSet 	= 1,
+	ETestPnPAbsenceAnnouncementParamSet 	= 2,
+	ETestPnPPresenceAnnouncementParamSet	= 3,
+	ETestPnPDiscoverRequestParamSet		= 4,
+	ETestPnPDiscoverResponseParamSet		= 5,
+	//Do not use the 6 as it is used by family which carries implementation UID of SCPR.
+	ETestPnPDescribeRequestParamSet		= 7,
+	ETestPnPDescribeResponseParamSet		= 8,
+	ETestPnPSubscribeRequestParamSet		= 9,
+	ETestPnPSubscribeResponseParamSet		= 10,
+	ETestPnPNotifyEventParamSet			= 11,
+	ETestPnPCancelDiscoverParamSet			= 12,
+	ETestPnPCancelDescribeParamSet			= 13,
+	ETestPnPCancelSubscribeParamSet		= 14,
+	ETestPnPCancelRegisterNotifyParamSet	= 15,
+	ETestPnPRequestParamSet				= 16,
+	ETestPnPResponseParamSet				= 17,
+
+	// Used by Service Point
+	ETestPnPServiceRegisterParamSet		= 18,
+	ETestPnPServiceNotificationParamSet	= 19,
+	ETestPnPPublishResponseParamSet		= 20,
+	};
+
+/**
+class TTestPnPEvent
+TestPnPEvent class defines the reason code for an event callback.
+*/
+NONSHARABLE_CLASS(TTestPnPEvent)
+	{
+public:
+	/** Type of TestPnP Event. */
+	enum TEventType
+	{
+		/** This signifies that the operation completed successfully. */
+		ESuccess,
+		/** This is a 'catch-all' for communicating failures. The actual error reason is
+			shown in error code. */
+		EFail,
+	};
+
+public:
+	/** The event status. */
+	TInt iStatus;
+	/** The error code value. */
+	TInt iErrorCode;
+	};
+
+
+
+
+/**
+The base class for all TestPnP ParamSet classes.
+*/
+NONSHARABLE_CLASS (CTestPnPParamSetBase) : public CSubConExtensionParameterSet
+	{
+	public:		
+		inline static CTestPnPParamSetBase* NewL ( RParameterFamily& aFamily, TTestPnPParamSetFamily aFamilyType );
+	protected:
+		inline CTestPnPParamSetBase ();
+	};
+
+
+// -------------------------------------------------------------------
+
+/**
+Parameter set class containing a Uri. All TestPnP Request ParamSet classes derive from this class.
+*/
+NONSHARABLE_CLASS ( CTestPnPRequestParamSetBase ) : public CTestPnPParamSetBase
+	{
+	protected:
+		RBuf8 iUri;
+	public:
+		inline void SetUriL ( const TDesC8& aUri );
+		inline const TDesC8& Uri () const;
+	protected:
+		inline CTestPnPRequestParamSetBase ();
+		inline ~CTestPnPRequestParamSetBase ();
+	protected:
+		DATA_VTABLE
+	};
+
+// ----------------------------------------------------------------------
+
+/**
+Parameter set class containing a TestPnP Event. All TestPnP Response ParamSet classes derive from this class.
+*/
+NONSHARABLE_CLASS ( CTestPnPResponseParamSetBase ) : public CTestPnPRequestParamSetBase
+	{
+	protected:
+		TTestPnPEvent iTestPnPEvent;
+	public:
+		inline void SetTestPnPEvent ( const TTestPnPEvent& aEvent );
+		inline const TTestPnPEvent& TestPnPEvent () const;
+	protected:
+		inline CTestPnPResponseParamSetBase ();
+	protected:
+		DATA_VTABLE
+	};
+
+// -------------------------------------------------------------------------
+
+/** TestPnP Control Point ParameterSet classes. */
+
+/**
+Parameter set class for discovering services/devices.
+Calling client should set the ServiceType/DeviceType and maximum wait time.
+*/
+NONSHARABLE_CLASS(CTestPnPDiscoverRequestParamSet) : public CTestPnPRequestParamSetBase
+	{
+	private:
+		TInt iTimeToDelayResponse;
+	public :
+		inline static CTestPnPDiscoverRequestParamSet* NewL( RParameterFamily& aFamily );
+		inline void SetResponseTime(TInt aResponseTime);
+		inline TInt ResponseTime( ) const ;
+	protected:
+		DATA_VTABLE
+	};
+
+// ---------------------------------------------------------------------------
+
+/**
+Parameter set class for subscribing to remote service. Client should set the ServiceLocation and Duration
+of subscription.
+*/
+NONSHARABLE_CLASS(CTestPnPSubscribeRequestParamSet) : public CTestPnPRequestParamSetBase
+	{
+protected:
+
+public:
+	inline static CTestPnPSubscribeRequestParamSet* NewL( RParameterFamily& aFamily );
+
+protected:
+		DATA_VTABLE
+	};
+
+// ----------------------------------------------------------------------------
+
+/**
+Parameter set class for registering SSDP:Alive request of a service/device. Caller should send the
+ServiceType/DeviceType to register for announcements.
+*/
+NONSHARABLE_CLASS(CTestPnPRegisterAnnouncementParamSet) : public CTestPnPRequestParamSetBase
+	{
+	public:
+		TBool iRegister;
+		inline static CTestPnPRegisterAnnouncementParamSet* NewL ( RParameterFamily& aFamily );
+		inline void SetRegisterVariable(TBool aValue);
+		inline TBool RegisterVariable();
+	protected:
+		DATA_VTABLE
+	};
+
+// -----------------------------------------------------------------------------
+
+/**
+Parameter set class for describe request. Caller should set the ServiceType/DeviceType to be described.
+*/
+NONSHARABLE_CLASS(CTestPnPDescribeRequestParamSet) : public CTestPnPRequestParamSetBase
+	{
+
+	public:
+		inline static CTestPnPDescribeRequestParamSet* NewL ( RParameterFamily& aFamily );
+
+
+	protected:
+		DATA_VTABLE
+	};
+// -----------------------------------------------------------------------------
+/**
+Parameter set class for cancel discover request.
+
+*/
+
+NONSHARABLE_CLASS(CTestPnPCancelDiscoverParamSet) : public CTestPnPRequestParamSetBase
+	{
+	public:		
+		inline static CTestPnPCancelDiscoverParamSet* NewL( RParameterFamily& aFamily );
+
+	protected:
+		DATA_VTABLE
+	};
+
+// -----------------------------------------------------------------------------
+/**
+Parameter set class for cancel describe request.
+*/
+
+NONSHARABLE_CLASS(CTestPnPCancelDescribeParamSet) : public CTestPnPRequestParamSetBase
+	{
+	public:
+		inline static CTestPnPCancelDescribeParamSet* NewL( RParameterFamily& aFamily );
+
+	protected:
+		DATA_VTABLE
+	};
+
+// -----------------------------------------------------------------------------
+/**
+Parameter set class for cancel subscribe request.
+*/
+
+NONSHARABLE_CLASS(CTestPnPCancelSubscribeParamSet) : public CTestPnPRequestParamSetBase
+	{
+	public:
+		inline static CTestPnPCancelSubscribeParamSet* NewL( RParameterFamily& aFamily );
+
+	protected:
+		DATA_VTABLE
+	};
+
+// -----------------------------------------------------------------------------
+/**
+Parameter set class for cancel register notify request.
+*/
+NONSHARABLE_CLASS(CTestPnPCancelRegisterNotifyParamSet) : public CTestPnPRequestParamSetBase
+	{
+	public:
+		inline static CTestPnPCancelRegisterNotifyParamSet* NewL( RParameterFamily& aFamily );
+
+	protected:
+		DATA_VTABLE
+	};
+
+// -----------------------------------------------------------------------------
+
+/**
+Parameter set class for retrieving the responses of discovery requests. Client can extract remote device
+information such as Device Location, Unique Service Name (USN) and Max age of the advertisement in
+callback function.
+
+*/
+NONSHARABLE_CLASS(CTestPnPDiscoverResponseParamSet) : public CTestPnPResponseParamSetBase
+	{
+public :
+	// Internal APIs
+	inline static CTestPnPDiscoverResponseParamSet* NewL( RParameterFamily& aFamily );
+
+	// D'tor
+	inline ~CTestPnPDiscoverResponseParamSet ();
+protected:
+		DATA_VTABLE
+	};
+
+// -------------------------------------------------------------------------------------
+
+/**
+Parameter set class for retrieving responses of describe requests. Client can extract the device description
+in callback function.
+
+*/
+NONSHARABLE_CLASS(CTestPnPDescribeResponseParamSet) : public CTestPnPResponseParamSetBase
+	{
+public:
+	inline static CTestPnPDescribeResponseParamSet* NewL( RParameterFamily& aFamily );
+	inline ~CTestPnPDescribeResponseParamSet ();
+protected:
+		DATA_VTABLE
+	};
+// -------------------------------------------------------------------------------------
+
+/**
+Parameter set class for retrieving response of subscription request. Calling client can extract the
+subscription status in callback function.
+
+*/
+NONSHARABLE_CLASS(CTestPnPSubscribeResponseParamSet) : public CTestPnPResponseParamSetBase
+	{
+public:
+	inline static CTestPnPSubscribeResponseParamSet* NewL( RParameterFamily& aFamily );
+protected:
+		DATA_VTABLE
+	};
+// -------------------------------------------------------------------------------------
+
+/**
+Parameter set class for retrieving the event notification. Calling client can extract the
+notification information in callback function. If notification order is not matched an error code
+is returned to the client.
+
+*/
+NONSHARABLE_CLASS(CTestPnPNotifyEventParamSet) : public CTestPnPResponseParamSetBase
+	{
+public:
+	inline static CTestPnPNotifyEventParamSet* NewL( RParameterFamily& aFamily );
+	inline ~CTestPnPNotifyEventParamSet ();
+protected:
+		DATA_VTABLE
+	};
+// -------------------------------------------------------------------------------------
+
+/**
+Parameter set class for retrieving the SSDP:ByeBye message. Calling client can extract the
+published information in callback function.
+
+*/
+NONSHARABLE_CLASS(CTestPnPAbsenceAnnouncementParamSet) : public CTestPnPResponseParamSetBase
+	{
+public:
+	inline static CTestPnPAbsenceAnnouncementParamSet* NewL( RParameterFamily& aFamily );
+
+	// D'tor
+	inline ~CTestPnPAbsenceAnnouncementParamSet ();
+protected:
+		DATA_VTABLE
+	};
+// -------------------------------------------------------------------------------------
+
+/**
+Parameter set class for retrieving SSDP:Alive message. Calling client can extract the
+published information in callback function.
+
+*/
+NONSHARABLE_CLASS(CTestPnPPresenceAnnouncementParamSet) : public CTestPnPAbsenceAnnouncementParamSet
+	{
+public:
+	inline static CTestPnPPresenceAnnouncementParamSet* NewL( RParameterFamily& aFamily );
+
+	// D'tor
+	inline ~CTestPnPPresenceAnnouncementParamSet ();
+protected:
+		DATA_VTABLE
+	};
+// -------------------------------------------------------------------------------------
+
+/** TestPnP Service Point ParameterSet classes. */
+
+/**
+Parameter set class for registering the service and publishing the service information. Service Client
+should set the following fields :
+*/
+NONSHARABLE_CLASS( CTestPnPServiceRegisterParamSet ) : public CTestPnPRequestParamSetBase
+	{
+	public:
+		inline ~CTestPnPServiceRegisterParamSet ();
+		inline static CTestPnPServiceRegisterParamSet* NewL(RParameterFamily& aFamily);
+
+	protected:
+		DATA_VTABLE
+	};
+
+
+/** Parameter set class for receiving success or failure for service or device
+  registration
+
+*/
+NONSHARABLE_CLASS(CTestPnPPublishResponseParamSet) : public CTestPnPResponseParamSetBase
+	{
+public:
+	inline static CTestPnPPublishResponseParamSet* NewL( RParameterFamily& aFamily);
+protected:
+	DATA_VTABLE
+
+	};
+
+
+#include "testpnpparamset.inl"
+
+#endif // __TESTPNPPARAMSET_H__