diff -r 000000000000 -r f5a58ecadc66 servicediscoveryandcontrol/pnp/test/testplugin/inc/testpnpparamset.h --- /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 +#include +#include +#include +#include + +#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__