telephonyprotocols/pdplayer/inc/pdpservices.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 /**
       
    17  @file
       
    18  @internalComponent
       
    19 */
       
    20 
       
    21 #ifndef SYMBIAN_PDPSERVICES_H
       
    22 #define SYMBIAN_PDPSERVICES_H
       
    23 
       
    24 #include "mbmsengine.h"
       
    25 #include <comms-infras/coretiermanager.h>
       
    26 #include <networking/mbmsparams.h>
       
    27 #include <pcktretrieve.h>
       
    28 
       
    29 using namespace ESock;
       
    30 using namespace ConnectionServ;
       
    31 
       
    32 class CMBMSEngine;
       
    33 
       
    34 /* This class is used to send and retrieve MBMS parameters from the client and Etel.
       
    35  The MBMS parameters are fetched from the bundle and sent to Etel inorder to process the MBMS requests.
       
    36  Different State Changes are maintained in this class to carry out the MBMS requests.*/
       
    37 class CMBMSServiceRequest: public CActive
       
    38 {
       
    39 public:
       
    40 	static CMBMSServiceRequest* NewL(
       
    41 					CMBMSEngine& aMBMSEngine,
       
    42 					const Messages::TNodeId& aMBMSTMCommsId,
       
    43 					Messages::RNodeInterface* aOriginatorInterface,
       
    44 					const Messages::TRuntimeCtxId& aOriginator,
       
    45 					const Messages::TNodeSignal::TMessageId& aRequestType,
       
    46 					ESock::CRefCountOwnedParameterBundle* aRequestBundleOwner,
       
    47 					const XMBMSServiceQuerySet::TQueryType aQueryType
       
    48 					);
       
    49 
       
    50 	~CMBMSServiceRequest();
       
    51 
       
    52 	// From CActive
       
    53 	virtual void	RunL();
       
    54 	virtual void	DoCancel();
       
    55 	virtual TInt	RunError(TInt aError);
       
    56 
       
    57 	//This function is used to cancel the current outstanding requests.
       
    58 	void CancelMessage(const TInt aError);
       
    59 	//This function is used to get the client ID.
       
    60 	const Messages::TNodeId& GetClientId();
       
    61 	//This function is used to start MBMS requests.
       
    62 	void StartRequest();
       
    63 
       
    64 private:
       
    65 	CMBMSServiceRequest(
       
    66 			CMBMSEngine& aMBMSEngine,
       
    67 			const Messages::TNodeId& aMBMSTMCommsId,
       
    68 			const Messages::TNodeSignal::TMessageId& aRequestType,
       
    69 			ESock::CRefCountOwnedParameterBundle* aRequestBundleOwner,
       
    70 			const XMBMSServiceQuerySet::TQueryType aQueryType
       
    71 			);
       
    72 
       
    73 	void ConstructL(Messages::RNodeInterface* aOriginatorInterface, const Messages::TRuntimeCtxId& aOriginator);
       
    74 
       
    75 	//This function is used to update the service list which is passed to Etel.
       
    76 	CPcktMbmsMonitoredServiceList* UpdateMonitorServiceListL();
       
    77 	//This function is used to prepare result bundle.
       
    78 	CConnectionServParameterBundle* PrepareMonitorResultBundleL() const;
       
    79 	//This function is used to prepare result bundle containing bearer availability.
       
    80 	CConnectionServParameterBundle* PrepareBearerResultBundleL() const;
       
    81 	//This function is used to prepare empty bundle.
       
    82 	CConnectionServParameterBundle* PrepareRemoveAllBundleL() const;
       
    83 	/*This function is used to prepare  bundle containing current and max count of service/monitor
       
    84 	 list table.*/
       
    85 	CConnectionServParameterBundle* PrepareCountBundleL() const;
       
    86 	//This function is used to send result bundle to the client.
       
    87 	void SendResultBundleL();
       
    88 
       
    89 private:
       
    90 	// Required for setting and controlling the StateChanges within the engine
       
    91 	enum TScanEngineState
       
    92 	 {
       
    93 	 EInitialising = 0,
       
    94 	 EChecking,
       
    95 	 EBearerAvailable,
       
    96 	 ERetrieveBearerAvailability,
       
    97 	 EServiceAdd,
       
    98 	 ENotifyService,
       
    99 	 EServiceRemove,
       
   100 	 EServiceRemoveAll,
       
   101 	 ERemoveAllComplete,
       
   102 	 EStartMonitor,
       
   103 	 EGetMonitorList,
       
   104 	 EResultCount,
       
   105 	 EGetCountMonitorList,
       
   106 	 EGetCountServiceList
       
   107 	 };
       
   108 
       
   109 	RPacketService::TStatus iPsdStatus;
       
   110 
       
   111     //to maintain different states in state machine
       
   112 	TScanEngineState iScanEngineState;
       
   113 
       
   114 	//required by CMBMSServiceRequest.
       
   115 	CMBMSEngine& iMBMSEngine;
       
   116 
       
   117 	// Needed for NotificationRequest Messages
       
   118 	Messages::TNodeId iMBMSTMCommsId;
       
   119 	Messages::RRequestOriginator iRequestOriginator;
       
   120 	Messages::TNodeSignal::TMessageId iRequestType;
       
   121 
       
   122 	//parameter bundle
       
   123 	ESock::CRefCountOwnedParameterBundle* iObjectBundleOwner;
       
   124 
       
   125 	TMbmsNetworkServiceStatus iNetworkServiceStatus;
       
   126 	//operation type on MBMS Monitor List table
       
   127 	TMbmsAction iMbmsAction;
       
   128 
       
   129 	CRetrievePcktMbmsMonitoredServices*	iRetrievePcktMbms;
       
   130 	//MBMS query set by the client
       
   131 	XMBMSServiceQuerySet::TQueryType iQueryType;
       
   132 
       
   133 	//to maintain current and max count of entries in monitor/service list table.
       
   134 	TInt iCount;
       
   135 	TInt iMaxCount;
       
   136 
       
   137 };
       
   138 #endif // SYMBIAN_PDPSERVICES_H
       
   139