servicediscoveryandcontrol/pnp/test/upnp/upnpdescription/inc/cpnpserviceparam.h
changeset 0 f5a58ecadc66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/servicediscoveryandcontrol/pnp/test/upnp/upnpdescription/inc/cpnpserviceparam.h	Tue Feb 02 01:12:20 2010 +0200
@@ -0,0 +1,189 @@
+// 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 __CPNPSERVICEPARAM_H_
+#define __CPNPSERVICEPARAM_H_
+
+#include <e32cmn.h>
+#include "cupnpproperty.h"
+
+class CUPnPAction;
+class CUPnPStateVariable;
+class CUPnPArgument;
+class CUPnPAllowedValue;
+
+/** 
+Container for action and service state objects
+
+@publishedPartner
+@prototype */
+
+class CUPnPServiceDescription: public CUPnPProperty
+	{
+
+public:
+	IMPORT_C static CUPnPServiceDescription* NewL();
+	IMPORT_C ~CUPnPServiceDescription();
+
+   
+    inline void SetMinorNumberL(const TInt aValue);
+    inline const TInt MinorNumber () const;
+
+    inline void SetMajorNumberL(const TInt aValue);
+    inline const TInt MajorNumber () const;
+    
+    inline void AppendToActionList(const CUPnPAction* aValue);
+    inline TInt CountOfActionList () const;
+    inline const CUPnPAction* AtActionList( TInt aIndex) const ;
+
+    inline void AppendToServiceStateTable(const CUPnPStateVariable* aValue);
+    inline TInt CountOfServiceStateTable () const;
+    inline const CUPnPStateVariable* AtServiceStateTable(const TInt aIndex) const;
+
+    TBool Validate(const RStringPool& aStringPool, const TStringTable& aStringTable ) const;
+private :
+
+	CUPnPServiceDescription();
+	void ConstructL();
+
+private :
+	TVersion 							iVersion;
+	RPointerArray<CUPnPAction> 			iActionList;
+	RPointerArray<CUPnPStateVariable>	iServiceStateTable;
+	};
+
+
+/*
+Following class store the service action information.
+*/
+class CUPnPAction: public CUPnPProperty
+	{
+
+public:
+	static CUPnPAction* NewL();
+	~CUPnPAction();
+
+
+    inline void AppendL(const CUPnPArgument* aValue);
+    inline TInt Count () const;
+    inline CUPnPArgument* At(TInt aIndex) const;
+
+	
+	TBool Validate(const RStringPool& aStringPool, const TStringTable& aStringTable ) const;
+
+private :
+
+	CUPnPAction();
+	void ConstructL();
+    
+private :
+	RPointerArray<CUPnPArgument> 		iArgumentList;		
+	};
+/* 
+Following class store argument object information.
+ */
+
+class CUPnPArgument: public CUPnPProperty
+	{
+
+public:
+	static CUPnPArgument* NewL();
+	~CUPnPArgument();
+	TBool Validate(const RStringPool& aStringPool, const TStringTable& aStringTable ) const;
+	void SetRetVal( TBool aValue );
+	TBool RetVal();
+private :
+
+	CUPnPArgument();
+	void ConstructL();
+	TBool iRetVal;
+private:
+	};
+/* 
+ Following structure store state varibale information. 
+*/
+class CUPnPStateVariable: public CUPnPProperty
+	{
+
+public:
+	static CUPnPStateVariable* NewL();
+	~CUPnPStateVariable();
+
+    inline void SetAllowedValuesL( CUPnPAllowedValue *aValue);
+    inline const CUPnPAllowedValue* AllowedValues () const;
+    inline void SetAllowedValueType ( TBool aStatus );
+    inline TBool AllowedValueType ( ) const ;
+    TBool Validate(const RStringPool& aStringPool, const TStringTable& aStringTable ) const;
+	
+private :
+	CUPnPStateVariable();
+	void ConstructL();    
+    TBool isValue;
+	CUPnPAllowedValue*	iAllowedValue;
+	};
+/* 
+ Following structure is the base class for allowed list or range objects. 
+*/
+
+class CUPnPAllowedValue: public CUPnPProperty
+	{
+public:
+	enum TAllowedValueType
+				{
+				EArgValueList,
+				EArgValueRange,
+				};
+		TAllowedValueType iType;
+
+	};
+/* 
+ Following structure stores information about argument value list. 
+*/
+class CUPnPArgValueList: public CUPnPAllowedValue
+	{
+
+public:
+	static CUPnPArgValueList* NewL();
+	~CUPnPArgValueList();
+
+    inline void AppendL(const TDesC8& aValue);
+    inline  TInt Count () const;
+    inline const TDesC8& At(const TInt aIndex) const;
+private :
+
+	CUPnPArgValueList();
+	void ConstructL();
+private :
+	RArray<RBuf8>	iAllowedValueList;
+	};
+
+/* 
+ CUPnPValueRange stores the upnp argument value range. 
+*/
+class CUPnPValueRange: public CUPnPAllowedValue
+	{
+public:
+	IMPORT_C static CUPnPValueRange* NewL();
+	IMPORT_C ~CUPnPValueRange();
+  
+private :
+
+	CUPnPValueRange();
+	void ConstructL();
+
+	};
+
+#include "cpnpserviceparam.inl"	
+#endif /*CPNPSERVICEPARAM_H_*/