telephonyprotocols/umtsgprsscpr/Test/te_spud/src/CPdpFsmInterface.cpp
author hgs
Tue, 22 Jun 2010 11:02:32 +0100
changeset 44 8b72faa1200f
permissions -rw-r--r--
201024_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     2
// All rights reserved.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     7
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     8
// Initial Contributors:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    10
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    11
// Contributors:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    12
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    13
// Description:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    14
// Implementation file for the PDP Context Finite State Machine - Equivalent to CPDPFSM.CPP in SpudFsm
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    15
// 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    16
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    17
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    18
/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    19
 @file
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    20
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    21
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    22
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    23
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    24
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    25
#include "CPdpFsmInterface.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    26
#include "cpdpfsmfactory.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    27
#include "spudfsmdebuglogger.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    28
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    29
//-=========================================================
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    30
// Custom methods
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    31
//-=========================================================
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    32
CPdpFsmInterface::CPdpFsmInterface()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    33
:iPdpFsmFactory(NULL), 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    34
 iNetworkStatus(RPacketService::EStatusUnattached),
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    35
 iSpudMainInterfaceSet(EFalse)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    36
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    37
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::()");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    38
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    39
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    40
CPdpFsmInterface::~CPdpFsmInterface()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    41
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    42
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::()");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    43
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    44
	CPdpFsmInterface::Close();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    45
	delete iPdpFsmFactory;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    46
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    47
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    48
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    49
void CPdpFsmInterface::SpudInput (TContextId aPdpId, TInt aNotification, TInt aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    50
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    51
   if (iSpudMainInterfaceSet)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    52
      {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    53
      iSpudManInterface.Input(aPdpId, aNotification, aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    54
      }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    55
      else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    56
      {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    57
      SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::SpudInput(): No SpudMan Interface");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    58
      SPUDFSMVERBOSE_LOG3(_L("CPdpFsmInterface::SpudInput(): [aPdpId=%d] [aNotification=%d] [aParam=%d]"),
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    59
         aPdpId, aNotification, aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    60
      }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    61
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    62
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    63
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    64
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    65
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    66
//-=========================================================
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    67
// MPdpFsmInterface methods
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    68
//-=========================================================
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    69
/** request to open the FSM
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    70
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    71
@param aSpudManInterface reference to SpudMan interface
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    72
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    73
void CPdpFsmInterface::OpenL(MSpudManInterface * aSpudManInterface, TName& aTsyName)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    74
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    75
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::OpenL()");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    76
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    77
	if (aSpudManInterface == NULL)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    78
	   {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    79
      SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface - Opened with NULL SpudMan Interface");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    80
      }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    81
      else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    82
      {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    83
   	iSpudManInterface.Init(aSpudManInterface);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    84
   	iSpudMainInterfaceSet = ETrue; 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    85
      }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    86
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    87
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    88
	iPdpFsmFactory = CPdpFsmFactory::NewL();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    89
	iPdpFsmFactory->InitL(aTsyName, this);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    90
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    91
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    92
/** closes the FSM and frees underlying resources
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    93
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    94
void CPdpFsmInterface::Close()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    95
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    96
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Close()");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    97
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    98
    iSpudManInterface.Close ();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    99
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   100
	if (iPdpFsmFactory)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   101
	    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   102
		iPdpFsmFactory->Close();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   103
	    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   104
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   105
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   106
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   107
TInt CPdpFsmInterface::NewFsmContext(TContextId aPdpId)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   108
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   109
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::NewFsmContext()");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   110
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   111
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   112
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   113
	return iPdpFsmFactory->NewFsmContext(aPdpId);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   114
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   115
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   116
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   117
/** 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   118
 Performs and input action/notification for context ID aPdpId
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   119
 If aPdpId is KAllContexts, the notification is sent to every context, unless it is of type EServiceStatusChangeNetwork
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   120
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   121
@param aPdpId the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   122
@param aOperation the operation id to perform
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   123
@param aParam extra id for ETelDriver errors
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   124
@return error code for the synchronus patrt of the operation
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   125
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   126
TInt CPdpFsmInterface::Input(TContextId aPdpId, const TInt aOperation, const TInt aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   127
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   128
	TInt ret = KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   129
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   130
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Input(aParam)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   131
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   132
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   133
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   134
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   135
    // Control structure is in order of the most frequent operation first (hopefully)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   136
    //
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   137
	if (iPdpFsmFactory->ContextIsValid(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   138
	    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   139
	    // We have a valid PDP FSM Context, so go ahead with the operation...
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   140
	    //
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   141
	    ret = (iPdpFsmFactory->GetFsmContext(aPdpId))->Input(aOperation, aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   142
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   143
        // Recovering memory by deleting the Fsm Context
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   144
        //
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   145
        // Tricky, definitely don't try with 'SpudMan::EContextDelete' it's far too early.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   146
        // You can get a bit further deleting on 'PdpFsm::EContextDeleted' (and 'PdpFsm::EContextDeletedFailed')
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   147
        // from TContextDeleteStrategy::NotifyFsm(), but you then find that GuQoS is calling into Spud in order to
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   148
        // transfer data from the deleted context to another...
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   149
        //
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   150
        // Additionally, the spud unit test is expecting to be able to "reuse" deleted contexts...
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   151
	    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   152
	else if (aPdpId == KAllContexts)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   153
	    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   154
		TInt err = KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   155
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   156
		// this has to be here to avoid sending it from every context
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   157
		//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   158
		if (aOperation == PdpFsm::EServiceStatusChangeNetwork)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   159
		    {	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   160
			iPdpFsmFactory->SpudInput(KAllContexts, KNetworkStatusEvent, KErrNone);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   161
		    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   162
		else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   163
		    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   164
			for (TContextId i = 0; (i < KMaxPdpContexts) && iPdpFsmFactory->HaveFsmContext(i); i++)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   165
			    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   166
		        // Process any current PDP contexts.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   167
		        
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   168
		        err = (iPdpFsmFactory->GetFsmContext(i))->Input(aOperation, aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   169
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   170
                // See above about trials and tribulations of trying to recover the memory taken by these 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   171
                // CPdpFsm objects.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   172
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   173
				if (err != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   174
				    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   175
				    // We return the last error found, ignoring any earlier ones
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   176
				    //
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   177
					ret = err;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   178
				    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   179
			    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   180
		    }		
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   181
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   182
	else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   183
	    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   184
		ret = KErrBadHandle;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   185
	    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   186
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   187
	return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   188
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   189
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   190
#ifdef SYMBIAN_NETWORKING_UMTSR5
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   191
/** Set context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   192
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   193
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts - 1
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   194
@param aParam - RPacketQoS::TQoSR5Requested data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   195
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   196
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   197
TInt CPdpFsmInterface::Set(TContextId aPdpId, const RPacketQoS::TQoSR5Requested& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   198
{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   199
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(RPacketQoS::TQoSR5Requested)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   200
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   201
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   202
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   203
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   204
	TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   205
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   206
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   207
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   208
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   209
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   210
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   211
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   212
 	iPdpFsmFactory->GetFsmContext(aPdpId)->Set(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   213
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   214
}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   215
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   216
/** Set context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   217
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   218
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   219
@param aParam - RPacketQoS::TQoSR5Negotiated data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   220
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   221
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   222
TInt CPdpFsmInterface::Set(TContextId aPdpId, const RPacketQoS::TQoSR5Negotiated& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   223
{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   224
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(RPacketQoS::TQoSR5Negotiated)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   225
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   226
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   227
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   228
	TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   229
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   230
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   231
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   232
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   233
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   234
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   235
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   236
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   237
	iPdpFsmFactory->GetFsmContext(aPdpId)->Set(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   238
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   239
}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   240
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   241
#else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   242
// !SYMBIAN_NETWORKING_UMTSR5
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   243
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   244
/**
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   245
Set context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   246
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   247
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   248
@param aParam - RPacketQoS::TQoSR99_R4Requested data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   249
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   250
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   251
TInt CPdpFsmInterface::Set(TContextId aPdpId, const RPacketQoS::TQoSR99_R4Requested& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   252
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   253
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(RPacketQoS::TQoSR99_R4Requested)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   254
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   255
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   256
    ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   257
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   258
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   259
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   260
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   261
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   262
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   263
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   264
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   265
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   266
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   267
    iPdpFsmFactory->GetFsmContext(aPdpId)->Set(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   268
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   269
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   270
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   271
/** Set context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   272
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   273
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   274
@param aParam - RPacketQoS::TQoSR99_R4Negotiated data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   275
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   276
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   277
TInt CPdpFsmInterface::Set(TContextId aPdpId, const RPacketQoS::TQoSR99_R4Negotiated& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   278
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   279
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(RPacketQoS::TQoSR99_R4Negotiated)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   280
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   281
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   282
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   283
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   284
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   285
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   286
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   287
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   288
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   289
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   290
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   291
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   292
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   293
	iPdpFsmFactory->GetFsmContext(aPdpId)->Set(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   294
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   295
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   296
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   297
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   298
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   299
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   300
#endif 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   301
// SYMBIAN_NETWORKING_UMTSR5 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   302
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   303
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   304
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   305
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   306
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   307
/** Set context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   308
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   309
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   310
@param aParam - TFTInfo data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   311
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   312
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   313
TInt CPdpFsmInterface::Set(TContextId aPdpId, const TTFTInfo& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   314
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   315
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(TFTInfo)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   316
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   317
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   318
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   319
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   320
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   321
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   322
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   323
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   324
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   325
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   326
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   327
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   328
	iPdpFsmFactory->GetFsmContext(aPdpId)->Set(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   329
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   330
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   331
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   332
/** Set context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   333
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   334
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   335
@param aParam - TFTOperationCode to set to go with the data
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   336
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   337
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   338
TInt CPdpFsmInterface::Set(TContextId aPdpId, const TTFTOperationCode& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   339
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   340
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(TTFTOperationCode)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   341
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   342
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   343
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   344
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   345
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   346
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   347
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   348
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   349
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   350
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   351
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   352
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   353
	iPdpFsmFactory->GetFsmContext(aPdpId)->Set(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   354
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   355
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   356
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   357
/** Set context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   358
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   359
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   360
@param aParam - RPacketContext::TDataChannelV2 data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   361
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   362
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   363
TInt CPdpFsmInterface::Set(TContextId aPdpId, const RPacketContext::TDataChannelV2& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   364
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   365
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(RPacketContext::TDataChannelV2)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   366
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   367
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   368
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   369
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   370
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   371
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   372
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   373
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   374
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   375
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   376
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   377
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   378
	iPdpFsmFactory->GetFsmContext(aPdpId)->Set(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   379
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   380
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   381
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   382
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   383
/** Set context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   384
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   385
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   386
@param aParam - RPacketContext::TContextStatus data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   387
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   388
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   389
TInt CPdpFsmInterface::Set(TContextId aPdpId, const RPacketContext::TContextStatus& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   390
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   391
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(RPacketContext::TContextStatus)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   392
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   393
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   394
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   395
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   396
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   397
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   398
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   399
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   400
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   401
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   402
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   403
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   404
	iPdpFsmFactory->GetFsmContext(aPdpId)->Set(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   405
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   406
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   407
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   408
/** Set context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   409
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   410
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   411
@param aParam - RPacketContext::TContextConfigGPRS& data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   412
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   413
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   414
TInt CPdpFsmInterface::Set(TContextId aPdpId, const RPacketContext::TContextConfigGPRS& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   415
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   416
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(RPacketContext::TContextConfigGPRS)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   417
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   418
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   419
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   420
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   421
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   422
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   423
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   424
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   425
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   426
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   427
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   428
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   429
	iPdpFsmFactory->GetFsmContext(aPdpId)->Set(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   430
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   431
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   432
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   433
/** Set network status
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   434
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   435
@param aParam - RPacketService::TStatus data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   436
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   437
void CPdpFsmInterface::Set(const RPacketService::TStatus aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   438
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   439
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Set(RPacketService::TStatus)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   440
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   441
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   442
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   443
	iNetworkStatus = aParam;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   444
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   445
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   446
/** Set ETel termination error and stop context
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   447
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   448
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   449
@param aErrorCode - the Etel error code detected on this context
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   450
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   451
void CPdpFsmInterface::SetContextTerminationErrorAndStop(TContextId aPdpId, TInt aErrorCode)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   452
{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   453
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::SetContextTerminationErrorAndStop(TContextId aPdpId, TInt aErrorCode)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   454
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   455
	iSpudManInterface.SetContextTerminationErrorAndStop(aPdpId, aErrorCode);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   456
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   457
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   458
}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   459
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   460
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   461
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   462
#ifdef SYMBIAN_NETWORKING_UMTSR5
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   463
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   464
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   465
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   466
@param aParam - RPacketQoS::TQoSR5Requested data to get
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   467
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   468
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   469
TInt CPdpFsmInterface::Get(TContextId aPdpId, RPacketQoS::TQoSR5Requested& aParam) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   470
{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   471
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(RPacketQos::TQoSR5Requested)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   472
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   473
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   474
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   475
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   476
	TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   477
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   478
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   479
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   480
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   481
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   482
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   483
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   484
	iPdpFsmFactory->GetFsmContext(aPdpId)->Get(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   485
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   486
}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   487
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   488
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   489
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   490
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts - 1
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   491
@param aParam - RPacketQoS::TQoSR5Negotiated data to get
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   492
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   493
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   494
TInt CPdpFsmInterface::Get(TContextId aPdpId, RPacketQoS::TQoSR5Negotiated& aParam) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   495
{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   496
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(RPacketQoS::TQoSR5Negotiated)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   497
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   498
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   499
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   500
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   501
	TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   502
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   503
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   504
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   505
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   506
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   507
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   508
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   509
	iPdpFsmFactory->GetFsmContext(aPdpId)->Get(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   510
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   511
}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   512
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   513
#else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   514
// !SYMBIAN_NETWORKING_UMTSR5 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   515
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   516
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   517
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   518
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   519
@param aParam - RPacketQoS::TQoSR99_R4Requested data to get
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   520
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   521
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   522
TInt CPdpFsmInterface::Get(TContextId aPdpId, RPacketQoS::TQoSR99_R4Requested& aParam) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   523
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   524
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(RPacketQos::TQoSRequestedR99_R4)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   525
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   526
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   527
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   528
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   529
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   530
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   531
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   532
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   533
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   534
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   535
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   536
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   537
	iPdpFsmFactory->GetFsmContext(aPdpId)->Get(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   538
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   539
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   540
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   541
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   542
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   543
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts - 1
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   544
@param aParam - RPacketQoS::TQoSR99_R4Negotiated data to get
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   545
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   546
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   547
TInt CPdpFsmInterface::Get(TContextId aPdpId, RPacketQoS::TQoSR99_R4Negotiated& aParam) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   548
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   549
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(RPacketQoS::TQoSR99_R4Negotiated)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   550
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   551
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   552
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   553
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   554
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   555
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   556
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   557
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   558
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   559
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   560
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   561
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   562
	iPdpFsmFactory->GetFsmContext(aPdpId)->Get(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   563
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   564
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   565
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   566
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   567
#endif 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   568
// SYMBIAN_NETWORKING_UMTSR5 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   569
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   570
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   571
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   572
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   573
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   574
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   575
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   576
@param aParam - TTFTInfo data to get
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   577
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   578
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   579
TInt CPdpFsmInterface::Get(TContextId aPdpId, TTFTInfo& aParam) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   580
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   581
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(TFTInfo)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   582
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   583
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   584
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   585
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   586
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   587
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   588
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   589
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   590
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   591
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   592
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   593
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   594
	iPdpFsmFactory->GetFsmContext(aPdpId)->Get(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   595
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   596
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   597
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   598
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   599
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   600
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   601
@param aParam - TTFTOperationCode for the TFT data
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   602
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   603
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   604
TInt CPdpFsmInterface::Get(TContextId aPdpId, TTFTOperationCode& aParam) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   605
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   606
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(TFTInfo)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   607
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   608
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   609
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   610
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   611
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   612
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   613
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   614
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   615
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   616
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   617
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   618
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   619
	iPdpFsmFactory->GetFsmContext(aPdpId)->Get(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   620
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   621
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   622
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   623
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   624
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   625
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   626
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   627
@param aParam - RPacketContext::TDataChannelV2 data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   628
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   629
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   630
TInt CPdpFsmInterface::Get(TContextId aPdpId, RPacketContext::TDataChannelV2& aParam) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   631
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   632
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(RPacketContext::TDataChannelV2)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   633
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   634
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   635
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   636
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   637
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   638
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   639
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   640
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   641
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   642
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   643
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   644
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   645
	iPdpFsmFactory->GetFsmContext(aPdpId)->Get(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   646
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   647
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   648
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   649
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   650
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   651
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   652
@param aParam - RPacketContext::TContextConfigGPRS data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   653
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   654
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   655
TInt CPdpFsmInterface::Get(TContextId aPdpId, RPacketContext::TContextConfigGPRS& aParam) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   656
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   657
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(RPacketContext::TContextConfigGPRS)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   658
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   659
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   660
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   661
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   662
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   663
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   664
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   665
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   666
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   667
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   668
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   669
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   670
	iPdpFsmFactory->GetFsmContext(aPdpId)->Get(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   671
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   672
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   673
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   674
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   675
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   676
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   677
@param aParam - RPacketContext::TContextStatus data to get
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   678
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   679
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   680
TInt CPdpFsmInterface::Get(TContextId aPdpId, RPacketContext::TContextStatus& aParam) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   681
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   682
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(RPacketContext::TContextStatus)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   683
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   684
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   685
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   686
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   687
    TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   688
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   689
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   690
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   691
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   692
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   693
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   694
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   695
	iPdpFsmFactory->GetFsmContext(aPdpId)->Get(aParam);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   696
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   697
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   698
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   699
/** Get context parameters
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   700
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   701
@param aPdpId - the PDP context ID, 0 to KMaxPdpContexts
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   702
@param aParam - RPacketContext::TContextConfigGPRS data to set
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   703
@return - KErrBadHandle or KErrNone
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   704
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   705
void CPdpFsmInterface::Get(RPacketService::TStatus& aParam)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   706
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   707
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::Get(RPacketService::TStatus)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   708
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   709
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   710
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   711
	aParam = iNetworkStatus;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   712
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   713
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   714
#ifdef SYMBIAN_NETWORKING_UMTSR5
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   715
void CPdpFsmInterface::SetIMCNSignalling(TBool/* aImCnSignalling*/)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   716
  {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   717
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   718
  }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   719
#endif //SYMBIAN_NETWORKING_UMTSR5
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   720
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   721
TInt CPdpFsmInterface::GetLastErrorCause(TContextId aPdpId, TInt& aLastErrorCause) const
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   722
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   723
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::GetLastErrorCause(RPacketContext::GetLastErrorCause)");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   724
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   725
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   726
	ASSERT(iPdpFsmFactory->ContextIdIsValid(aPdpId));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   727
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   728
	TInt ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   729
    if (!iPdpFsmFactory->HaveFsmContext(aPdpId))
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   730
        {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   731
        if ((ret = iPdpFsmFactory->NewFsmContext(aPdpId)) != KErrNone)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   732
            {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   733
            return ret;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   734
            }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   735
        }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   736
        
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   737
	iPdpFsmFactory->GetFsmContext(aPdpId)->GetLastErrorCause(aLastErrorCause);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   738
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   739
	return KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   740
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   741
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   742
/** Get the TsyName
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   743
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   744
@return - TsyName in a TName
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   745
*/
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   746
const TName& CPdpFsmInterface::TsyName(void)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   747
    {
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   748
	SPUDFSMVERBOSE_FNLOG("CPdpFsmInterface::TsyName");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   749
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   750
	ASSERT(iPdpFsmFactory);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   751
	
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   752
	return iPdpFsmFactory->TsyName();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   753
    }
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   754