diff -r 000000000000 -r af10295192d8 linklayercontrol/mbmsparameters/inc/mbmsparams.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linklayercontrol/mbmsparameters/inc/mbmsparams.h Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,309 @@ +// 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: +// + +/** + @file + @publishedPartner + @released since 9.5 +*/ + +#ifndef __MBMSPARAMS_H__ +#define __MBMSPARAMS_H__ + +#include +#include +#include +#include +#include +#include +#include +/** + Represents the implementation Uid for MBMS parameters. +*/ +const TInt32 KConnectionServMBMSParamImplUid = 0x20019D41; + + +/** + Represents the implementation Uid for Channel SubConnection parameters. +*/ +const TInt32 KSubConChannelParamsImplUid = 0x20019D42; + +/** + Represents the implementation Uid for Mbms Extention SubConnection parameters. +*/ +const TInt32 KSubConMBMSExtParamsImplUid = 0x20019D43; +/** + Represents SubConneciton Channel parameter set type. +*/ +const TInt KSubConChannelParamsType = 9; + +/** + Represents MBMS SubConnection Extention parameter set type. +*/ +const TInt KSubConMBMSSessionExtParamsType =1; + +/** + Represents the set type for MBMS parameters. +*/ +const TInt32 KMBMSParameterSetType = 1; + +/** + Represents the set type for MBMS query. +*/ +const TInt32 KMBMSQuerySetType = 2; + +using namespace GenericScprParameters; +namespace ConnectionServ +{ +struct TMBMSInfo +/**Holds the MBMS information passed to ETel. */ + { + /**Holds the value TMGI */ + TTmgi iTmgi; + /**Holds the value access bearer.*/ + TMbmsScope iMbmsScope; + /** Sets the priority for MBMS service. */ + TMbmsServicePriority iServicePriority; + /**Holds IP address of the host to connect.This is used for later use to + set multicast address */ + TInetAddr iInetAddr; + }; + +class TMBMSChannelInfoV1 : public TChannel +/** Defines getter and setter methods to get and set MBMS parameters.This class is derived from +TChannel which is a buffer of size 256 bytes. +*/ + { + public: + inline TMBMSChannelInfoV1(); + + inline const TTmgi& GetTmgi() ; + inline void SetTmgi(const TTmgi& aTmgi); + + inline const TMbmsScope GetScope() ; + inline void SetScope(const TMbmsScope aScope); + + inline TMbmsServicePriority GetServicePriority() ; + inline void SetServicePriority(const TMbmsServicePriority aServicePriority); + + inline const TInetAddr& GetInetAddress() ; + inline void SetInetAddress(const TInetAddr& aAddress); + + private: + inline TMBMSInfo* AddrPtr() ; + + }; + +class XMBMSServiceParameterSet:public XConnectionServParameterSet, +public MParameterSetTemplateMethods +/** This class is used for getting and setting MBMS service parameters from the client to ETel +and vice versa. +*/ + { + public: + inline XMBMSServiceParameterSet(); + virtual ~XMBMSServiceParameterSet(); + + inline TMbmsAvailabilityStatus GetMBMSServiceAvailability() const; + inline void SetMBMSServiceAvailability(const TMbmsAvailabilityStatus aAvailabilityStatus); + + inline TMBMSChannelInfoV1* GetChannelInfo() ; + + inline TMbmsServiceMode GetServiceMode() const; + inline void SetServiceMode(const TMbmsServiceMode aServiceMode); + + protected: + DATA_VTABLE + + private: + /** Holds the MBMS channel information */ + TMBMSChannelInfoV1 iServiceInfo; + /** Holds the MBMS service mode information */ + TMbmsServiceMode iServiceMode; + /** Holds the MBMS service availability status information */ + TMbmsAvailabilityStatus iAvailabilityStatus; + }; + +class XMBMSServiceQuerySet:public XConnectionServParameterSet, +public MParameterSetTemplateMethods +/** Holds APIs to query PDP Tier Manager for MBMS bearer availability and MBMS +service notifications. +*/ + { + public: + enum TQueryType + { + /** Checks whether MBMS is supported by network. */ + EBearerAvailability, + /** Do MBMS Specific operations on MBMS monitor list. */ + EAddService, ERemoveService, ERemoveAllService, + /** Retrieve number of entries in monitor & activated service list. */ + ECountActiveServiceList, ECountMonitorList + }; + + inline XMBMSServiceQuerySet::TQueryType GetQueryType() const; + inline void SetQueryType(const TQueryType aQueryType); + + inline TMbmsNetworkServiceStatus GetMBMSBearerAvailability() const; + inline void SetMBMSBearerAvailability(const TMbmsNetworkServiceStatus aBearerAvailability); + + inline TUint GetListCount() const; + inline void SetListCount(const TUint aCurrentCount); + + inline TUint GetListMaxCount() const; + inline void SetListMaxCount(const TUint aMaxCount); + + virtual ~XMBMSServiceQuerySet(); + + protected: + DATA_VTABLE + + private: + /** Holds the MBMS query */ + TQueryType iQueryType; + /** Holds the MBMS Network service status information */ + TMbmsNetworkServiceStatus iBearerAvailability; + /** Holds the current count of monitor & activated service list */ + TUint iCurrentCount; + /** Holds the maximum count of monitor & activated service list */ + TUint iMaxCount; + } ; + +class CConnectionServMBMSParamsFactory : public CBase +/** Factory used to create instances of MBMS Parameters. +*/ + { +public: + static XConnectionServParameterSet* NewL(TAny* aConstructionParameters); + }; + + + +/** Factory used to create instances of Channel SubConnection Parameters. +@publishedPartner +@released since 9.5 +*/ +class CSubConChannelParamsFactory : public CBase + { +public: + static CSubConGenericParameterSet* NewL(TAny* aConstructionParameters); + }; + + + +/** This class is used to set MBMS SubConnection parameters. +@publishedPartner +@released since 9.5 +*/ +class CSubConChannelParamSet : public CSubConGenericParameterSet + { + + public: + enum + { + EUid = KSubConChannelParamsImplUid, + EId = KSubConChannelParamsType, + }; + + public: + inline static CSubConChannelParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType); + inline static CSubConChannelParamSet* NewL(RParameterFamily& aFamily,RParameterFamily::TParameterSetType aType); + inline static CSubConChannelParamSet* NewL(); + + /* Channel Getter Functions */ + inline TAny* GetChannelInfo() ; + + /** public constructors so that it can be accessed by factory. */ + inline CSubConChannelParamSet(); + virtual ~CSubConChannelParamSet(); + protected: + DATA_VTABLE + private: + GenericScprParameters::TChannel iServiceInfo; +}; + + +/** Factory used to create instances of Mbms Extention SubConnection Parameters. + +@publishedPartner +@released since 9.5 +*/ +class CSubConMBMSExtParamsFactory : public CBase + { +public: + static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters); + }; + + +/** This class is used to set MBMS Extension Parameters. + +@publishedPartner +@released since 9.5 +*/ +class CSubConMBMSExtensionParamSet :public CSubConExtensionParameterSet + { + public: + /* Different operation types to add,remove and list sessions. */ + enum TOperationType + { + EAddSession,ERemoveSession, ERemoveAll,ESessionList + }; + + enum + { + EUid = KSubConMBMSExtParamsImplUid, + EId = KSubConMBMSSessionExtParamsType, + }; + public: + inline static CSubConMBMSExtensionParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType); + inline static CSubConMBMSExtensionParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType); + inline static CSubConMBMSExtensionParamSet* NewL(); + + /* Mbms Service Mode(Broadcast, Multicast or Selected Broadcast) Setter & Getter Functions */ + inline void SetServiceMode( const TMbmsServiceMode aServiceMode); + inline TMbmsServiceMode GetServiceMode() const; + + /* Mbms Extension Operation Setter & Getter Functions */ + inline TOperationType GetOperationType () const; + inline void SetOperationType(const TOperationType aOperationType); + + /* Session Id Setter & Getter Functions */ + inline void SetSessionId(const TUint aSessionId); + inline TInt GetSessionCount() const; + inline TInt GetSessionId(const TUint aIndex=0); + + /** public constructors so that it can be accessed by factory. */ + inline CSubConMBMSExtensionParamSet(); + virtual ~CSubConMBMSExtensionParamSet(); + protected: + DATA_VTABLE + private: + /** Array of Session Ids in a Service */ + RArray iSessionIds; + /** Mbms Service Mode */ + TMbmsServiceMode iServiceMode; + /** Mbms Extn Set Operation Type */ + TOperationType iOperationType; + + }; + +} // namespace ConnectionServ + + + +#include +#endif // __MBMSPARAMS_H__