--- a/telephonyserverplugins/common_tsy/commontsy/inc/mmpacket/Cmmpacketservicetsy.h Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmpacket/Cmmpacketservicetsy.h Thu May 06 15:10:38 2010 +0100
@@ -1,1281 +1,1281 @@
-/*
-* Copyright (c) 2006-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 CMMPACKETSERVICETSY_H
-#define CMMPACKETSERVICETSY_H
-
-// INCLUDES
-#include "cmmphonetsy.h"
-#include "Cmmpacketcontexttsy.h"
-#include "Cmmpacketqostsy.h"
-#include <ctsy/serviceapi/gsmerror.h>
-#include <ctsy/rmmcustomapi.h>
-#include "cmmmessagemanagerbase.h"
-#include <pcktlist.h>
-
-// CONSTANTS
-
-// String literals
-_LIT( KStringExternal, "External" );
-_LIT( KStringExternal2, "External2" );
-
-// DUMMY_NIF flag should be off in builds and releases.
-// DUMMY_NIF flag should be off by default in builds.
-// DUMMY_NIF flag should be on if want test DUMMY_NIF_PEP_FOR_PACKET_DATA.
-//#define DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING
-
-// FORWARD DECLARATIONS
-class CMmMessageManagerBase;
-class CMmPacketContextList;
-class CMmPacketContextTsy;
-class CMmMBMSContextList;
-class CMmMBMSMonitoredList;
-class CMmPacketContextGsmWcdmaExt;
-class CMmPacketServiceGsmWcdmaExt;
-class CMmPacketQosTsy;
-
-// CLASS DECLARATION
-
-/**
-* CMmPacketServiceTsy contains GPRS service related functionality.
-*/
-NONSHARABLE_CLASS( CMmPacketServiceTsy ) : public CSubSessionExtBase
- {
- public: // Data
-
-
- enum TPacketServiceRequestTypes
- {
- EMultimodePacketServiceReqHandleUnknown, //0
- EMultimodePacketServiceAttach, //1
- EMultimodePacketServiceDetach, //2
- EMultimodePacketServiceGetNtwkRegStatus, //3
- EMultimodePacketServiceNotifyNtwkRegStatusChange, //4
- EMultimodePacketServiceNotifyContextActivationRequested, //5
- EMultimodePacketServiceNotifyContextAdded, //6
- EMultimodePacketServiceNotifyDynamicCapsChange, //7
- EMultimodePacketServiceNotifyMSClassChange, //8
- EMultimodePacketServiceNotifyStatusChange, //9
- EMultimodePacketServiceSetPreferredBearer, //10
- EMultimodePacketServiceSetAttachMode, //11
- EMultimodePacketServiceRejectActivationRequest, //12
- EMultimodePacketServiceGetAttachMode, //13
- EMultimodePacketServiceSetDefaultContextParams, //14
- EMultimodePacketServiceGetDefaultContextParams, //15
- EMultimodePacketServiceNotifyContextActivationRequested99, //16
- EMultimodePacketSetAlwaysOn, //17
- EMultimodePacketServiceNotifyMBMSStatusChange, //18
- EMultimodePacketServiceGetMBMSStatus, //19
- EMultimodePacketServiceNotifyMbmsServiceAvailabilityChange, //20
- EMultimodePacketServiceEnumerateMbmsActiveServices, //21
- EMultimodePacketServiceUpdateMBMSMonitorServiceList, //22
- EMultimodePacketServiceNotifyContextActivationRequested5, //23
-
- // Add new requests here. ENumOfMultimodePacketServiceRequests shows
- // maximum number of requests in TPacketServiceRequestTypes
- ENumOfMultimodePacketServiceRequests //24
- };
-
- private: // Data
-
- /**
- * Internal saved notify related data pointers in Packet Service
- * @param iChangeOfNtwkRegStatus pointer to RPacketService::TRegistrationStatus
- * @param iDynamicCapsChange pointer to RPacketService::TDynamicCapsFlags
- * @param iMSClassChange pointer to RPacketService::TMSClass
- * @param iStatusChange pointer to RPacketService::TStatus
- * @param iContextActivationRequested pointer to RPacketContext::TContextConfigGPRS
- * @param iContextActivationRequested99 pointer to RPacketContext::TContextConfigR99_R4
- * @param iContextActivationRequested5 pointer to RPacketContext::TContextConfig_R5
- * @param iContextAdded pointer
- */
- struct TMmNotifyDataPointers
- {
- RPacketService::TRegistrationStatus* iChangeOfNtwkRegStatus;
- RPacketService::TDynamicCapsFlags* iDynamicCapsChange;
- RPacketService::TMSClass* iMSClassChange;
- RPacketService::TStatus* iStatusChange;
- RPacketContext::TContextConfigGPRS* iContextActivationRequested;
- RPacketContext::TContextConfigR99_R4* iContextActivationRequested99;
- RPacketContext::TContextConfig_R5* iContextActivationRequested5;
- TDes* iContextAdded;
- /**
- * A client pointer to the MbmsNetworkServiceStatus for notify any status change
- */
- TMbmsNetworkServiceStatus* iMBMSStatusChange;
-
- TMmNotifyDataPointers()
- {
- iChangeOfNtwkRegStatus = NULL;
- iDynamicCapsChange = NULL;
- iMSClassChange = NULL;
- iStatusChange = NULL;
- iContextActivationRequested = NULL;
- iContextActivationRequested99 = NULL;
- iContextAdded = NULL;
- iMBMSStatusChange = NULL;
- }
- };
-
- /**
- * Internal saved data in Packet Service
- * @param iMsClass contains MsClass type
- * @param iPreferredBearer contains current PreferredBearer
- * @param iServiceStatus contains service status
- * @param iServiceStatusBeforeSuspend contains current status before
- * suspend
- * @param iRegistrationStatus contains registration status
- */
- struct TMmPacketServiceInternalSavedData
- {
- RPacketService::TMSClass iMsClass;
- RPacketService::TPreferredBearer iPreferredBearer;
- RPacketService::TStatus iServiceStatus;
- RPacketService::TStatus iServiceStatusBeforeSuspend;
- RPacketService::TRegistrationStatus iRegistrationStatus;
- /**
- * contain current MBMS network status
- */
- TMbmsNetworkServiceStatus iMbmsStatus;
- };
-
- /**
- * Temporary saved data in Packet Service
- * @param iGetAttachMode pointer to RPacketService::TAttachMode
- * @param iPreferredBearer preferred bearer
- */
- struct TMmPacketServiceTemporarySavedData
- {
- RPacketService::TAttachMode* iGetAttachMode;
- RPacketService::TPreferredBearer iPreferredBearer;
- /**
- * Pointer to the MBMS Status
- */
- TMbmsNetworkServiceStatus* iMbmsStatus;
- };
-
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @param aMmPhone pointer to PhoneTsy
- * @param aMessageManager pointer to Messagemanager
- * @param aFactory pointer to Ltsy factory base
- */
- static CMmPacketServiceTsy* NewL( CMmPhoneTsy* const aMmPhone,
- CMmMessageManagerBase* const aMessageManager,
- MLtsyFactoryBase* aFactory );
-
- /**
- * Default destructor.
- */
- virtual ~CMmPacketServiceTsy();
-
- public: // New functions
-
-
- /**
- * Returns MBMS context list
- *
- * @return CMmMBMSContextList MBMS context list object
- */
- virtual CMmMBMSContextList* MBMSContextList();
-
- /**
- * Request to update monitored service list.
- *
- * @param aAction Action to make changes (add/remove or remove all)
- * @param aList A descriptor that holds the list of monitored services to update, or NULL for an empty list
- * @return TInt Error value
- */
- TInt UpdateMbmsMonitorServiceListL( TMbmsAction aAction,
- TDes8* aList );
-
- /**
- * Completes update monitored list request
- *
- * @param aResult the result of the Update
- * @param aDataPackage a packed list of all the monitor entries that failed to update
- */
- virtual void CompleteUpdateMbmsMonitorServiceList( CMmDataPackage* aDataPackage,
- const TInt aResult );
-
- /**
- * Enumrates monitored service list
- *
- * @param aCount Actual number of monitored services is list
- * @param aMax Maximum number of services in list
- * @return error code
- */
- TInt EnumerateMonitorServiceList( TInt& aCount, TInt& aMaxAllowed );
-
-
- /**
- * Enumerates all active services
- */
- TInt EnumerateMbmsActiveServices();
-
- /**
- * Returns a pointer to CMmCustomTsy object.
- *
- *
- * @return CMmCustomTsy*
- */
- virtual CMmCustomTsy* CustomTsy() const;
-
- /**
- * Returns a pointer to the active packet service extension.
- *
- *
- * @return CMmPacketServiceGsmWcdmaExt*
- */
- virtual CMmPacketServiceGsmWcdmaExt* ActivePacketServiceExtension();
-
- /**
- * Returns a pointer to the tsy request handle store.
- *
- *
- * @return CMmTsyReqHandleStore*
- */
- virtual CMmTsyReqHandleStore* TsyReqHandleStore();
-
- /**
- * Returns a pointer to the packet context list.
- *
- *
- * @return CMmPacketContextList*
- */
- virtual CMmPacketContextList* PacketContextList();
-
- /**
- * Returns current status of Packet Service.
- *
- *
- * @return RPacketService::TStatus
- */
- virtual RPacketService::TStatus ServiceStatus() const;
-
- /**
- * Context status has changed from the Service point of view.
- *
- *
- * @param aContextStatus
- */
- void ContextStatusChanged(
- const RPacketContext::TContextStatus aContextStatus );
-
- /**
- * Starts asynchronous attach request to the network.
- *
- *
- * @return Errorvalue
- */
- TInt AttachL();
-
- /**
- * Completes asynchronous attach request.
- *
- *
- * @param aError error value for completion
- */
- virtual void CompleteAttach( const TInt aError );
-
- /**
- * Starts asynchronous detach request to the network.
- *
- *
- * @return error value
- */
- TInt DetachL();
-
- /**
- * Completes asynchronous detach request.
- *
- *
- * @param aError, errovalue for completion
- */
- virtual void CompleteDetachL( const TInt aError );
-
- /**
- * Enumerates contexts and completes.
- *
- *
- * @param aCount, number of created contexts
- * @param aMaxAllowed, maximum number of contexts
- */
- TInt EnumerateContexts( TInt* const aCount,TInt* const aMaxAllowed );
-
- /**
- * Returns current mode of the GPRS Attach operation.
- *
- *
- * @param aMode attach mode
- * @return current mode of the GPRS
- */
- TInt GetAttachModeL( RPacketService::TAttachMode* const aMode );
-
- /**
- * Completes Get GPRS Attach Info operation.
- *
- *
- * @param aAttachMode attach mode
- */
- virtual void CompleteGetAttachMode(const RPacketService::TAttachMode aAttachMode,
- TInt aResult);
-
- /**
- * Gets Context info of the context defined by aIndex.
- *
- *
- * @param aIndex, index to the context
- * @param aInfo, context info
- * @return error value
- */
- TInt GetContextInfo( const TInt* const aIndex,
- RPacketService::TContextInfo* const aInfo );
-
- /**
- * Gets the dynamic capabilities of the phone.
- *
- *
- * @param aCaps, dynamic capabilities
- * @return error value
- */
- TInt GetDynamicCaps( RPacketService::TDynamicCapsFlags* const aCaps );
-
- /**
- * Gets current and maximum value of the Mobile Station Class.
- *
- *
- * @param aCurrentClass, currently used ms class
- * @param aMaxClass, maximum possible ms class
- * @return error value
- */
- TInt GetMSClass( RPacketService::TMSClass* const aCurrentClass,
- RPacketService::TMSClass* const aMaxClass );
-
- /**
- * Gets network registration status.
- *
- *
- * @param aRegistrationStatus, status
- * @return error value
- */
- TInt GetNtwkRegStatusL(
- RPacketService::TRegistrationStatus* const aRegistrationStatus );
-
- /**
- * Completes get network registration status request.
- *
- *
- * @param aRegistrationStatus, registration status
- * @param aError, error code default as KErrNone
- */
- virtual void CompleteGetNtwkRegStatus(
- const RPacketService::TRegistrationStatus aRegistrationStatus,
- const TInt aError );
-
- /**
- * Returns preferred bearer.
- *
- *
- * @param aBearer, preferred bearer
- * @return error value
- */
- TInt GetPreferredBearer(
- RPacketService::TPreferredBearer* const aBearer );
-
- /**
- * Retrieves those capabilities of the TSY that are constant.
- *
- *
- * @param aCaps, static capabilities
- * @param aPdpType, current Pdp type
- * @return error value
- */
- TInt GetStaticCaps( TUint* const aCaps,
- const RPacketContext::TProtocolType* const aPdpType );
-
- /**
- * Returns current status of the packet service.
- *
- *
- * @param aPacketStatus,packet status
- * @return error value
- */
- TInt GetStatus( RPacketService::TStatus* const aPacketStatus );
-
- /**
- * Requests notification of network registration status change.
- *
- *
- * @param aRegistrationStatus, registrationstatus
- * @return errorvalue
- */
- TInt NotifyChangeOfNtwkRegStatus(
- RPacketService::TRegistrationStatus* const aRegistrationStatus );
-
- /**
- * Requests notification of network requests context activation.
- *
- *
- * @param aContextParameters, context parameters
- * @return error value
- */
- TInt NotifyContextActivationRequested(
- TPacketDataConfigBase* const aContextParameters );
-
- /**
- * Requests notification of context has been added.
- *
- *
- * @param aPackage, contains parameters for request
- * @return error value
- */
- TInt NotifyContextAdded( const TDataPackage& aPackage );
-
- /**
- * Requests notification of dynamic capabilities change.
- *
- *
- * @param aCaps, dynamic capabilities
- * @return error value
- */
- TInt NotifyDynamicCapsChange
- (
- RPacketService::TDynamicCapsFlags* const aCaps
- );
-
- /**
- * Requests notification of mobile station class change.
- *
- *
- * @param aNewClass, new mobile station class
- * @return error value
- */
- TInt NotifyMSClassChange( RPacketService::TMSClass* const aNewClass );
-
- /**
- * Informs client that service status change.
- *
- *
- * @param aPacketStatus, packet status
- * @return error value
- */
- TInt NotifyStatusChange(
- RPacketService::TStatus* const aPacketStatus );
-
- /**
- * Reject activation request from the network.
- *
- *
- * @return error value
- */
- TInt RejectActivationRequestL();
-
- /**
- * Completes asynchronous reject activation request.
- *
- *
- */
- virtual void CompleteRejectActivationRequest();
-
- /*
- * Sets attach mode given in parameter to the server.
- *
- *
- * @param aPackage, contains parameters for request
- * @return error value
- */
- TInt SetAttachModeL( const RPacketService::TAttachMode* aMode );
-
- /**
- * Completes the Set Attach Mode request.
- *
- *
- * @param aError, error value for completion
- */
- virtual void CompleteSetAttachMode( const TInt aError );
-
- /**
- * Sets preferred bearer given in parameter to the server.
- *
- *
- * @param aPackage, contains parameters for request
- * @return error value
- */
- TInt SetPreferredBearerL( const TDataPackage& aPackage );
-
- /**
- * Completes the Set Preferred Bearer request.
- *
- *
- * @param aError, error value for completion
- */
- virtual void CompleteSetPreferredBearer( const TInt aError );
-
- /**
- * ExtFunc is called by the ETel when it has request for the TSY.
- *
- *
- * @param aTsyReqHandle, request handle
- * @param aIpc, ipc number of request
- * @param aPackage, data package
- * @return error value
- */
- virtual TInt ExtFunc( const TTsyReqHandle aTsyReqHandle,
- const TInt aIpc, const TDataPackage& aPackage );
-
- /**
- * Returns request mode for given IPC.
- *
- *
- * @param aIpc, ipc number of request
- * @return request mode
- */
- virtual CTelObject::TReqMode ReqModeL( const TInt aIpc );
-
- /**
- * Returns number of slots to be used for given IPC.
- *
- *
- * @param aIpc, ipc number of request
- * @return number of slots used for given IPC
- */
- virtual TInt NumberOfSlotsL( const TInt aIpc );
-
- /**
- * Cancels request defined by aIpc.
- *
- *
- * @param aIpc, ipc number of request
- * @param aTsyReqHandle, request handle of given request
- * @return error value
- */
- virtual TInt CancelService( const TInt aIpc,
- const TTsyReqHandle aTsyReqHandle );
-
- /**
- * This function subscribes given notification from DOS.
- *
- *
- * @param aIpc, ipc number of request
- * @return error value
- */
- virtual TInt RegisterNotification( const TInt aIpc );
-
- /**
- * This function unsubscribes given notification from DOS.
- *
- *
- * @param aIpc, ipc number of request
- */
- virtual TInt DeregisterNotification( const TInt aIpc );
-
- /**
- * Creates new Context object and returns a pointer to it.
- *
- *
- * @param aNewName, a new name of the Context object to be created
- * @return pointer to created context
- */
- virtual CTelObject* OpenNewObjectL( TDes& aNewName );
-
- /**
- * Returns context object defined in parameter aName.
- *
- *
- * @param aName, a name of the object to be created
- * @return pointer to context object
- */
- virtual CTelObject* OpenNewObjectByNameL( const TDesC& aName );
-
- /**
- * Next created Context will be secondary, gives primary context name
- *
- *
- * @param aPrimaryContextName, Name of the host context
- * @return error value
- */
- TInt PrepareOpenSecondary( TDes16* aPrimaryContextName );
-
- /**
- * Initialisation method that is called from ETel Server.
- *
- *
- */
- virtual void Init();
-
- /**
- * Completes network registration status notification to client.
- *
- *
- * @param aRegistrationStatus, reg status
- */
- virtual void CompleteNotifyChangeOfNtwkRegStatus(
- const RPacketService::TRegistrationStatus aRegistrationStatus );
-
- /**
- * Completes context activation requested notification to client.
- *
- *
- * @param aDataPackage
- */
- virtual void CompleteNotifyContextActivationRequested(
- CMmDataPackage* aDataPackage );
-
- /**
- * Completes the context added notification to client.
- *
- *
- * @param aPackage contains parameters for request
- */
- virtual void CompleteNotifyContextAdded( CMmDataPackage* aPackage );
-
-
- /**
- * Completes dynamic capabilities change notification to client.
- *
- *
- * @param aCaps, dynamic capabilities
- */
- virtual void CompleteNotifyDynamicCapsChange(
- const RPacketService::TDynamicCapsFlags aCaps );
-
- /**
- * Completes max value of monitored services change.
- *
- *
- * @param aMaxMonitorValue, maximum value of monitored services
- */
- virtual void CompleteMaxMonitoredServicesChange( TInt aMaxMonitorValue );
-
- /**
- * Completes mobile station class change notification to client.
- *
- *
- * @param aDataPackage contains data used for this notification
- */
- virtual void CompleteNotifyMSClassChange(
- CMmDataPackage* aDataPackage );
-
- /**
- * Completes service status change notification to client.
- *
- *
- * @param aPacketStatus, packet service status
- * @param aErrorCode contains error value if packet status changed because of error
- */
- virtual void CompleteNotifyStatusChange(
- const RPacketService::TStatus& aPacketStatus,
- TInt aErrorCode );
-
- /*
- * Completes packet status change.
- *
- *
- * @param aDataPackage
- * @param aErrorCode contains error value if packet status changed because of error
- */
- virtual void CompletePacketStatusChanged(
- CMmDataPackage* aDataPackage,
- TInt aErrorCode );
-
- /**
- * Completes preferred bearer change.
- *
- *
- * @param aPreferredBearer preferredbearer
- * @param aPackage includes request related data
- */
- virtual void PreferredBearerChanged(
- CMmDataPackage* aPackage );
-
- /**
- * Returns externally created dial-up context.
- *
- *
- * @param aContextName
- */
- virtual CMmPacketContextTsy* DialUpContext(
- const TInfoName aContextName );
-
- /**
- * Resets pointer to dial-up context.
- *
- *
- * @param aContextName
- */
- void ResetPointerToDialUpContext( const TInfoName aContextName );
-
- /**
- * Enumerate network interfaces.
- *
- *
- * @param aCount, pointer to number of nifs
- * @return error value
- */
- TInt EnumerateNifs( TInt* aCount );
-
- /**
- * Get network interface information.
- *
- *
- * @param aIndex, index of wanted nif
- * @param aNifInfoV2, pointer to nif information
- * @return error value
- */
- TInt GetNifInfo( TInt* aIndex,
- RPacketService::TNifInfoV2* aNifInfoV2 );
-
- /**
- * Number of contexts in network interface.
- *
- *
- * @param aExistingContextName, name of Nif
- * @param aCount, pointer to number of contexts
- * @return error value
- */
- TInt EnumerateContextsInNif( TDesC* aExistingContextName,
- TInt* aCount );
-
- /**
- * Get name of context in network interface.
- *
- *
- * @param aContextNameInNif, name of Nif and index of context
- * @param aContextName, wanted context name
- * @return error value
- */
- TInt GetContextNameInNif(
- RPacketService::TContextNameInNif* aContextNameInNif,
- TDes* aContextName );
-
- /**
- * Set default parameters to context.
- *
- *
- * @param aPackage,contains parameters for request
- * @return error value
- */
- TInt SetDefaultContextParamsL( const TDataPackage& aPackage );
-
- /**
- * Completes SetDefaultContextConfiguration request.
- *
- *
- * @param aCause, Error cause
- */
- virtual void CompleteSetDefaultContextParams( TInt aCause );
-
- /**
- * Get context default parameters.
- *
- *
- * @param aContextConfig, Configuration data
- * @return error value
- */
- TInt GetDefaultContextParams( TPacketDataConfigBase* aContextConfig );
-
- /**
- * Is activation of context allowed
- *
- *
- */
- TInt IsActivationAllowed();
-
- /**
- * Returns pointer to CMmMessagemanagerBase.
- *
- *
- * @return pointer to CMmMessagemanagerBase
- */
- virtual CMmMessageManagerBase* MessageManager();
-
-
- /**
- * Routes completion to customtsy
- *
- *
- * @param aDataPackage
- */
- void CompleteNotifyEGprsInfoChange( CMmDataPackage* aDataPackage );
-
- /**
- * Completes network registration status notification to client.
- * Handles request coming from MessHandler
- *
- *
- * @param aDataPackage includes request related data
- * @param aResult The result of the notification from the LTSY
- */
- void CompleteNotifyChangeOfNtwkRegStatus(
- CMmDataPackage* aDataPackage, TInt aResult );
-
- /**
- * Returns pointer to right Qos
- *
- *
- * @param aMmPacketContextName
- * @return pointer to right Qos object
- */
- CMmPacketQoSTsy* QosTsy( TInfoName aMmPacketContextName );
-
- /**
- * Set current network to Service TSY.
- *
- *
- * @param CDataPackage
- */
- virtual void CompleteNetworkModeChange( CMmDataPackage* CDataPackage );
-
- /**
- * Returns context by name
- *
- *
- * @param contextName, context Name
- * @return pointer to context object
- */
- CMmPacketContextTsy* ContextTsy( TInfoName& contextName );
-
- virtual RHandleBase* GlobalKernelObjectHandle();
-
- /**
- * Request Set Always On
- *
- *
- * @param aTsyReqHandle TSY ReqHandle
- * @param aMode requested mode
- * @return error value
- */
- TInt SetAlwaysOnL( TTsyReqHandle aTsyReqHandle,
- RMmCustomAPI::TSetAlwaysOnMode aMode );
-
- /**
- * Completes SetAlwaysOn request
- *
- *
- * @param aError error value from LTSY
- */
- void CompleteSetAlwaysOn( TInt aError );
-
- /**
- * Cancels Set Always On
- *
- *
- * @param aTsyReqHandle TSY reghandle
- */
- void CancelSetAlwaysOn(
- TTsyReqHandle aTsyReqHandle );
-
- /**
- * Returns current status of MBMS Network Service.
- *
- * @param aAttemptAttach a boolean to state whether the mbms should attemt to attach the service
- * @param aMBMSServiceStatus pointer to a client object to return the MBMS network service status
- * @return KErrNone if success, system wide error code otherwise
- */
- TInt GetMbmsNetworkServiceStatus(TBool aAttemptAttach, TMbmsNetworkServiceStatus* aMBMSServiceStatus );
-
- /**
- * Completes get MBMS network service status request.
- *
- *
- * @param aDataPackage, service status
- * @param aError, error code default as KErrNone
- */
- void CompleteGetMbmsNetworkServiceStatus( CMmDataPackage* aDataPackage, TInt aError );
-
- /**
- * Requests notification of network service status change.
- *
- *
- * @param aMBMSServiceStatus
- * @return error value
- */
- TInt NotifyMbmsNetworkServiceStatusChange(TMbmsNetworkServiceStatus* aMBMSServiceStatus );
-
- /**
- * Completes Network service status change requested notification to client.
- *
- *
- * @param aDataPackage, contains parameters for request
- */
- void CompleteNotifyMbmsNetworkServiceStatusChange( CMmDataPackage* aDataPackage, TInt aResult );
-
- /**
- * Requests notification of mbms service availability list change.
- *
- *
- */
- TInt NotifyMbmsServiceAvailabilityChange();
-
- /**
- * Completes service available status change requested notification to client.
- *
- *
- * @param aDataPackage a packed list of all the available services, or NULL for empty list
- * @param aResult The result of the notification from the LTSY
- */
- void CompleteNotifyMbmsServiceAvailabilityChangeL(CMmDataPackage* aDataPackage, TInt aResult);
-
- /**
- * Returns the number of Mbms active service list and the maximum possible number of active service list
- *
- *
- * @param aCount The number of Mbms active service list [out]
- * @param aMaxAllowed The maximum number of active service lists [out]
- * @return error code
- */
- TInt EnumerateMbmsActiveServiceList(TInt &aCount, TInt &aMaxAllowed);
-
- /**
- * Completes Enumrate active service list
- *
- */
- void CompleteEnumerateMbmsActiveServiceList(CMmDataPackage* aDataPackage, TInt aResult);
-
- /**
- * Requests size of the monitored service list.
- *
- *
- * @param aClient a pointer to the client ID
- * @param aBufSize The return buffer size
- * @return error code
- */
- TInt GetMbmsMonitoredServicesPhase1L(RMobilePhone::TClientId* aClient, TUint &aBufSize);
-
- /**
- * Get size of monitored service list
- *
- * @param aClient, client id
- * @param aBufSize, TUint size of the buffer
- * @return error code
- */
- TInt GetSizeOfMonitoredServiceListL(RMobilePhone::TClientId* aClient, TUint& aBufSize);
-
- /**
- * Requests the monitored service list.
- *
- *
- * @param aClient, client id
- * @param aBuf, client bufer to copy data to
- * @return error code
- */
- TInt GetMbmsMonitoredServicesPhase2(RMobilePhone::TClientId* aClient, TDes8* aBuf);
-
- /**
- * Return maximum number of active services allowed
- *
- * @return TInt Max number of active services
- */
- TInt MaximumActiveServices();
-
-#ifdef REQHANDLE_TIMER
- /**
- * Returns a pointer to CMmPhoneTsy object.
- *
- *
- */
- CMmPhoneTsy* PhoneTsy();
-
- /**
- * Called from MmPhoneTsy when timer expire.
- *
- *
- * @param aObject
- * @param aReqHandleType
- * @param aError
- */
- virtual void Complete( const CTelObject* const aObject,
- const TInt aReqHandleType, const TInt aError );
-
-#endif // REQHANDLE_TIMER
-
-
-#ifdef TF_LOGGING_ENABLED
- /**
- * Overloads original ReqCompleted for logging purposes.
- *
- *
- * @param aTsyReqHandle
- * @param aError
- */
- virtual void ReqCompleted( const TTsyReqHandle aTsyReqHandle,
- const TInt aError );
-
-#endif // TF_LOGGING_ENABLED
-
- private: // New functions
-
- /**
- * Default constructor.
- */
- CMmPacketServiceTsy();
-
- /**
- * Initialises object attributes.
- *
- * @param aFactory pointer to Ltsy factory base
- */
- void ConstructL( MLtsyFactoryBase* aFactory );
-
- /**
- * Initialises extension modules for CMmPacketServiceTsy.
- *
- * @param aFactory pointer to Ltsy factory base
- */
- void InitModulesL( MLtsyFactoryBase* aFactory );
-
- /**
- * Initialises needed stores and lists.
- *
- *
- */
- void InitStoresAndListsL();
-
- /**
- * Checks if context status is active from service point of view.
- *
- *
- * @param aContextStatus, context status
- * @return Boolean True/False
- */
- TBool IsContextStatusActive(
- const RPacketContext::TContextStatus aContextStatus) const;
-
- /**
- * Sets and completes attached packet status if needed.
- *
- *
- * @param aIsActiveContext, state of context
- */
- void UpdateAttachedPacketStatus( const TBool aIsActiveContext );
-
- /**
- * Calls correct method to handle ETel server request.
- *
- *
- * @param aIpc
- * @param aPackage
- * @return error value
- */
- TInt DoExtFuncL( const TInt aIpc, const TDataPackage& aPackage );
-
- /**
- * Cancel the Get Mbms Monitored Services
- *
- * @param aTsyReqHandle the TSY request handle
- * @return error code
- */
- TInt GetMbmsMonitoredServicesCancel( TTsyReqHandle aTsyReqHandle );
-
- /**
- * Cancel the Update Mbms Monitor Service List
- *
- * @param aTsyReqHandle the TSY request handle
- * @return error code
- */
- TInt UpdateMbmsMonitorServiceListCancel(TTsyReqHandle aTsyReqHandle );
-
-
-#ifdef REQHANDLE_TIMER
- /**
- * Chooses the type of response, automatic or common.
- *
- *
- * @param aReqHandleType
- */
- void SetTypeOfResponse( const TInt aReqHandleType );
-
- /**
- * Calls the needed complete method due timer expiration.
- *
- *
- * @param aReqHandleType
- * @param aError
- */
- void Complete( const TInt aReqHandleType, const TInt aError );
-
-#endif // REQHANDLE_TIMER
-
- private: // Data
-
-
- /**
- * MBMS context object
- *
- */
- CMmMBMSContextList* iMBMSContextList;
-
- /**
- * MBMS monitorted service list
- *
- */
- CMmMBMSMonitoredList* iMBMSMonitoredList;
-
-
- /**
- * Pointer to the packet context list
- * Own.
- */
- CMmPacketContextList* iPacketContextList;
-
- /**
- * Pointer to the TRegistrationStatus enum defined in Packet Data API
- * Not Own.
- */
- RPacketService::TRegistrationStatus* iRegistrationStatus;
-
- /**
- * Packet Service Request Handle Type
- */
- TPacketServiceRequestTypes iReqHandleType;
-
- /**
- * TSY request handle
- */
- TTsyReqHandle iTsyReqHandle;
-
- /**
- * Pointer to the request handle store
- * Own.
- */
- CMmTsyReqHandleStore* iTsyReqHandleStore;
-
- /**
- * True if service is suspended, otherwise false
- */
- TBool iSuspended;
-
- /**
- * A table for packet service request handles
- */
- TTsyReqHandle iPacketServiceReqHandles[
- ENumOfMultimodePacketServiceRequests];
- /**
- * A pointer to the Phone TSY
- * Not own.
- */
- CMmPhoneTsy* iMmPhone;
-
- /**
- * A pointer to the Gsm/Wcdma spesific packet service extension
- * Own.
- */
- CMmPacketServiceGsmWcdmaExt* iMmPacketServiceGsmWcdmaExt;
-
- /**
- * Structure contains notify related data pointers
- */
- TMmNotifyDataPointers iNotifyDataPointers;
-
- /**
- * Structure contains data that must be saved in Packet Service
- */
- TMmPacketServiceInternalSavedData iInternalSavedData;
-
- /**
- * Structure contains temporary saved data in Packet Service
- */
- TMmPacketServiceTemporarySavedData iTemporarySavedData;
-
- /**
- * A pointer to the externally created dial-up context
- * Own.
- */
- CMmPacketContextTsy* iDialUpContext;
-
- /**
- * A pointer to the externally created dial-up context
- * Own.
- */
- CMmPacketContextTsy* iSecondaryDialUpContext;
-
- /**
- * Primary Context Name
- */
- TInfoName iHostCID;
-
- /**
- * Pointer to CMmMessageManagerBase
- * Not own.
- */
- CMmMessageManagerBase* iMessageManager;
-
- /**
- * Current network mode
- */
- RMobilePhone::TMobilePhoneNetworkMode iCurrentMode;
-
- /**
- * Current attach mode
- */
- RPacketService::TAttachMode iAttachMode;
-
- /**
- * Unnamed mutex object owned by TSY
- */
- RMutex iMutex;
-
- /**
- * Boolean to indicate MBMS support
- */
- TBool iMbmsSupported;
-
- /**
- * Maximum number of monitored service lists
- *
- */
- TInt iMaxMonitoredServices;
-
- /**
- * Maximum number of active services (= max number of contexts)
- */
- TInt iMaxActiveServices;
-
- /**
- * Action type of Update MBMS Monitored Service List
- *
- */
- TMbmsAction iActionType;
-
- /**
- * indicator of MBMS network service status cache
- *
- */
- TBool iMbmsStatusCached;
-
- /**
- * Read all entries
- */
- CArrayPtrFlat<CListReadAllAttempt>* iGetMbmsMonitoredServiceLists;
-
- /**
- * indicator of MBMS monitorlist max value cache
- *
- */
- TBool iMbmsMonitorListMaxNumIsCached;
-
- };
-
-#endif // CMMPACKETSERVICETSY_H
-
-
-// End of File
+/*
+* Copyright (c) 2006-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 CMMPACKETSERVICETSY_H
+#define CMMPACKETSERVICETSY_H
+
+// INCLUDES
+#include "cmmphonetsy.h"
+#include "Cmmpacketcontexttsy.h"
+#include "Cmmpacketqostsy.h"
+#include <ctsy/serviceapi/gsmerror.h>
+#include <ctsy/rmmcustomapi.h>
+#include "cmmmessagemanagerbase.h"
+#include <pcktlist.h>
+
+// CONSTANTS
+
+// String literals
+_LIT( KStringExternal, "External" );
+_LIT( KStringExternal2, "External2" );
+
+// DUMMY_NIF flag should be off in builds and releases.
+// DUMMY_NIF flag should be off by default in builds.
+// DUMMY_NIF flag should be on if want test DUMMY_NIF_PEP_FOR_PACKET_DATA.
+//#define DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING
+
+// FORWARD DECLARATIONS
+class CMmMessageManagerBase;
+class CMmPacketContextList;
+class CMmPacketContextTsy;
+class CMmMBMSContextList;
+class CMmMBMSMonitoredList;
+class CMmPacketContextGsmWcdmaExt;
+class CMmPacketServiceGsmWcdmaExt;
+class CMmPacketQosTsy;
+
+// CLASS DECLARATION
+
+/**
+* CMmPacketServiceTsy contains GPRS service related functionality.
+*/
+NONSHARABLE_CLASS( CMmPacketServiceTsy ) : public CSubSessionExtBase
+ {
+ public: // Data
+
+
+ enum TPacketServiceRequestTypes
+ {
+ EMultimodePacketServiceReqHandleUnknown, //0
+ EMultimodePacketServiceAttach, //1
+ EMultimodePacketServiceDetach, //2
+ EMultimodePacketServiceGetNtwkRegStatus, //3
+ EMultimodePacketServiceNotifyNtwkRegStatusChange, //4
+ EMultimodePacketServiceNotifyContextActivationRequested, //5
+ EMultimodePacketServiceNotifyContextAdded, //6
+ EMultimodePacketServiceNotifyDynamicCapsChange, //7
+ EMultimodePacketServiceNotifyMSClassChange, //8
+ EMultimodePacketServiceNotifyStatusChange, //9
+ EMultimodePacketServiceSetPreferredBearer, //10
+ EMultimodePacketServiceSetAttachMode, //11
+ EMultimodePacketServiceRejectActivationRequest, //12
+ EMultimodePacketServiceGetAttachMode, //13
+ EMultimodePacketServiceSetDefaultContextParams, //14
+ EMultimodePacketServiceGetDefaultContextParams, //15
+ EMultimodePacketServiceNotifyContextActivationRequested99, //16
+ EMultimodePacketSetAlwaysOn, //17
+ EMultimodePacketServiceNotifyMBMSStatusChange, //18
+ EMultimodePacketServiceGetMBMSStatus, //19
+ EMultimodePacketServiceNotifyMbmsServiceAvailabilityChange, //20
+ EMultimodePacketServiceEnumerateMbmsActiveServices, //21
+ EMultimodePacketServiceUpdateMBMSMonitorServiceList, //22
+ EMultimodePacketServiceNotifyContextActivationRequested5, //23
+
+ // Add new requests here. ENumOfMultimodePacketServiceRequests shows
+ // maximum number of requests in TPacketServiceRequestTypes
+ ENumOfMultimodePacketServiceRequests //24
+ };
+
+ private: // Data
+
+ /**
+ * Internal saved notify related data pointers in Packet Service
+ * @param iChangeOfNtwkRegStatus pointer to RPacketService::TRegistrationStatus
+ * @param iDynamicCapsChange pointer to RPacketService::TDynamicCapsFlags
+ * @param iMSClassChange pointer to RPacketService::TMSClass
+ * @param iStatusChange pointer to RPacketService::TStatus
+ * @param iContextActivationRequested pointer to RPacketContext::TContextConfigGPRS
+ * @param iContextActivationRequested99 pointer to RPacketContext::TContextConfigR99_R4
+ * @param iContextActivationRequested5 pointer to RPacketContext::TContextConfig_R5
+ * @param iContextAdded pointer
+ */
+ struct TMmNotifyDataPointers
+ {
+ RPacketService::TRegistrationStatus* iChangeOfNtwkRegStatus;
+ RPacketService::TDynamicCapsFlags* iDynamicCapsChange;
+ RPacketService::TMSClass* iMSClassChange;
+ RPacketService::TStatus* iStatusChange;
+ RPacketContext::TContextConfigGPRS* iContextActivationRequested;
+ RPacketContext::TContextConfigR99_R4* iContextActivationRequested99;
+ RPacketContext::TContextConfig_R5* iContextActivationRequested5;
+ TDes* iContextAdded;
+ /**
+ * A client pointer to the MbmsNetworkServiceStatus for notify any status change
+ */
+ TMbmsNetworkServiceStatus* iMBMSStatusChange;
+
+ TMmNotifyDataPointers()
+ {
+ iChangeOfNtwkRegStatus = NULL;
+ iDynamicCapsChange = NULL;
+ iMSClassChange = NULL;
+ iStatusChange = NULL;
+ iContextActivationRequested = NULL;
+ iContextActivationRequested99 = NULL;
+ iContextAdded = NULL;
+ iMBMSStatusChange = NULL;
+ }
+ };
+
+ /**
+ * Internal saved data in Packet Service
+ * @param iMsClass contains MsClass type
+ * @param iPreferredBearer contains current PreferredBearer
+ * @param iServiceStatus contains service status
+ * @param iServiceStatusBeforeSuspend contains current status before
+ * suspend
+ * @param iRegistrationStatus contains registration status
+ */
+ struct TMmPacketServiceInternalSavedData
+ {
+ RPacketService::TMSClass iMsClass;
+ RPacketService::TPreferredBearer iPreferredBearer;
+ RPacketService::TStatus iServiceStatus;
+ RPacketService::TStatus iServiceStatusBeforeSuspend;
+ RPacketService::TRegistrationStatus iRegistrationStatus;
+ /**
+ * contain current MBMS network status
+ */
+ TMbmsNetworkServiceStatus iMbmsStatus;
+ };
+
+ /**
+ * Temporary saved data in Packet Service
+ * @param iGetAttachMode pointer to RPacketService::TAttachMode
+ * @param iPreferredBearer preferred bearer
+ */
+ struct TMmPacketServiceTemporarySavedData
+ {
+ RPacketService::TAttachMode* iGetAttachMode;
+ RPacketService::TPreferredBearer iPreferredBearer;
+ /**
+ * Pointer to the MBMS Status
+ */
+ TMbmsNetworkServiceStatus* iMbmsStatus;
+ };
+
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * @param aMmPhone pointer to PhoneTsy
+ * @param aMessageManager pointer to Messagemanager
+ * @param aFactory pointer to Ltsy factory base
+ */
+ static CMmPacketServiceTsy* NewL( CMmPhoneTsy* const aMmPhone,
+ CMmMessageManagerBase* const aMessageManager,
+ MLtsyFactoryBase* aFactory );
+
+ /**
+ * Default destructor.
+ */
+ virtual ~CMmPacketServiceTsy();
+
+ public: // New functions
+
+
+ /**
+ * Returns MBMS context list
+ *
+ * @return CMmMBMSContextList MBMS context list object
+ */
+ virtual CMmMBMSContextList* MBMSContextList();
+
+ /**
+ * Request to update monitored service list.
+ *
+ * @param aAction Action to make changes (add/remove or remove all)
+ * @param aList A descriptor that holds the list of monitored services to update, or NULL for an empty list
+ * @return TInt Error value
+ */
+ TInt UpdateMbmsMonitorServiceListL( TMbmsAction aAction,
+ TDes8* aList );
+
+ /**
+ * Completes update monitored list request
+ *
+ * @param aResult the result of the Update
+ * @param aDataPackage a packed list of all the monitor entries that failed to update
+ */
+ virtual void CompleteUpdateMbmsMonitorServiceList( CMmDataPackage* aDataPackage,
+ const TInt aResult );
+
+ /**
+ * Enumrates monitored service list
+ *
+ * @param aCount Actual number of monitored services is list
+ * @param aMax Maximum number of services in list
+ * @return error code
+ */
+ TInt EnumerateMonitorServiceList( TInt& aCount, TInt& aMaxAllowed );
+
+
+ /**
+ * Enumerates all active services
+ */
+ TInt EnumerateMbmsActiveServices();
+
+ /**
+ * Returns a pointer to CMmCustomTsy object.
+ *
+ *
+ * @return CMmCustomTsy*
+ */
+ virtual CMmCustomTsy* CustomTsy() const;
+
+ /**
+ * Returns a pointer to the active packet service extension.
+ *
+ *
+ * @return CMmPacketServiceGsmWcdmaExt*
+ */
+ virtual CMmPacketServiceGsmWcdmaExt* ActivePacketServiceExtension();
+
+ /**
+ * Returns a pointer to the tsy request handle store.
+ *
+ *
+ * @return CMmTsyReqHandleStore*
+ */
+ virtual CMmTsyReqHandleStore* TsyReqHandleStore();
+
+ /**
+ * Returns a pointer to the packet context list.
+ *
+ *
+ * @return CMmPacketContextList*
+ */
+ virtual CMmPacketContextList* PacketContextList();
+
+ /**
+ * Returns current status of Packet Service.
+ *
+ *
+ * @return RPacketService::TStatus
+ */
+ virtual RPacketService::TStatus ServiceStatus() const;
+
+ /**
+ * Context status has changed from the Service point of view.
+ *
+ *
+ * @param aContextStatus
+ */
+ void ContextStatusChanged(
+ const RPacketContext::TContextStatus aContextStatus );
+
+ /**
+ * Starts asynchronous attach request to the network.
+ *
+ *
+ * @return Errorvalue
+ */
+ TInt AttachL();
+
+ /**
+ * Completes asynchronous attach request.
+ *
+ *
+ * @param aError error value for completion
+ */
+ virtual void CompleteAttach( const TInt aError );
+
+ /**
+ * Starts asynchronous detach request to the network.
+ *
+ *
+ * @return error value
+ */
+ TInt DetachL();
+
+ /**
+ * Completes asynchronous detach request.
+ *
+ *
+ * @param aError, errovalue for completion
+ */
+ virtual void CompleteDetachL( const TInt aError );
+
+ /**
+ * Enumerates contexts and completes.
+ *
+ *
+ * @param aCount, number of created contexts
+ * @param aMaxAllowed, maximum number of contexts
+ */
+ TInt EnumerateContexts( TInt* const aCount,TInt* const aMaxAllowed );
+
+ /**
+ * Returns current mode of the GPRS Attach operation.
+ *
+ *
+ * @param aMode attach mode
+ * @return current mode of the GPRS
+ */
+ TInt GetAttachModeL( RPacketService::TAttachMode* const aMode );
+
+ /**
+ * Completes Get GPRS Attach Info operation.
+ *
+ *
+ * @param aAttachMode attach mode
+ */
+ virtual void CompleteGetAttachMode(const RPacketService::TAttachMode aAttachMode,
+ TInt aResult);
+
+ /**
+ * Gets Context info of the context defined by aIndex.
+ *
+ *
+ * @param aIndex, index to the context
+ * @param aInfo, context info
+ * @return error value
+ */
+ TInt GetContextInfo( const TInt* const aIndex,
+ RPacketService::TContextInfo* const aInfo );
+
+ /**
+ * Gets the dynamic capabilities of the phone.
+ *
+ *
+ * @param aCaps, dynamic capabilities
+ * @return error value
+ */
+ TInt GetDynamicCaps( RPacketService::TDynamicCapsFlags* const aCaps );
+
+ /**
+ * Gets current and maximum value of the Mobile Station Class.
+ *
+ *
+ * @param aCurrentClass, currently used ms class
+ * @param aMaxClass, maximum possible ms class
+ * @return error value
+ */
+ TInt GetMSClass( RPacketService::TMSClass* const aCurrentClass,
+ RPacketService::TMSClass* const aMaxClass );
+
+ /**
+ * Gets network registration status.
+ *
+ *
+ * @param aRegistrationStatus, status
+ * @return error value
+ */
+ TInt GetNtwkRegStatusL(
+ RPacketService::TRegistrationStatus* const aRegistrationStatus );
+
+ /**
+ * Completes get network registration status request.
+ *
+ *
+ * @param aRegistrationStatus, registration status
+ * @param aError, error code default as KErrNone
+ */
+ virtual void CompleteGetNtwkRegStatus(
+ const RPacketService::TRegistrationStatus aRegistrationStatus,
+ const TInt aError );
+
+ /**
+ * Returns preferred bearer.
+ *
+ *
+ * @param aBearer, preferred bearer
+ * @return error value
+ */
+ TInt GetPreferredBearer(
+ RPacketService::TPreferredBearer* const aBearer );
+
+ /**
+ * Retrieves those capabilities of the TSY that are constant.
+ *
+ *
+ * @param aCaps, static capabilities
+ * @param aPdpType, current Pdp type
+ * @return error value
+ */
+ TInt GetStaticCaps( TUint* const aCaps,
+ const RPacketContext::TProtocolType* const aPdpType );
+
+ /**
+ * Returns current status of the packet service.
+ *
+ *
+ * @param aPacketStatus,packet status
+ * @return error value
+ */
+ TInt GetStatus( RPacketService::TStatus* const aPacketStatus );
+
+ /**
+ * Requests notification of network registration status change.
+ *
+ *
+ * @param aRegistrationStatus, registrationstatus
+ * @return errorvalue
+ */
+ TInt NotifyChangeOfNtwkRegStatus(
+ RPacketService::TRegistrationStatus* const aRegistrationStatus );
+
+ /**
+ * Requests notification of network requests context activation.
+ *
+ *
+ * @param aContextParameters, context parameters
+ * @return error value
+ */
+ TInt NotifyContextActivationRequested(
+ TPacketDataConfigBase* const aContextParameters );
+
+ /**
+ * Requests notification of context has been added.
+ *
+ *
+ * @param aPackage, contains parameters for request
+ * @return error value
+ */
+ TInt NotifyContextAdded( const TDataPackage& aPackage );
+
+ /**
+ * Requests notification of dynamic capabilities change.
+ *
+ *
+ * @param aCaps, dynamic capabilities
+ * @return error value
+ */
+ TInt NotifyDynamicCapsChange
+ (
+ RPacketService::TDynamicCapsFlags* const aCaps
+ );
+
+ /**
+ * Requests notification of mobile station class change.
+ *
+ *
+ * @param aNewClass, new mobile station class
+ * @return error value
+ */
+ TInt NotifyMSClassChange( RPacketService::TMSClass* const aNewClass );
+
+ /**
+ * Informs client that service status change.
+ *
+ *
+ * @param aPacketStatus, packet status
+ * @return error value
+ */
+ TInt NotifyStatusChange(
+ RPacketService::TStatus* const aPacketStatus );
+
+ /**
+ * Reject activation request from the network.
+ *
+ *
+ * @return error value
+ */
+ TInt RejectActivationRequestL();
+
+ /**
+ * Completes asynchronous reject activation request.
+ *
+ *
+ */
+ virtual void CompleteRejectActivationRequest();
+
+ /*
+ * Sets attach mode given in parameter to the server.
+ *
+ *
+ * @param aPackage, contains parameters for request
+ * @return error value
+ */
+ TInt SetAttachModeL( const RPacketService::TAttachMode* aMode );
+
+ /**
+ * Completes the Set Attach Mode request.
+ *
+ *
+ * @param aError, error value for completion
+ */
+ virtual void CompleteSetAttachMode( const TInt aError );
+
+ /**
+ * Sets preferred bearer given in parameter to the server.
+ *
+ *
+ * @param aPackage, contains parameters for request
+ * @return error value
+ */
+ TInt SetPreferredBearerL( const TDataPackage& aPackage );
+
+ /**
+ * Completes the Set Preferred Bearer request.
+ *
+ *
+ * @param aError, error value for completion
+ */
+ virtual void CompleteSetPreferredBearer( const TInt aError );
+
+ /**
+ * ExtFunc is called by the ETel when it has request for the TSY.
+ *
+ *
+ * @param aTsyReqHandle, request handle
+ * @param aIpc, ipc number of request
+ * @param aPackage, data package
+ * @return error value
+ */
+ virtual TInt ExtFunc( const TTsyReqHandle aTsyReqHandle,
+ const TInt aIpc, const TDataPackage& aPackage );
+
+ /**
+ * Returns request mode for given IPC.
+ *
+ *
+ * @param aIpc, ipc number of request
+ * @return request mode
+ */
+ virtual CTelObject::TReqMode ReqModeL( const TInt aIpc );
+
+ /**
+ * Returns number of slots to be used for given IPC.
+ *
+ *
+ * @param aIpc, ipc number of request
+ * @return number of slots used for given IPC
+ */
+ virtual TInt NumberOfSlotsL( const TInt aIpc );
+
+ /**
+ * Cancels request defined by aIpc.
+ *
+ *
+ * @param aIpc, ipc number of request
+ * @param aTsyReqHandle, request handle of given request
+ * @return error value
+ */
+ virtual TInt CancelService( const TInt aIpc,
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * This function subscribes given notification from DOS.
+ *
+ *
+ * @param aIpc, ipc number of request
+ * @return error value
+ */
+ virtual TInt RegisterNotification( const TInt aIpc );
+
+ /**
+ * This function unsubscribes given notification from DOS.
+ *
+ *
+ * @param aIpc, ipc number of request
+ */
+ virtual TInt DeregisterNotification( const TInt aIpc );
+
+ /**
+ * Creates new Context object and returns a pointer to it.
+ *
+ *
+ * @param aNewName, a new name of the Context object to be created
+ * @return pointer to created context
+ */
+ virtual CTelObject* OpenNewObjectL( TDes& aNewName );
+
+ /**
+ * Returns context object defined in parameter aName.
+ *
+ *
+ * @param aName, a name of the object to be created
+ * @return pointer to context object
+ */
+ virtual CTelObject* OpenNewObjectByNameL( const TDesC& aName );
+
+ /**
+ * Next created Context will be secondary, gives primary context name
+ *
+ *
+ * @param aPrimaryContextName, Name of the host context
+ * @return error value
+ */
+ TInt PrepareOpenSecondary( TDes16* aPrimaryContextName );
+
+ /**
+ * Initialisation method that is called from ETel Server.
+ *
+ *
+ */
+ virtual void Init();
+
+ /**
+ * Completes network registration status notification to client.
+ *
+ *
+ * @param aRegistrationStatus, reg status
+ */
+ virtual void CompleteNotifyChangeOfNtwkRegStatus(
+ const RPacketService::TRegistrationStatus aRegistrationStatus );
+
+ /**
+ * Completes context activation requested notification to client.
+ *
+ *
+ * @param aDataPackage
+ */
+ virtual void CompleteNotifyContextActivationRequested(
+ CMmDataPackage* aDataPackage );
+
+ /**
+ * Completes the context added notification to client.
+ *
+ *
+ * @param aPackage contains parameters for request
+ */
+ virtual void CompleteNotifyContextAdded( CMmDataPackage* aPackage );
+
+
+ /**
+ * Completes dynamic capabilities change notification to client.
+ *
+ *
+ * @param aCaps, dynamic capabilities
+ */
+ virtual void CompleteNotifyDynamicCapsChange(
+ const RPacketService::TDynamicCapsFlags aCaps );
+
+ /**
+ * Completes max value of monitored services change.
+ *
+ *
+ * @param aMaxMonitorValue, maximum value of monitored services
+ */
+ virtual void CompleteMaxMonitoredServicesChange( TInt aMaxMonitorValue );
+
+ /**
+ * Completes mobile station class change notification to client.
+ *
+ *
+ * @param aDataPackage contains data used for this notification
+ */
+ virtual void CompleteNotifyMSClassChange(
+ CMmDataPackage* aDataPackage );
+
+ /**
+ * Completes service status change notification to client.
+ *
+ *
+ * @param aPacketStatus, packet service status
+ * @param aErrorCode contains error value if packet status changed because of error
+ */
+ virtual void CompleteNotifyStatusChange(
+ const RPacketService::TStatus& aPacketStatus,
+ TInt aErrorCode );
+
+ /*
+ * Completes packet status change.
+ *
+ *
+ * @param aDataPackage
+ * @param aErrorCode contains error value if packet status changed because of error
+ */
+ virtual void CompletePacketStatusChanged(
+ CMmDataPackage* aDataPackage,
+ TInt aErrorCode );
+
+ /**
+ * Completes preferred bearer change.
+ *
+ *
+ * @param aPreferredBearer preferredbearer
+ * @param aPackage includes request related data
+ */
+ virtual void PreferredBearerChanged(
+ CMmDataPackage* aPackage );
+
+ /**
+ * Returns externally created dial-up context.
+ *
+ *
+ * @param aContextName
+ */
+ virtual CMmPacketContextTsy* DialUpContext(
+ const TInfoName aContextName );
+
+ /**
+ * Resets pointer to dial-up context.
+ *
+ *
+ * @param aContextName
+ */
+ void ResetPointerToDialUpContext( const TInfoName aContextName );
+
+ /**
+ * Enumerate network interfaces.
+ *
+ *
+ * @param aCount, pointer to number of nifs
+ * @return error value
+ */
+ TInt EnumerateNifs( TInt* aCount );
+
+ /**
+ * Get network interface information.
+ *
+ *
+ * @param aIndex, index of wanted nif
+ * @param aNifInfoV2, pointer to nif information
+ * @return error value
+ */
+ TInt GetNifInfo( TInt* aIndex,
+ RPacketService::TNifInfoV2* aNifInfoV2 );
+
+ /**
+ * Number of contexts in network interface.
+ *
+ *
+ * @param aExistingContextName, name of Nif
+ * @param aCount, pointer to number of contexts
+ * @return error value
+ */
+ TInt EnumerateContextsInNif( TDesC* aExistingContextName,
+ TInt* aCount );
+
+ /**
+ * Get name of context in network interface.
+ *
+ *
+ * @param aContextNameInNif, name of Nif and index of context
+ * @param aContextName, wanted context name
+ * @return error value
+ */
+ TInt GetContextNameInNif(
+ RPacketService::TContextNameInNif* aContextNameInNif,
+ TDes* aContextName );
+
+ /**
+ * Set default parameters to context.
+ *
+ *
+ * @param aPackage,contains parameters for request
+ * @return error value
+ */
+ TInt SetDefaultContextParamsL( const TDataPackage& aPackage );
+
+ /**
+ * Completes SetDefaultContextConfiguration request.
+ *
+ *
+ * @param aCause, Error cause
+ */
+ virtual void CompleteSetDefaultContextParams( TInt aCause );
+
+ /**
+ * Get context default parameters.
+ *
+ *
+ * @param aContextConfig, Configuration data
+ * @return error value
+ */
+ TInt GetDefaultContextParams( TPacketDataConfigBase* aContextConfig );
+
+ /**
+ * Is activation of context allowed
+ *
+ *
+ */
+ TInt IsActivationAllowed();
+
+ /**
+ * Returns pointer to CMmMessagemanagerBase.
+ *
+ *
+ * @return pointer to CMmMessagemanagerBase
+ */
+ virtual CMmMessageManagerBase* MessageManager();
+
+
+ /**
+ * Routes completion to customtsy
+ *
+ *
+ * @param aDataPackage
+ */
+ void CompleteNotifyEGprsInfoChange( CMmDataPackage* aDataPackage );
+
+ /**
+ * Completes network registration status notification to client.
+ * Handles request coming from MessHandler
+ *
+ *
+ * @param aDataPackage includes request related data
+ * @param aResult The result of the notification from the LTSY
+ */
+ void CompleteNotifyChangeOfNtwkRegStatus(
+ CMmDataPackage* aDataPackage, TInt aResult );
+
+ /**
+ * Returns pointer to right Qos
+ *
+ *
+ * @param aMmPacketContextName
+ * @return pointer to right Qos object
+ */
+ CMmPacketQoSTsy* QosTsy( TInfoName aMmPacketContextName );
+
+ /**
+ * Set current network to Service TSY.
+ *
+ *
+ * @param CDataPackage
+ */
+ virtual void CompleteNetworkModeChange( CMmDataPackage* CDataPackage );
+
+ /**
+ * Returns context by name
+ *
+ *
+ * @param contextName, context Name
+ * @return pointer to context object
+ */
+ CMmPacketContextTsy* ContextTsy( TInfoName& contextName );
+
+ virtual RHandleBase* GlobalKernelObjectHandle();
+
+ /**
+ * Request Set Always On
+ *
+ *
+ * @param aTsyReqHandle TSY ReqHandle
+ * @param aMode requested mode
+ * @return error value
+ */
+ TInt SetAlwaysOnL( TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TSetAlwaysOnMode aMode );
+
+ /**
+ * Completes SetAlwaysOn request
+ *
+ *
+ * @param aError error value from LTSY
+ */
+ void CompleteSetAlwaysOn( TInt aError );
+
+ /**
+ * Cancels Set Always On
+ *
+ *
+ * @param aTsyReqHandle TSY reghandle
+ */
+ void CancelSetAlwaysOn(
+ TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Returns current status of MBMS Network Service.
+ *
+ * @param aAttemptAttach a boolean to state whether the mbms should attemt to attach the service
+ * @param aMBMSServiceStatus pointer to a client object to return the MBMS network service status
+ * @return KErrNone if success, system wide error code otherwise
+ */
+ TInt GetMbmsNetworkServiceStatus(TBool aAttemptAttach, TMbmsNetworkServiceStatus* aMBMSServiceStatus );
+
+ /**
+ * Completes get MBMS network service status request.
+ *
+ *
+ * @param aDataPackage, service status
+ * @param aError, error code default as KErrNone
+ */
+ void CompleteGetMbmsNetworkServiceStatus( CMmDataPackage* aDataPackage, TInt aError );
+
+ /**
+ * Requests notification of network service status change.
+ *
+ *
+ * @param aMBMSServiceStatus
+ * @return error value
+ */
+ TInt NotifyMbmsNetworkServiceStatusChange(TMbmsNetworkServiceStatus* aMBMSServiceStatus );
+
+ /**
+ * Completes Network service status change requested notification to client.
+ *
+ *
+ * @param aDataPackage, contains parameters for request
+ */
+ void CompleteNotifyMbmsNetworkServiceStatusChange( CMmDataPackage* aDataPackage, TInt aResult );
+
+ /**
+ * Requests notification of mbms service availability list change.
+ *
+ *
+ */
+ TInt NotifyMbmsServiceAvailabilityChange();
+
+ /**
+ * Completes service available status change requested notification to client.
+ *
+ *
+ * @param aDataPackage a packed list of all the available services, or NULL for empty list
+ * @param aResult The result of the notification from the LTSY
+ */
+ void CompleteNotifyMbmsServiceAvailabilityChangeL(CMmDataPackage* aDataPackage, TInt aResult);
+
+ /**
+ * Returns the number of Mbms active service list and the maximum possible number of active service list
+ *
+ *
+ * @param aCount The number of Mbms active service list [out]
+ * @param aMaxAllowed The maximum number of active service lists [out]
+ * @return error code
+ */
+ TInt EnumerateMbmsActiveServiceList(TInt &aCount, TInt &aMaxAllowed);
+
+ /**
+ * Completes Enumrate active service list
+ *
+ */
+ void CompleteEnumerateMbmsActiveServiceList(CMmDataPackage* aDataPackage, TInt aResult);
+
+ /**
+ * Requests size of the monitored service list.
+ *
+ *
+ * @param aClient a pointer to the client ID
+ * @param aBufSize The return buffer size
+ * @return error code
+ */
+ TInt GetMbmsMonitoredServicesPhase1L(RMobilePhone::TClientId* aClient, TUint &aBufSize);
+
+ /**
+ * Get size of monitored service list
+ *
+ * @param aClient, client id
+ * @param aBufSize, TUint size of the buffer
+ * @return error code
+ */
+ TInt GetSizeOfMonitoredServiceListL(RMobilePhone::TClientId* aClient, TUint& aBufSize);
+
+ /**
+ * Requests the monitored service list.
+ *
+ *
+ * @param aClient, client id
+ * @param aBuf, client bufer to copy data to
+ * @return error code
+ */
+ TInt GetMbmsMonitoredServicesPhase2(RMobilePhone::TClientId* aClient, TDes8* aBuf);
+
+ /**
+ * Return maximum number of active services allowed
+ *
+ * @return TInt Max number of active services
+ */
+ TInt MaximumActiveServices();
+
+#ifdef REQHANDLE_TIMER
+ /**
+ * Returns a pointer to CMmPhoneTsy object.
+ *
+ *
+ */
+ CMmPhoneTsy* PhoneTsy();
+
+ /**
+ * Called from MmPhoneTsy when timer expire.
+ *
+ *
+ * @param aObject
+ * @param aReqHandleType
+ * @param aError
+ */
+ virtual void Complete( const CTelObject* const aObject,
+ const TInt aReqHandleType, const TInt aError );
+
+#endif // REQHANDLE_TIMER
+
+
+#ifdef TF_LOGGING_ENABLED
+ /**
+ * Overloads original ReqCompleted for logging purposes.
+ *
+ *
+ * @param aTsyReqHandle
+ * @param aError
+ */
+ virtual void ReqCompleted( const TTsyReqHandle aTsyReqHandle,
+ const TInt aError );
+
+#endif // TF_LOGGING_ENABLED
+
+ private: // New functions
+
+ /**
+ * Default constructor.
+ */
+ CMmPacketServiceTsy();
+
+ /**
+ * Initialises object attributes.
+ *
+ * @param aFactory pointer to Ltsy factory base
+ */
+ void ConstructL( MLtsyFactoryBase* aFactory );
+
+ /**
+ * Initialises extension modules for CMmPacketServiceTsy.
+ *
+ * @param aFactory pointer to Ltsy factory base
+ */
+ void InitModulesL( MLtsyFactoryBase* aFactory );
+
+ /**
+ * Initialises needed stores and lists.
+ *
+ *
+ */
+ void InitStoresAndListsL();
+
+ /**
+ * Checks if context status is active from service point of view.
+ *
+ *
+ * @param aContextStatus, context status
+ * @return Boolean True/False
+ */
+ TBool IsContextStatusActive(
+ const RPacketContext::TContextStatus aContextStatus) const;
+
+ /**
+ * Sets and completes attached packet status if needed.
+ *
+ *
+ * @param aIsActiveContext, state of context
+ */
+ void UpdateAttachedPacketStatus( const TBool aIsActiveContext );
+
+ /**
+ * Calls correct method to handle ETel server request.
+ *
+ *
+ * @param aIpc
+ * @param aPackage
+ * @return error value
+ */
+ TInt DoExtFuncL( const TInt aIpc, const TDataPackage& aPackage );
+
+ /**
+ * Cancel the Get Mbms Monitored Services
+ *
+ * @param aTsyReqHandle the TSY request handle
+ * @return error code
+ */
+ TInt GetMbmsMonitoredServicesCancel( TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Cancel the Update Mbms Monitor Service List
+ *
+ * @param aTsyReqHandle the TSY request handle
+ * @return error code
+ */
+ TInt UpdateMbmsMonitorServiceListCancel(TTsyReqHandle aTsyReqHandle );
+
+
+#ifdef REQHANDLE_TIMER
+ /**
+ * Chooses the type of response, automatic or common.
+ *
+ *
+ * @param aReqHandleType
+ */
+ void SetTypeOfResponse( const TInt aReqHandleType );
+
+ /**
+ * Calls the needed complete method due timer expiration.
+ *
+ *
+ * @param aReqHandleType
+ * @param aError
+ */
+ void Complete( const TInt aReqHandleType, const TInt aError );
+
+#endif // REQHANDLE_TIMER
+
+ private: // Data
+
+
+ /**
+ * MBMS context object
+ *
+ */
+ CMmMBMSContextList* iMBMSContextList;
+
+ /**
+ * MBMS monitorted service list
+ *
+ */
+ CMmMBMSMonitoredList* iMBMSMonitoredList;
+
+
+ /**
+ * Pointer to the packet context list
+ * Own.
+ */
+ CMmPacketContextList* iPacketContextList;
+
+ /**
+ * Pointer to the TRegistrationStatus enum defined in Packet Data API
+ * Not Own.
+ */
+ RPacketService::TRegistrationStatus* iRegistrationStatus;
+
+ /**
+ * Packet Service Request Handle Type
+ */
+ TPacketServiceRequestTypes iReqHandleType;
+
+ /**
+ * TSY request handle
+ */
+ TTsyReqHandle iTsyReqHandle;
+
+ /**
+ * Pointer to the request handle store
+ * Own.
+ */
+ CMmTsyReqHandleStore* iTsyReqHandleStore;
+
+ /**
+ * True if service is suspended, otherwise false
+ */
+ TBool iSuspended;
+
+ /**
+ * A table for packet service request handles
+ */
+ TTsyReqHandle iPacketServiceReqHandles[
+ ENumOfMultimodePacketServiceRequests];
+ /**
+ * A pointer to the Phone TSY
+ * Not own.
+ */
+ CMmPhoneTsy* iMmPhone;
+
+ /**
+ * A pointer to the Gsm/Wcdma spesific packet service extension
+ * Own.
+ */
+ CMmPacketServiceGsmWcdmaExt* iMmPacketServiceGsmWcdmaExt;
+
+ /**
+ * Structure contains notify related data pointers
+ */
+ TMmNotifyDataPointers iNotifyDataPointers;
+
+ /**
+ * Structure contains data that must be saved in Packet Service
+ */
+ TMmPacketServiceInternalSavedData iInternalSavedData;
+
+ /**
+ * Structure contains temporary saved data in Packet Service
+ */
+ TMmPacketServiceTemporarySavedData iTemporarySavedData;
+
+ /**
+ * A pointer to the externally created dial-up context
+ * Own.
+ */
+ CMmPacketContextTsy* iDialUpContext;
+
+ /**
+ * A pointer to the externally created dial-up context
+ * Own.
+ */
+ CMmPacketContextTsy* iSecondaryDialUpContext;
+
+ /**
+ * Primary Context Name
+ */
+ TInfoName iHostCID;
+
+ /**
+ * Pointer to CMmMessageManagerBase
+ * Not own.
+ */
+ CMmMessageManagerBase* iMessageManager;
+
+ /**
+ * Current network mode
+ */
+ RMobilePhone::TMobilePhoneNetworkMode iCurrentMode;
+
+ /**
+ * Current attach mode
+ */
+ RPacketService::TAttachMode iAttachMode;
+
+ /**
+ * Unnamed mutex object owned by TSY
+ */
+ RMutex iMutex;
+
+ /**
+ * Boolean to indicate MBMS support
+ */
+ TBool iMbmsSupported;
+
+ /**
+ * Maximum number of monitored service lists
+ *
+ */
+ TInt iMaxMonitoredServices;
+
+ /**
+ * Maximum number of active services (= max number of contexts)
+ */
+ TInt iMaxActiveServices;
+
+ /**
+ * Action type of Update MBMS Monitored Service List
+ *
+ */
+ TMbmsAction iActionType;
+
+ /**
+ * indicator of MBMS network service status cache
+ *
+ */
+ TBool iMbmsStatusCached;
+
+ /**
+ * Read all entries
+ */
+ CArrayPtrFlat<CListReadAllAttempt>* iGetMbmsMonitoredServiceLists;
+
+ /**
+ * indicator of MBMS monitorlist max value cache
+ *
+ */
+ TBool iMbmsMonitorListMaxNumIsCached;
+
+ };
+
+#endif // CMMPACKETSERVICETSY_H
+
+
+// End of File