telephonyserverplugins/multimodetsy/Multimode/gprs/gprs.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2001-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  @internalAll 
       
    19 */
       
    20 
       
    21 #ifndef _GPRS_H
       
    22 #define _GPRS_H
       
    23 
       
    24 #include <etelpckt.h>
       
    25 #include <pcktcs.h>
       
    26 #include <e32base.h>
       
    27 #include "et_tsy.h"
       
    28 #include <et_phone.h>
       
    29 
       
    30 class CATIO;
       
    31 class CATInit;
       
    32 class CPhoneGlobals;
       
    33 class CATGprsClass;
       
    34 class CATGprsDetach;
       
    35 class CATGprsAttach;
       
    36 class CATGprsNtwkRegStatus;
       
    37 class CATGprsNtwkRegStatusChange;
       
    38 class CGprsContext;
       
    39 class CGprsContextEntry;
       
    40 
       
    41 class CGprs :public CSubSessionExtBase
       
    42 /**
       
    43 This class implements the GPRS functionality supported in the RPacket APIs
       
    44 CGprs inherits from CSubSessionExtBase. It is intended for CPhoneGsm usage.
       
    45 This class contains a linked list of the contexts that it creates.
       
    46 @internalComponent
       
    47 */
       
    48 	{
       
    49 public:
       
    50 	static	CGprs* NewL(CATIO* iIo, CATInit*	iInit, CPhoneGlobals* iPhoneGlobals);
       
    51 	virtual TInt					ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage);
       
    52 	virtual TReqMode				ReqModeL(const TInt aIpc);
       
    53 	virtual CTelObject*				OpenNewObjectByNameL(const TDesC& aName);
       
    54 	virtual CTelObject*				OpenNewObjectL(TDes& aNewName);
       
    55 	virtual TInt					CancelService(const TInt aIpc, const TTsyReqHandle aTsyReqHandle);
       
    56 	virtual void					Init();
       
    57 	virtual TInt					RegisterNotification(const TInt aIpc);
       
    58 	virtual TInt					DeregisterNotification(const TInt aIpc);
       
    59 	virtual TInt					NumberOfSlotsL(const TInt aIpc);
       
    60 	RHandleBase* 					GlobalKernelObjectHandle();
       
    61 	TDes*							NameOfLastAddedContext();
       
    62 
       
    63 	RPacketService::TStatus			Status();
       
    64 	void							SetStatus(RPacketService::TStatus aStatus);
       
    65 
       
    66 	RPacketService::TRegistrationStatus			RegistrationStatus();
       
    67 	void							SetRegistrationStatus(RPacketService::TRegistrationStatus aStatus);
       
    68 
       
    69 	TInt							NumberOfContexts();
       
    70 	RPacketService::TMSClass		CurrentMSClass();
       
    71 	void							SetCurrentMSClass(RPacketService::TMSClass aMSClass);
       
    72 	RPacketService::TMSClass		MaxMSClass();
       
    73 	void							SetContextConfigGPRS(const RPacketContext::TContextConfigGPRS* aContextConfigGPRS);
       
    74 	void							ContextConfigGPRS(RPacketContext::TContextConfigGPRS* aContextConfigGPRS);
       
    75 	TInt							MaxNumberOfContexts();
       
    76 	CGprsContext*					Context(TInt aCount);
       
    77 	void							RemoveContext(CGprsContext* aContext);
       
    78 
       
    79 private:
       
    80 	CGprs(CATIO* iIo, CATInit*	iInit, CPhoneGlobals* iPhoneGlobals);
       
    81 	virtual ~CGprs();
       
    82 	void ConstructL();
       
    83 private:
       
    84 	void AppendNewContextL(CGprsContext* aNewContext);
       
    85 	void GenerateNewContextNameAndCid(TDes& aName, TInt& aCid);
       
    86 
       
    87 	TInt NotifyContextAdded(const TTsyReqHandle aTsyReqHandle, TDes* aContextId);
       
    88 	TInt NotifyContextAddedCancel(const TTsyReqHandle aTsyReqHandle);
       
    89 
       
    90 	TInt Attach(const TTsyReqHandle aTsyReqHandle);	
       
    91 	TInt AttachCancel(const TTsyReqHandle aTsyReqHandle);	
       
    92 
       
    93 	TInt Detach(const TTsyReqHandle aTsyReqHandle);	
       
    94 	TInt DetachCancel(const TTsyReqHandle aTsyReqHandle);	
       
    95 
       
    96 	TInt GetStatus(const TTsyReqHandle aTsyReqHandle,RPacketService::TStatus* aGprsStatus);
       
    97 	TInt NotifyStatusChange(const TTsyReqHandle aTsyReqHandle,RPacketService::TStatus* aGprsStatus);
       
    98 	TInt NotifyStatusChangeCancel(const TTsyReqHandle aTsyReqHandle);
       
    99 
       
   100 	TInt NotifyContextActivationRequested(const TTsyReqHandle aTsyReqHandle, RPacketContext::TProtocolType* aPdpType);
       
   101 	TInt NotifyContextActivationRequestedCancel(const TTsyReqHandle aTsyReqHandle);
       
   102 
       
   103 	TInt RejectActivationRequest(const TTsyReqHandle aTsyReqHandle);
       
   104 	TInt RejectActivationRequestCancel(const TTsyReqHandle aTsyReqHandle);
       
   105 
       
   106 	TInt EnumerateContexts(const TTsyReqHandle aTsyReqHandle,TInt* aCount, TInt* aMaxAllowed);
       
   107 	TInt GetContextInfo(const TTsyReqHandle aTsyReqHandle,TInt aIndex,RPacketService::TContextInfo* aInfo);
       
   108 	TInt GetContextInfoCancel(const TTsyReqHandle aTsyReqHandle);
       
   109 
       
   110 	TInt GetNtwkRegStatus(const TTsyReqHandle aTsyReqHandle,RPacketService::TRegistrationStatus* aRegistrationStatus);
       
   111 	TInt GetNtwkRegStatusCancel(const TTsyReqHandle aTsyReqHandle);
       
   112 	TInt NotifyChangeOfNtwkRegStatus(const TTsyReqHandle aTsyReqHandle,RPacketService::TRegistrationStatus* aRegistrationStatus);
       
   113 	TInt NotifyChangeOfNtwkRegStatusCancel(const TTsyReqHandle aTsyReqHandle);
       
   114 
       
   115 	TInt GetMSClass(const TTsyReqHandle aTsyReqHandle, RPacketService::TMSClass* aCurrentClass, RPacketService::TMSClass* aMaxClass);
       
   116 	TInt GetMSClassCancel(const TTsyReqHandle aTsyReqHandle);
       
   117 
       
   118 	TInt SetMSClass(const TTsyReqHandle aTsyReqHandle, RPacketService::TMSClass* aClass);
       
   119 	TInt SetMSClassCancel(const TTsyReqHandle aTsyReqHandle);
       
   120 
       
   121 	TInt NotifyMSClassChange(const TTsyReqHandle aTsyReqHandle, RPacketService::TMSClass* aNewClass);
       
   122 	TInt NotifyMSClassChangeCancel(const TTsyReqHandle aTsyReqHandle);
       
   123 
       
   124 	TInt GetStaticCaps(const TTsyReqHandle aTsyReqHandle, TUint* aCaps,RPacketContext::TProtocolType* aPdpType);
       
   125 
       
   126 	TInt GetDynamicCaps(const TTsyReqHandle aTsyReqHandle, RPacketService::TDynamicCapsFlags* aCaps);
       
   127 	TInt NotifyDynamicCapsChange(const TTsyReqHandle aTsyReqHandle, RPacketService::TDynamicCapsFlags* aCaps);
       
   128 	TInt NotifyDynamicCapsChangeCancel(const TTsyReqHandle aTsyReqHandle);
       
   129 
       
   130 	TInt SetAttachMode(const TTsyReqHandle aTsyReqHandle, RPacketService::TAttachMode* aMode);
       
   131 	TInt GetAttachMode(const TTsyReqHandle aTsyReqHandle, RPacketService::TAttachMode* aMode);
       
   132 
       
   133 	TInt SetDefaultContextParams(const TTsyReqHandle aTsyReqHandle, const TDesC8* aPckg);
       
   134 	TInt GetDefaultContextParams(const TTsyReqHandle aTsyReqHandle, TDes8* aPckg);	
       
   135 
       
   136 private:
       
   137 	TDblQue<CGprsContextEntry>		iContexts;				//< List of contexts.
       
   138 	CATIO*							iIo;					//< Pointer to communication object.
       
   139 	CATGprsAttach*					iATGPRSAttach;			//< Pointer to AT GPRS attach command object.
       
   140 	CATGprsDetach*					iATGprsDetach;			//< Pointer to AT GPRS detach command object.
       
   141 	CATInit*						iInit;					//< Pointer to AT phone init object.
       
   142 	CATGprsClass*					iATGprsClass;			//< Pointer to AT GPRS MS class command object.
       
   143 	CATGprsNtwkRegStatus* iATGprsNtwkRegStatus; //< Pointer to AT GPRS get current network registration command object. 
       
   144 	CATGprsNtwkRegStatusChange* iATGprsNtwkRegStatusChange; //< Pointer to AT machine which triggers notifications when phone changes reg status
       
   145 	CPhoneGlobals*					iPhoneGlobals;			//< Pointer to phone globals that store phone wide parameters.
       
   146 
       
   147 	// internal GPRS connection state.
       
   148 	RPacketContext::TContextConfigGPRS iDefContextConfigGPRS;	//< Internal state. Default context settings.
       
   149 	RMutex iMutex; //< Synchronisation mutex
       
   150 	};
       
   151 
       
   152 class CGprsContext;
       
   153 
       
   154 class CGprsContextEntry : public CBase
       
   155 /**
       
   156 This class contains a CGprsContext pointer. It is intended  to 
       
   157 be part of CGprs's linked list of contexts
       
   158 CGprs inherits from CBase. This class is only intended  to be part of the TDblQue list 
       
   159 that CGprs has.
       
   160 @internalComponent
       
   161 */
       
   162 	{
       
   163 	friend class CGprs;
       
   164 public:
       
   165 	CGprsContextEntry(CGprsContext* aContext);
       
   166 	~CGprsContextEntry();
       
   167 	void Deque();
       
   168 public:
       
   169 	CGprsContext* iContext;							//< Pointer to a context.
       
   170 private:
       
   171 	TDblQueLink iLink;								//< Link object.
       
   172 	};
       
   173 #endif