adaptationlayer/tsy/nokiatsy_dll/src/cmmpipecontrol.cpp
changeset 0 63b37f68c1ce
child 5 8ccc39f9d787
equal deleted inserted replaced
-1:000000000000 0:63b37f68c1ce
       
     1 /*
       
     2 * Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 // INCLUDES
       
    21 #include "cmmpipecontrol.h"
       
    22 #include <ctsy/pluginapi/cmmdatapackage.h>
       
    23 #include "cmmpacketservicemesshandler.h"
       
    24 #include "cmmpacketmesshandlercontextlist.h"
       
    25 #include <tisi.h>
       
    26 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
    27 #include <nsisi.h>
       
    28 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
    29 #include "tsylogger.h"
       
    30 #include "osttracedefinitions.h"
       
    31 #ifdef OST_TRACE_COMPILER_IN_USE
       
    32 #include "cmmpipecontroltraces.h"
       
    33 #endif
       
    34 
       
    35 // EXTERNAL DATA STRUCTURES
       
    36     // None
       
    37 
       
    38 // EXTERNAL FUNCTION PROTOTYPES
       
    39     // None
       
    40 
       
    41 // CONSTANTS
       
    42     // None
       
    43 
       
    44 // MACROS
       
    45     // None
       
    46 
       
    47 // LOCAL CONSTANTS AND MACROS
       
    48     // None
       
    49 
       
    50 // MODULE DATA STRUCTURES
       
    51     // None
       
    52 
       
    53 // LOCAL FUNCTION PROTOTYPES
       
    54     // None
       
    55 
       
    56 // ==================== LOCAL FUNCTIONS =======================================
       
    57 
       
    58     // None
       
    59 
       
    60 // ================= MEMBER FUNCTIONS =========================================
       
    61 
       
    62 // ----------------------------------------------------------------------------
       
    63 // CMmPipeControl::CMmPipeControl
       
    64 // C++ default constructor can NOT contain any code, that
       
    65 // might leave.
       
    66 // ----------------------------------------------------------------------------
       
    67 //
       
    68 CMmPipeControl::CMmPipeControl()
       
    69     {
       
    70 
       
    71     TFLOGSTRING("TSY: CMmPipeControl::CMmPipeControl");
       
    72 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_CMMPIPECONTROL, "CMmPipeControl::CMmPipeControl" );
       
    73     }
       
    74 
       
    75 // -----------------------------------------------------------------------------
       
    76 // CMmPipeControl::~CMmPipeControl
       
    77 // Destructor, deletes all allocated resources.
       
    78 // -----------------------------------------------------------------------------
       
    79 //
       
    80 CMmPipeControl::~CMmPipeControl()
       
    81     {
       
    82 
       
    83     TFLOGSTRING("TSY: CMmPipeControl::~CMmPipeControl");
       
    84 OstTrace0( TRACE_NORMAL, DUP1_CMMPIPECONTROL_CMMPIPECONTROL, "CMmPipeControl::~CMmPipeControl" );
       
    85     }
       
    86 
       
    87 // ----------------------------------------------------------------------------
       
    88 // CMmPipeControl::NewL
       
    89 // Two-phased constructor.
       
    90 // ----------------------------------------------------------------------------
       
    91 //
       
    92 CMmPipeControl* CMmPipeControl::NewL(
       
    93     CMmPhoNetSender* aPhoNetSender,
       
    94     CMmPhoNetReceiver* aPhoNetReceiver,
       
    95     CMmPacketContextMessHandler* aMmPacketContextMessHandler,
       
    96     CMmPacketContextMesshandlerList* aMmPacketContextMesshandlerList)
       
    97     {
       
    98 
       
    99     TFLOGSTRING("TSY: CMmPipeControl::NewL");
       
   100 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_NEWL, "CMmPipeControl::NewL" );
       
   101 
       
   102     CMmPipeControl* mmPipeControl = new ( ELeave ) CMmPipeControl();
       
   103 
       
   104     CleanupStack::PushL( mmPipeControl );
       
   105 
       
   106     mmPipeControl->iPhoNetSender = aPhoNetSender;
       
   107     mmPipeControl->iContextMessHandler = aMmPacketContextMessHandler;
       
   108     mmPipeControl->iContextList = aMmPacketContextMesshandlerList;
       
   109 
       
   110     mmPipeControl->ConstructL();
       
   111 
       
   112     aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PIPE_CREATE_RESP );
       
   113     aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PIPE_ENABLE_RESP );
       
   114     aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PIPE_RESET_RESP );
       
   115     aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PIPE_REMOVE_RESP );
       
   116 
       
   117 #ifdef DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
       
   118 
       
   119     aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PEP_CONNECT_REQ );
       
   120     aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PEP_DISCONNECT_REQ );
       
   121     aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PEP_RESET_REQ );
       
   122     aPhoNetReceiver->RegisterL( mmPipeControl, PN_PIPE, PNS_PEP_ENABLE_REQ );
       
   123 
       
   124 #endif //DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
       
   125 
       
   126 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   127    aPhoNetReceiver->
       
   128         RegisterL( mmPipeControl, PN_NAMESERVICE, PNS_NAME_QUERY_RESP );
       
   129 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   130 
       
   131     CleanupStack::Pop( mmPipeControl );
       
   132 
       
   133     return mmPipeControl;
       
   134     }
       
   135 
       
   136 // ----------------------------------------------------------------------------
       
   137 // CMmPipeControl::ConstructL
       
   138 // Symbian 2nd phase constructor can leave.
       
   139 // ----------------------------------------------------------------------------
       
   140 //
       
   141 void CMmPipeControl::ConstructL()
       
   142     {
       
   143 
       
   144     TFLOGSTRING("TSY: CMmPipeControl::ConstructL");
       
   145 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_CONSTRUCTL, "CMmPipeControl::ConstructL" );
       
   146 
       
   147     iSecondPepDeviceId = KSecondPepDevice; // Default Device Id of second PEP
       
   148     iSecondPepObjectId = KSecondPepObject; // Default Object Id of second PEP
       
   149 
       
   150     InitLists();
       
   151 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   152    PnsNameQueryReq();
       
   153 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   154     }
       
   155 
       
   156 // -----------------------------------------------------------------------------
       
   157 // CMmPipeControl::ReceiveMessageL
       
   158 // Entry point for messages received from Domestic OS.
       
   159 // Switches the message to the correct method.
       
   160 // -----------------------------------------------------------------------------
       
   161 //
       
   162 void CMmPipeControl::ReceiveMessageL( const TIsiReceiveC& aIsiMessage )
       
   163     {
       
   164     TInt resource( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) );
       
   165     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
       
   166 
       
   167     TFLOGSTRING3("TSY: CMmPipeControl::ReceiveMessageL - resource: %d, msgId: %d", resource, messageId);
       
   168 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_RECEIVEMESSAGEL, "CMmPipeControl::ReceiveMessageL;resource=%d;messageId=%d", resource, messageId );
       
   169 
       
   170     switch ( resource )
       
   171         {
       
   172         case PN_PIPE:
       
   173             {
       
   174             switch( messageId )
       
   175                 {
       
   176                 case PNS_PIPE_CREATE_RESP:
       
   177                     {
       
   178                     PnsPipeCreateResp( aIsiMessage );
       
   179                     break;
       
   180                     }
       
   181                 case PNS_PIPE_ENABLE_RESP:
       
   182                     {
       
   183                     PnsPipeEnableResp( aIsiMessage );
       
   184                     break;
       
   185                     }
       
   186                 case PNS_PIPE_RESET_RESP:
       
   187                     {
       
   188                     PnsPipeResetResp( aIsiMessage );
       
   189                     break;
       
   190                     }
       
   191                 case PNS_PIPE_REMOVE_RESP:
       
   192                     {
       
   193                     PnsPipeRemoveResp( aIsiMessage );
       
   194                     break;
       
   195                     }
       
   196 
       
   197 #ifdef DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
       
   198                 case PNS_PEP_CONNECT_REQ:
       
   199                     {
       
   200                     PnsPepConnectReq( aIsiMessage );
       
   201                     break;
       
   202                     }
       
   203                 case PNS_PEP_DISCONNECT_REQ:
       
   204                     {
       
   205                     PnsPepDisconnectReq( aIsiMessage );
       
   206                     break;
       
   207                     }
       
   208                 case PNS_PEP_RESET_REQ:
       
   209                     {
       
   210                     PnsPepResetReq( aIsiMessage );
       
   211                     break;
       
   212                     }
       
   213                 case PNS_PEP_ENABLE_REQ:
       
   214                     {
       
   215                     PnsPepEnableReq( aIsiMessage );
       
   216                     break;
       
   217                     }
       
   218 #endif // DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
       
   219 
       
   220                 default:
       
   221                     {
       
   222 
       
   223                     TFLOGSTRING2("TSY: CMmPipeControl::ReceiveMessageL - PN_PIPE - unknown msgId: %d", messageId);
       
   224 OstTrace1( TRACE_NORMAL, DUP1_CMMPIPECONTROL_RECEIVEMESSAGEL, "CMmPipeControl::ReceiveMessageL;unknown messageId=%d", messageId );
       
   225                     break;
       
   226                     }
       
   227                 }
       
   228             break;
       
   229             }
       
   230 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   231         case PN_NAMESERVICE:
       
   232             {
       
   233             switch( messageId )
       
   234                 {
       
   235                 case PNS_NAME_QUERY_RESP:
       
   236                     {
       
   237                     PnsNameQueryResp( aIsiMessage );
       
   238                     break;
       
   239                     }
       
   240                 default:
       
   241                     {
       
   242 
       
   243                     TFLOGSTRING2("TSY: CMmPipeControl::ReceiveMessageL - PN_NAMESERVICE - unknown msgId: %d", messageId);
       
   244 OstTrace1( TRACE_NORMAL, DUP2_CMMPIPECONTROL_RECEIVEMESSAGEL, "CMmPipeControl::ReceiveMessageL;unknown messageId=%d", messageId );
       
   245                     break;
       
   246                     }
       
   247                 }
       
   248             break;
       
   249             }
       
   250 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   251         default:
       
   252             {
       
   253 
       
   254             TFLOGSTRING2("TSY: CMmPipeControl::ReceiveMessageL - unknown resource: %d", resource);
       
   255 OstTrace1( TRACE_NORMAL, DUP3_CMMPIPECONTROL_RECEIVEMESSAGEL, "CMmPipeControl::ReceiveMessageL;unknown resource=%d", resource );
       
   256             break; // server not known
       
   257             }
       
   258         } // end of switch
       
   259     }
       
   260 
       
   261 // ----------------------------------------------------------------------------
       
   262 // CMmPipeControl::InitLists
       
   263 // Initialize used lists and attributes.
       
   264 // ----------------------------------------------------------------------------
       
   265 //
       
   266 void CMmPipeControl::InitLists()
       
   267     {
       
   268 
       
   269     TFLOGSTRING("TSY: CMmPipeControl::InitLists");
       
   270 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_INITLISTS, "CMmPipeControl::InitLists" );
       
   271 
       
   272     // Find PipeHandle id from Pipe Operation by PipeHandle List
       
   273     for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ )
       
   274         {
       
   275         // Initialize pipe operation array
       
   276         iPipeOperationArray[i].iPipeHandle = KInvalidPipeHandle;
       
   277 
       
   278         // Use zero as default value
       
   279         iPipeOperationArray[i].iTransId = 0;
       
   280         }
       
   281     }
       
   282 
       
   283 // ----------------------------------------------------------------------------
       
   284 // CMmPipeControl::SetPipeHandle
       
   285 // Set Pipe Handle value to the list.
       
   286 // ----------------------------------------------------------------------------
       
   287 //
       
   288 void CMmPipeControl::SetPipeHandle(
       
   289     const TUint8 aPipeHandle )
       
   290     {
       
   291 
       
   292     TFLOGSTRING("TSY: CMmPipeControl::SetPipeHandle");
       
   293 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_SETPIPEHANDLE, "CMmPipeControl::SetPipeHandle" );
       
   294 
       
   295     // Find PipeHandle id from Pipe Operation by PipeHandle List
       
   296     for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ )
       
   297         {
       
   298         // If KInvalidPipeHandle is same as in iPipeOperationArray list
       
   299         if ( KInvalidPipeHandle == iPipeOperationArray[i].iPipeHandle )
       
   300             {
       
   301             // Set pipehandle to the pipe operation list
       
   302             iPipeOperationArray[i].iPipeHandle = aPipeHandle;
       
   303             // Pipe handle found, break
       
   304             i = KMmMaxNumberOfPipeHandles;
       
   305             }
       
   306         //no else
       
   307         }
       
   308     }
       
   309 
       
   310 // ----------------------------------------------------------------------------
       
   311 // CMmPipeControl::SetTransactionId
       
   312 // If pipehandle found set transaction id value to the list.
       
   313 // ----------------------------------------------------------------------------
       
   314 //
       
   315 void CMmPipeControl::SetTransactionId(
       
   316     const TUint8 aPipeHandle,
       
   317     const TUint8 aTransId )
       
   318     {
       
   319 
       
   320     TFLOGSTRING("TSY: CMmPipeControl::SetTransactionId");
       
   321 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_SETTRANSACTIONID, "CMmPipeControl::SetTransactionId" );
       
   322 
       
   323     // Find PipeHandle id from Pipe Operation by PipeHandle List
       
   324     for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ )
       
   325         {
       
   326         // If aPipeHandle is same as in iPipeOperationArray list
       
   327         if ( aPipeHandle == iPipeOperationArray[i].iPipeHandle )
       
   328             {
       
   329             // Set aTransId to the pipe operation list
       
   330             iPipeOperationArray[i].iTransId = aTransId;
       
   331             // Pipe handle found, break
       
   332             i = KMmMaxNumberOfPipeHandles;
       
   333             }
       
   334         //no else
       
   335         }
       
   336     }
       
   337 
       
   338 // ----------------------------------------------------------------------------
       
   339 // CMmPipeControl::TransactionId
       
   340 // Returns Transaction id by PipeHandle.
       
   341 // ----------------------------------------------------------------------------
       
   342 //
       
   343 TUint8 CMmPipeControl::TransactionId(
       
   344     const TUint8 aPipeHandle ) const
       
   345     {
       
   346 
       
   347     TFLOGSTRING("TSY: CMmPipeControl::TransactionId");
       
   348 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_TRANSACTIONID, "CMmPipeControl::TransactionId" );
       
   349 
       
   350     TUint8 transId( 0 );
       
   351 
       
   352     // Find PipeHandle from Pipe Operation by PipeHandle List
       
   353     for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ )
       
   354         {
       
   355         // If aPipeHandle is same as in iPipeOperationArray list
       
   356         if ( aPipeHandle == iPipeOperationArray[i].iPipeHandle )
       
   357             {
       
   358             // Get transaction id from the PipeOperationArray list
       
   359             transId = iPipeOperationArray[i].iTransId;
       
   360             // Pipe handle found, break
       
   361             i = KMmMaxNumberOfPipeHandles;
       
   362             }
       
   363         //no else
       
   364         }
       
   365     // Return Transaction id
       
   366     return transId;
       
   367     }
       
   368 
       
   369 // ----------------------------------------------------------------------------
       
   370 // CMmPipeControl::ResetPipeHandle
       
   371 // Remove Pipehandle and Transaction id from the list.
       
   372 // ----------------------------------------------------------------------------
       
   373 //
       
   374 void CMmPipeControl::ResetPipeHandle(
       
   375     const TUint8 aPipeHandle )
       
   376     {
       
   377 
       
   378     TFLOGSTRING("TSY: CMmPipeControl::ResetPipeHandle");
       
   379 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_RESETPIPEHANDLE, "CMmPipeControl::ResetPipeHandle" );
       
   380 
       
   381     // Find PipeHandle id from Pipe Operation by PipeHandle List
       
   382     for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ )
       
   383         {
       
   384         // If aPipeHandle is same as in iPipeOperationArray list
       
   385         if ( aPipeHandle == iPipeOperationArray[i].iPipeHandle )
       
   386             {
       
   387             // Initialize Pipehandle to KInvalidPipeHandle
       
   388             iPipeOperationArray[i].iPipeHandle = KInvalidPipeHandle;
       
   389             // initialize TransactionId to zero
       
   390             iPipeOperationArray[i].iTransId = 0;
       
   391             // Pipe handle found, break
       
   392             i = KMmMaxNumberOfPipeHandles;
       
   393             }
       
   394         //no else
       
   395         }
       
   396     }
       
   397 
       
   398 // ----------------------------------------------------------------------------
       
   399 // CMmPipeControl::IsOperationCalled
       
   400 // Check if pipe operation for given pipe is outgoing
       
   401 // ----------------------------------------------------------------------------
       
   402 //
       
   403 TBool CMmPipeControl::IsOperationCalled(
       
   404     const TUint8 aPipeHandle ) const
       
   405     {
       
   406 
       
   407     TFLOGSTRING("TSY: CMmPipeControl::IsOperationCalled");
       
   408 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_ISOPERATIONCALLED, "CMmPipeControl::IsOperationCalled" );
       
   409 
       
   410     TBool ret( EFalse);
       
   411 
       
   412     // Find PipeHandle id from PipeHandle List
       
   413     for ( TInt i = 0; i < KMmMaxNumberOfPipeHandles; i++ )
       
   414         {
       
   415         if ( aPipeHandle == iPipeOperationArray[i].iPipeHandle )
       
   416             {
       
   417             // PipeHandle id found, return true
       
   418             ret = ETrue;
       
   419             }
       
   420         }
       
   421     // PipeHandle id not found, return false
       
   422     return ret;
       
   423     }
       
   424 
       
   425 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   426 // ----------------------------------------------------------------------------
       
   427 // CMmPipeControl::PnsNameQueryReq
       
   428 // Construct a PNS_NAME_QUERY_REQ ISI-message
       
   429 // ----------------------------------------------------------------------------
       
   430 //
       
   431 TInt CMmPipeControl::PnsNameQueryReq() const
       
   432     {
       
   433 
       
   434     TFLOGSTRING("TSY: CMmPipeControl::PnsNameQueryReq");
       
   435 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_PNSNAMEQUERYREQ, "CMmPipeControl::PnsNameQueryReq" );
       
   436 
       
   437     // create buffer for isi msg data
       
   438     TBuf8<SIZE_PNS_NAME_QUERY_REQ> data;
       
   439     // set message data
       
   440     data.Append( KGpdsPadding ); // Padding byte
       
   441     data.Append( KGpdsPadding ); // Padding byte
       
   442     data.Append( KGpdsPadding ); // Padding byte
       
   443     data.Append( KGpdsPadding ); // Padding byte
       
   444     data.Append( KGpdsPadding ); // Padding byte
       
   445     data.Append( PN_GPRS  ); // Gprs server
       
   446     data.Append( KGpdsPadding ); // Padding byte
       
   447     data.Append( KGpdsPadding ); // Padding byte
       
   448     data.Append( KGpdsPadding ); // Padding byte
       
   449     data.Append( PN_GPRS  ); // Gprs server
       
   450 
       
   451     // set dummyTransactionId value to 0x0F
       
   452     TUint8 dummyTransactionId( KDummyTrId );
       
   453 
       
   454     // Sending message to phonet
       
   455     return iPhoNetSender->Send(
       
   456         PN_NAMESERVICE, dummyTransactionId, PNS_NAME_QUERY_REQ, data );
       
   457     }
       
   458 
       
   459 // ----------------------------------------------------------------------------
       
   460 // CMmPipeControl::PnsNameQueryResp
       
   461 // Breaks a PNS_NAME_QUERY_RESP ISI-message
       
   462 // ----------------------------------------------------------------------------
       
   463 //
       
   464 void CMmPipeControl::PnsNameQueryResp(
       
   465     const TIsiReceiveC& aIsiMessage )
       
   466     {
       
   467 
       
   468     TUint16 matchesInThisMsg( aIsiMessage.Get16bit(
       
   469         ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_MATCHESINMSG ) );
       
   470 
       
   471     TFLOGSTRING2("TSY: CMmPipeControl::PnsNameQueryResp - matches in this msg: %d", matchesInThisMsg);
       
   472 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSNAMEQUERYRESP, "CMmPipeControl::PnsNameQueryResp;matchesInThisMsg=%hu", matchesInThisMsg );
       
   473 
       
   474     if ( 0 < matchesInThisMsg )
       
   475         {
       
   476         for ( TInt i = 0; i < matchesInThisMsg; i++ )
       
   477             {
       
   478             // each match is represented as 8-byte record =>
       
   479             // recordIndex = i * SIZE_PN_NAME_SRV_ITEM_STR
       
   480             // name is 4 bytes =>
       
   481             // last byte index = PN_NAME_SRV_ITEM_STR_OFFSET_NAME + KLastByteIndex
       
   482             TInt recordIndex( i * SIZE_PN_NAME_SRV_ITEM_STR );
       
   483             TUint8 name( aIsiMessage.Get8bit(
       
   484                 ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL +
       
   485                 recordIndex + ( PN_NAME_SRV_ITEM_STR_OFFSET_NAME + KLastByteIndex ) ) );
       
   486             if ( PN_GPRS == name )
       
   487                 {
       
   488                 // Get and store SecondPepDevice id and SecondPepObject id
       
   489                 iSecondPepDeviceId = aIsiMessage.Get8bit(
       
   490                     ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL +
       
   491                     recordIndex + PN_NAME_SRV_ITEM_STR_OFFSET_DEV );
       
   492                 iSecondPepObjectId = aIsiMessage.Get8bit(
       
   493                     ISI_HEADER_SIZE + PNS_NAME_QUERY_RESP_OFFSET_NAMEENTRYTBL +
       
   494                     recordIndex + PN_NAME_SRV_ITEM_STR_OFFSET_OBJ );
       
   495                 // then find right server, stop finding
       
   496                 i = matchesInThisMsg;
       
   497 
       
   498                 TFLOGSTRING3("TSY: CMmPipeControl::PnsNameQueryResp. SecondPepDeviceId: %d SecondPepObjectId: %d", iSecondPepDeviceId, iSecondPepObjectId );
       
   499 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSNAMEQUERYRESP, "CMmPipeControl::PnsNameQueryResp;iSecondPepDeviceId=%hhu;iSecondPepObjectId=%hhu", iSecondPepDeviceId, iSecondPepObjectId );
       
   500 
       
   501                 }
       
   502             //no else
       
   503             }
       
   504         }
       
   505     //no else
       
   506     }
       
   507 
       
   508 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   509 
       
   510 // ----------------------------------------------------------------------------
       
   511 // CMmPipeControl::PnsPipeCreateReq
       
   512 // Construct a PNS_PIPE_CREATE_REQ ISI-message
       
   513 // ----------------------------------------------------------------------------
       
   514 //
       
   515 TInt CMmPipeControl::PnsPipeCreateReq(
       
   516     const TUint8 aTransId,
       
   517     const TUint8 aPipeState,
       
   518     const TUint8 aFirstPepObject ) const
       
   519     {
       
   520 
       
   521     TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeCreateReq. TransactionId: %d", aTransId );
       
   522 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPECREATEREQ, "CMmPipeControl::PnsPipeCreateReq;aTransId=%hhu", aTransId );
       
   523 
       
   524     // create buffer for isi msg data
       
   525 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   526     TBuf8<SIZE_PNS_PIPE_CREATE_REQ> data;
       
   527 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   528     TBuf8<SIZE_CM_PIPE_CREATE_REQ> data;
       
   529 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   530     // set message data
       
   531     data.Append( aPipeState );
       
   532     data.Append( KGpdsPadding );
       
   533     data.Append( KFirstPepDevice );
       
   534     data.Append( aFirstPepObject );
       
   535     data.Append( KFirstPepType );
       
   536     data.Append( KGpdsPadding );
       
   537     data.Append( iSecondPepDeviceId );
       
   538     data.Append( iSecondPepObjectId );
       
   539     data.Append( KSecondPepType );
       
   540     data.Append( KGpdsPadding );
       
   541 
       
   542     // Sending message to phonet
       
   543     return iPhoNetSender->Send(
       
   544         PN_PIPE, aTransId, PNS_PIPE_CREATE_REQ, data );
       
   545     }
       
   546 
       
   547 // ----------------------------------------------------------------------------
       
   548 // CMmPipeControl::PnsPipeCreateResp
       
   549 // Breaks a PNS_PIPE_CREATE_RESP ISI-message.
       
   550 // ----------------------------------------------------------------------------
       
   551 //
       
   552 void CMmPipeControl::PnsPipeCreateResp(
       
   553     const TIsiReceiveC& aIsiMessage )
       
   554     {
       
   555 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeCreateResp");
       
   556 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPECREATERESP, "CMmPipeControl::PnsPipeCreateResp" );
       
   557 
       
   558     // Get transaction Id
       
   559     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
       
   560 
       
   561     TInt ret = iContextList->PipeCreateTransIdOkByTransId( transId );
       
   562 
       
   563     if ( KErrNone == ret )
       
   564         {
       
   565 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   566         TUint8 pipeHandle( aIsiMessage.Get8bit(
       
   567             ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_PIPEHANDLE ) );
       
   568         TUint8 errorCode( aIsiMessage.Get8bit(
       
   569             ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_ERRORCODE ) );
       
   570 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   571         TUint8 pipeHandle( aIsiMessage.Get8bit(
       
   572             ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_PIPEHANDLE ) );
       
   573         TUint8 errorCode( aIsiMessage.Get8bit(
       
   574             ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_ERRORCODE ) );
       
   575 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   576 
       
   577         TFLOGSTRING4("TSY: CMmPipeControl::PnsPipeCreateResp. TransactionId: %d, PipeHandle: %d, error code: %d", transId, pipeHandle, errorCode );
       
   578 OstTraceExt3( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPECREATERESP, "CMmPipeControl::PnsPipeCreateResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, pipeHandle, errorCode );
       
   579 
       
   580         // Check PIPE Error Code
       
   581         if ( PN_PIPE_ERR_GENERAL == errorCode )
       
   582             {
       
   583 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   584             TUint8 pep1ErrorCode( aIsiMessage.Get8bit(
       
   585                 ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_PEP1ERRORCODE ) );
       
   586             TUint8 pep2ErrorCode( aIsiMessage.Get8bit(
       
   587                 ISI_HEADER_SIZE + PNS_PIPE_CREATE_RESP_OFFSET_PEP2ERRORCODE ) );
       
   588 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   589             TUint8 pep1ErrorCode( aIsiMessage.Get8bit(
       
   590                 ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_PEP1ERRORCODE ) );
       
   591             TUint8 pep2ErrorCode( aIsiMessage.Get8bit(
       
   592                 ISI_HEADER_SIZE + CM_PIPE_CREATE_RESP_OFFSET_PEP2ERRORCODE ) );
       
   593 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   594              // Check PEP Error Codes
       
   595            if ( pep1ErrorCode == PN_PIPE_ERR_PEP_IN_USE ||
       
   596                  pep1ErrorCode == PN_PIPE_ERR_ALL_PIPES_IN_USE ||
       
   597                  pep2ErrorCode == PN_PIPE_ERR_PEP_IN_USE ||
       
   598                  pep2ErrorCode == PN_PIPE_ERR_ALL_PIPES_IN_USE )
       
   599                 {
       
   600 
       
   601                 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeCreateResp. ErrorCode changed to PN_PIPE_ERR_ALL_PIPES_IN_USE" );
       
   602 OstTrace0( TRACE_NORMAL, DUP2_CMMPIPECONTROL_PNSPIPECREATERESP, "CMmPipeControl::PnsPipeCreateResp, ErrorCode changed to PN_PIPE_ERR_ALL_PIPES_IN_USE" );
       
   603                 // PEP can't create more pipes (all pipes in use),
       
   604                 // error value is updated here
       
   605                 errorCode = PN_PIPE_ERR_ALL_PIPES_IN_USE;
       
   606                 }
       
   607             //no else
       
   608             }
       
   609         //no else
       
   610 
       
   611         iContextMessHandler->CompletePipeOperation(
       
   612             PNS_PIPE_CREATE_RESP,
       
   613             transId,
       
   614             pipeHandle,
       
   615             errorCode );
       
   616         }
       
   617     //no else
       
   618     }
       
   619 
       
   620 // ----------------------------------------------------------------------------
       
   621 // CMmPipeControl::PnsPipeEnableReq
       
   622 // Construct a PNS_PIPE_ENABLE_REQ ISI-message.
       
   623 // ----------------------------------------------------------------------------
       
   624 //
       
   625 TInt CMmPipeControl::PnsPipeEnableReq(
       
   626     const CMmDataPackage& aPackage ) const
       
   627     {
       
   628 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeEnableReq");
       
   629 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPEENABLEREQ, "CMmPipeControl::PnsPipeEnableReq" );
       
   630 
       
   631     TInfoName* contextName = NULL;
       
   632     aPackage.UnPackData( &contextName );
       
   633 
       
   634     TInt ret( KErrServerBusy );
       
   635 
       
   636     if( NULL != contextName )
       
   637         {
       
   638 
       
   639         TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeEnableReq - context name: %S", contextName);
       
   640 OstTraceExt1( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPEENABLEREQ, "CMmPipeControl::PnsPipeEnableReq;contextName=%S", *contextName );
       
   641 
       
   642         TUint8 pipehandle( iContextList->PipeHandleByContextName(contextName) );
       
   643 
       
   644         TUint8 traId( iContextList->ProxyIdByContextName( contextName ) );
       
   645 
       
   646         TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeEnableReq. PipeHandle: %d", pipehandle );
       
   647 OstTraceExt1( TRACE_NORMAL, DUP2_CMMPIPECONTROL_PNSPIPEENABLEREQ, "CMmPipeControl::PnsPipeEnableReq;pipehandle=%hhu", pipehandle );
       
   648 
       
   649         // Check if Pipe operation is not outstanding. IsOperationCalled is EFalse
       
   650         if ( !IsOperationCalled( pipehandle ) )
       
   651             {
       
   652             // Create buffer for isi msg data
       
   653 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   654             TBuf8<SIZE_PNS_PIPE_ENABLE_REQ> data;
       
   655 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   656             TBuf8<SIZE_CM_PIPE_ENABLE_REQ> data;
       
   657 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   658             data.Append( pipehandle );
       
   659             data.Append( KGpdsPadding );
       
   660 
       
   661             // Send Isi message via phonet
       
   662             ret = iPhoNetSender->Send(
       
   663                 PN_PIPE, traId, PNS_PIPE_ENABLE_REQ, data );
       
   664             }
       
   665         //no else
       
   666         }
       
   667     //no else
       
   668 
       
   669     return ret;
       
   670     }
       
   671 
       
   672 // ----------------------------------------------------------------------------
       
   673 // CMmPipeControl::PnsPipeEnableResp
       
   674 // Breaks a PNS_PIPE_ENABLE_RESP ISI-message.
       
   675 // ----------------------------------------------------------------------------
       
   676 //
       
   677 void CMmPipeControl::PnsPipeEnableResp(
       
   678     const TIsiReceiveC& aIsiMessage )
       
   679     {
       
   680 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeEnableResp");
       
   681 OstTrace0( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPEENABLERESP, "CMmPipeControl::PnsPipeEnableResp" );
       
   682     // Get Transaction Id from the ISI message
       
   683     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
       
   684 
       
   685     // pipe control handles only messages for NIF pipes
       
   686     // TODO: See TelAd-110
       
   687     TInt ret = iContextList->PipeCreateTransIdOkByTransId( transId );
       
   688 
       
   689     if ( KErrNone == ret )
       
   690         {
       
   691         // Get Pipehandle from the ISI message
       
   692         TUint8 pipeHandle( aIsiMessage.Get8bit(
       
   693 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   694             ISI_HEADER_SIZE + PNS_PIPE_ENABLE_RESP_OFFSET_PIPEHANDLE ) );
       
   695         // Get Errorcode from the ISI message
       
   696         TUint8 errorCode( aIsiMessage.Get8bit(
       
   697             ISI_HEADER_SIZE + PNS_PIPE_ENABLE_RESP_OFFSET_ERRORCODE ) );
       
   698 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   699             ISI_HEADER_SIZE + CM_PIPE_ENABLE_RESP_OFFSET_PIPEHANDLE ) );
       
   700         // Get Errorcode from the ISI message
       
   701         TUint8 errorCode( aIsiMessage.Get8bit(
       
   702             ISI_HEADER_SIZE + CM_PIPE_ENABLE_RESP_OFFSET_ERRORCODE ) );
       
   703 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   704 
       
   705 TFLOGSTRING4("TSY: CMmPipeControl::PnsPipeEnableResp - traId: %d, PipeHandle: %d, ErrorCode: %d", transId, pipeHandle, errorCode );
       
   706 OstTraceExt3( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPEENABLERESP, "CMmPipeControl::PnsPipeEnableResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, pipeHandle, errorCode );
       
   707 
       
   708         iContextMessHandler->CompletePipeOperation(
       
   709             PNS_PIPE_ENABLE_RESP,
       
   710             transId,
       
   711             pipeHandle,
       
   712             errorCode );
       
   713         }
       
   714     // no else
       
   715     }
       
   716 
       
   717 // ----------------------------------------------------------------------------
       
   718 // CMmPipeControl::PnsPipeResetReq
       
   719 // Construct a PNS_PIPE_RESET_REQ ISI-message.
       
   720 // ----------------------------------------------------------------------------
       
   721 //
       
   722 TInt CMmPipeControl::PnsPipeResetReq(
       
   723     const TUint8 aTransId,
       
   724     const TUint8 aPipeHandle,
       
   725     const TUint8 aStateAfterReset )
       
   726     {
       
   727 TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeResetReq. PipeHandle: %d", aPipeHandle );
       
   728 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPERESETREQ, "CMmPipeControl::PnsPipeResetReq;aPipeHandle=%hhu", aPipeHandle );
       
   729 
       
   730     // Set ret to KErrServerBusy
       
   731     TInt ret( KErrServerBusy );
       
   732 
       
   733     // Check if Pipe operation is not outstanding. IsOperationCalled is EFalse
       
   734     if ( !IsOperationCalled( aPipeHandle ) )
       
   735         {
       
   736         // Create buffer for isi msg data
       
   737 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   738         TBuf8<SIZE_PNS_PIPE_RESET_REQ> data;
       
   739 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   740         TBuf8<SIZE_CM_PIPE_RESET_REQ> data;
       
   741 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   742         data.Append( aPipeHandle );
       
   743         data.Append( aStateAfterReset );
       
   744 
       
   745         // Send Isi message via phonet
       
   746         ret = iPhoNetSender->Send(
       
   747             PN_PIPE, aTransId, PNS_PIPE_RESET_REQ, data );
       
   748 
       
   749         if ( KErrNone == ret )
       
   750             {
       
   751             SetPipeHandle( aPipeHandle );
       
   752             }
       
   753         //no else
       
   754         }
       
   755     //no else
       
   756 
       
   757     return ret;
       
   758     }
       
   759 
       
   760 // ----------------------------------------------------------------------------
       
   761 // CMmPipeControl::PnsPipeResetResp
       
   762 // Breaks a PNS_PIPE_RESET_RESP ISI-message.
       
   763 // ----------------------------------------------------------------------------
       
   764 //
       
   765 void CMmPipeControl::PnsPipeResetResp(
       
   766     const TIsiReceiveC& aIsiMessage )
       
   767     {
       
   768 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeResetResp");
       
   769 OstTrace0( TRACE_NORMAL, DUP2_CMMPIPECONTROL_PNSPIPERESETRESP, "CMmPipeControl::PnsPipeResetResp" );
       
   770     // Get Transaction Id from the ISI message
       
   771     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
       
   772 
       
   773     // pipe control handles only messages for NIF pipes
       
   774     // TODO: See TelAd-110
       
   775     TInt ret = iContextList->PipeCreateTransIdOkByTransId( transId );
       
   776 
       
   777     if ( KErrNone == ret )
       
   778         {
       
   779         // Get Pipehandle from the ISI message
       
   780         TUint8 pipeHandle( aIsiMessage.Get8bit(
       
   781 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   782             ISI_HEADER_SIZE + PNS_PIPE_RESET_RESP_OFFSET_PIPEHANDLE ) );
       
   783 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   784             ISI_HEADER_SIZE + CM_PIPE_RESET_RESP_OFFSET_PIPEHANDLE ) );
       
   785 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   786 
       
   787 TFLOGSTRING3("TSY: CMmPipeControl::PnsPipeResetResp - traId: %d, pipe handle: %d", transId, pipeHandle);
       
   788 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPERESETRESP, "CMmPipeControl::PnsPipeResetResp;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle );
       
   789 
       
   790         // Call TransactionId
       
   791         TUint8 removeTransId( TransactionId( pipeHandle ) );
       
   792         // Call ResetPipeHandle -method from CMmPipeControl
       
   793         ResetPipeHandle( pipeHandle );
       
   794 
       
   795         if ( KUnknownTransID != removeTransId )
       
   796             {
       
   797             // Context has called the PnsPipeRemoveReq that was buffered
       
   798             PnsPipeRemoveReq( removeTransId, pipeHandle );
       
   799             }
       
   800         //no else
       
   801 
       
   802         // Check req is valid by Transaction id
       
   803         TInt ret( iContextList->CheckAndResetPipeResetTraId( transId ) );
       
   804 
       
   805         if ( KErrNone == ret )
       
   806             {
       
   807             TUint8 errorCode( aIsiMessage.Get8bit(
       
   808 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   809                 ISI_HEADER_SIZE + PNS_PIPE_RESET_RESP_OFFSET_ERRORCODE ) );
       
   810 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   811                 ISI_HEADER_SIZE + CM_PIPE_RESET_RESP_OFFSET_ERRORCODE ) );
       
   812 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   813 
       
   814 TFLOGSTRING3("TSY: CMmPipeControl::PnsPipeResetResp. PipeHandle: %d ErrorCode: %d", pipeHandle, errorCode );
       
   815 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPERESETRESP, "CMmPipeControl::PnsPipeResetResp;pipeHandle=%hhu;errorCode=%hhu", pipeHandle, errorCode );
       
   816             iContextMessHandler->CompletePipeOperation(
       
   817                 PNS_PIPE_RESET_RESP,
       
   818                 transId,
       
   819                 pipeHandle,
       
   820                 errorCode );
       
   821             }
       
   822         //no else
       
   823         }
       
   824     // no else
       
   825     }
       
   826 
       
   827 // ----------------------------------------------------------------------------
       
   828 // CMmPipeControl::PnsPipeRemoveReq
       
   829 // Construct a PNS_PIPE_REMOVE_REQ ISI-message.
       
   830 // ----------------------------------------------------------------------------
       
   831 //
       
   832 TInt CMmPipeControl::PnsPipeRemoveReq(
       
   833     const TUint8 aTransId,
       
   834     const TUint8 aPipeHandle )
       
   835     {
       
   836 TFLOGSTRING2("TSY: CMmPipeControl::PnsPipeRemoveReq. PipeHandle: %d", aPipeHandle );
       
   837 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPEREMOVEREQ, "CMmPipeControl::PnsPipeRemoveReq;aPipeHandle=%hhu", aPipeHandle );
       
   838 
       
   839     // Set ret to KErrNone
       
   840     TInt ret( KErrNone );
       
   841 
       
   842     // Check if Pipe operation is not outstanding. IsOperationCalled is EFalse
       
   843     if ( !IsOperationCalled( aPipeHandle ) )
       
   844         {
       
   845         // Create buffer for isi msg data
       
   846 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   847         TBuf8<SIZE_PNS_PIPE_REMOVE_REQ> data;
       
   848 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   849         TBuf8<SIZE_CM_PIPE_REMOVE_REQ> data;
       
   850 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   851         data.Append( aPipeHandle );
       
   852         data.Append( KGpdsPadding );
       
   853 
       
   854         // Send Isi message via phonet
       
   855         ret = iPhoNetSender->Send(
       
   856             PN_PIPE,
       
   857             aTransId,
       
   858             PNS_PIPE_REMOVE_REQ,
       
   859             data );
       
   860 
       
   861         if ( KErrNone == ret )
       
   862             {
       
   863             SetPipeHandle( aPipeHandle );
       
   864             }
       
   865         //no else
       
   866         }
       
   867     else
       
   868         {
       
   869         // Remove req is buffered by transaction id
       
   870         SetTransactionId( aPipeHandle, aTransId );
       
   871         }
       
   872 
       
   873     return ret;
       
   874     }
       
   875 
       
   876 // ----------------------------------------------------------------------------
       
   877 // CMmPipeControl::PnsPipeRemoveResp
       
   878 // Breaks a PNS_PIPE_REMOVE_RESP ISI-message.
       
   879 // ----------------------------------------------------------------------------
       
   880 //
       
   881 void CMmPipeControl::PnsPipeRemoveResp(
       
   882     const TIsiReceiveC& aIsiMessage )
       
   883     {
       
   884 TFLOGSTRING("TSY: CMmPipeControl::PnsPipeRemoveResp");
       
   885 OstTrace0( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPIPEREMOVERESP, "CMmPipeControl::PnsPipeRemoveResp" );
       
   886     // Get Transaction Id from the ISI message
       
   887     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
       
   888 
       
   889     // pipe control handles only messages for NIF pipes
       
   890     // TODO: See TelAd-110
       
   891     TInt ret = iContextList->PipeCreateTransIdOkByTransId( transId );
       
   892 
       
   893     if ( KErrNone == ret )
       
   894         {
       
   895         // Get Pipehandle from the ISI message
       
   896 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   897         TUint8 pipeHandle( aIsiMessage.Get8bit(
       
   898             ISI_HEADER_SIZE + PNS_PIPE_REMOVE_RESP_OFFSET_PIPEHANDLE ) );
       
   899         // Get Errorcode from the ISI message
       
   900         TUint8 errorCode( aIsiMessage.Get8bit(
       
   901             ISI_HEADER_SIZE + PNS_PIPE_REMOVE_RESP_OFFSET_ERRORCODE ) );
       
   902 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   903         TUint8 pipeHandle( aIsiMessage.Get8bit(
       
   904             ISI_HEADER_SIZE + CM_PIPE_REMOVE_RESP_OFFSET_PIPEHANDLE ) );
       
   905         // Get Errorcode from the ISI message
       
   906         TUint8 errorCode( aIsiMessage.Get8bit(
       
   907             ISI_HEADER_SIZE + CM_PIPE_REMOVE_RESP_OFFSET_ERRORCODE ) );
       
   908 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   909 
       
   910         TFLOGSTRING4("TSY: CMmPipeControl::PnsPipeRemoveResp - traId: %d, PipeHandle: %d, ErrorCode: %d", transId, pipeHandle, errorCode );
       
   911     OstTraceExt3( TRACE_NORMAL, CMMPIPECONTROL_PNSPIPEREMOVERESP, "CMmPipeControl::PnsPipeRemoveResp;transId=%hhu;pipeHandle=%hhu;errorCode=%hhu", transId, pipeHandle, errorCode );
       
   912 
       
   913         // Call ResetPipeHandle -method from CMmPipeControl
       
   914         ResetPipeHandle( pipeHandle );
       
   915 
       
   916         iContextMessHandler->CompletePipeOperation(
       
   917             PNS_PIPE_REMOVE_RESP,
       
   918             transId,
       
   919             pipeHandle,
       
   920             errorCode );
       
   921         }
       
   922     // no else
       
   923     }
       
   924 
       
   925 #ifdef DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
       
   926 // ----------------------------------------------------------------------------
       
   927 // CMmPipeControl::PnsPepConnectReq
       
   928 // Breaks a PNS_PEP_CONNECT_REQ ISI-message.
       
   929 // ----------------------------------------------------------------------------
       
   930 //
       
   931 void CMmPipeControl::PnsPepConnectReq(
       
   932     const TIsiReceiveC& aIsiMessage )
       
   933     {
       
   934 
       
   935     TFLOGSTRING("TSY: CMmPipeControl::PnsPepConnectReq");
       
   936 OstTrace0( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPCONNECTREQ, "CMmPipeControl::PnsPepConnectReq" );
       
   937 
       
   938     // Get Transaction Id from the ISI message
       
   939     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
       
   940     // Get Pipehandle from the ISI message
       
   941 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   942     TUint8 pipeHandle( aIsiMessage.Get8bit(
       
   943         ISI_HEADER_SIZE + PNS_PEP_CONNECT_REQ_OFFSET_PIPEHANDLE ) );
       
   944 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   945     TUint8 pipeHandle( aIsiMessage.Get8bit(
       
   946         ISI_HEADER_SIZE + CM_PEP_CONNECT_REQ_OFFSET_PIPEHANDLE ) );
       
   947 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   948 
       
   949     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepConnectReq - traId: %d, PipeHandle: %d", transId, pipeHandle );
       
   950 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPCONNECTREQ, "CMmPipeControl::PnsPepConnectReq;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle );
       
   951 
       
   952     PnsPepConnectResp( transId, pipeHandle );
       
   953     }
       
   954 
       
   955 // ----------------------------------------------------------------------------
       
   956 // CMmPipeControl::PnsPepConnectResp
       
   957 // Construct a PNS_PEP_CONNECT_RESP ISI-message.
       
   958 // ----------------------------------------------------------------------------
       
   959 //
       
   960 void CMmPipeControl::PnsPepConnectResp(
       
   961     const TUint8 aTransId,
       
   962     const TUint8 aPipeHandle )
       
   963     {
       
   964 
       
   965     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepConnectResp - traId: %d, pipe handle: %d", aTransId, aPipeHandle);
       
   966 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPCONNECTRESP, "CMmPipeControl::PnsPepConnectResp;aTransId=%hhu;aPipeHandle=%hhu", aTransId, aPipeHandle );
       
   967 
       
   968     // Create buffer for isi msg data
       
   969 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
   970     TBuf8<SIZE_PNS_PEP_CONNECT_RESP> data;
       
   971 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   972     TBuf8<SIZE_CM_PEP_CONNECT_RESP> data;
       
   973 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
   974    // Set message data
       
   975     data.Append( aPipeHandle );
       
   976     data.Append( PN_PIPE_NO_ERROR );
       
   977 
       
   978     // Send Isi message via phonet
       
   979     TInt ret( iPhoNetSender->Send(
       
   980         PN_PIPE,
       
   981         aTransId,
       
   982         PNS_PEP_CONNECT_RESP,
       
   983         data ) );
       
   984 
       
   985     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepConnectResp. PipeHandle: %d RetFromPhonetSender: %d", aPipeHandle, ret );
       
   986 
       
   987 OstTraceExt2( TRACE_NORMAL, DUP2_CMMPIPECONTROL_PNSPEPCONNECTRESP, "CMmPipeControl::PnsPepConnectResp;aPipeHandle=%hhu;RetFromPhonetSender=%d", aPipeHandle, ret );
       
   988     }
       
   989 
       
   990 // ----------------------------------------------------------------------------
       
   991 // CMmPipeControl::PnsPepDisconnectReq
       
   992 // Breaks a PNS_PEP_DISCONNECT_REQ ISI-message.
       
   993 // ----------------------------------------------------------------------------
       
   994 //
       
   995 void CMmPipeControl::PnsPepDisconnectReq(
       
   996     const TIsiReceiveC& aIsiMessage )
       
   997     {
       
   998     // Get Transaction Id from the ISI message
       
   999     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
       
  1000     // Get Pipehandle from the ISI message
       
  1001 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  1002     TUint8 pipeHandle( aIsiMessage.Get8bit(
       
  1003         ISI_HEADER_SIZE + PNS_PEP_DISCONNECT_REQ_OFFSET_PIPEHANDLE ) );
       
  1004 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1005     TUint8 pipeHandle( aIsiMessage.Get8bit(
       
  1006         ISI_HEADER_SIZE + CM_PEP_DISCONNECT_REQ_OFFSET_PIPEHANDLE ) );
       
  1007 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1008 
       
  1009     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepDisconnectReq - traId: %d, PipeHandle: %d", transId, pipeHandle );
       
  1010 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPDISCONNECTREQ, "CMmPipeControl::PnsPepDisconnectReq;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle );
       
  1011 
       
  1012     PnsPepDisconnectResp( transId, pipeHandle );
       
  1013     }
       
  1014 
       
  1015 // ----------------------------------------------------------------------------
       
  1016 // CMmPipeControl::PnsPepDisconnectResp
       
  1017 // Construct a PNS_PEP_DISCONNECT_RESP ISI-message.
       
  1018 // ----------------------------------------------------------------------------
       
  1019 //
       
  1020 void CMmPipeControl::PnsPepDisconnectResp(
       
  1021     const TUint8 aTransId,
       
  1022     const TUint8 aPipeHandle )
       
  1023     {
       
  1024 
       
  1025     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepDisconnectResp - traId: %d, pipe handle: %d", aTransId, aPipeHandle);
       
  1026 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPDISCONNECTRESP, "CMmPipeControl::PnsPepDisconnectResp;aTransId=%hhu;aPipeHandle=%hhu", aTransId, aPipeHandle );
       
  1027 
       
  1028     //Create buffer for isi msg data
       
  1029 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  1030     TBuf8<SIZE_PNS_PEP_DISCONNECT_RESP> data;
       
  1031 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1032     TBuf8<SIZE_CM_PEP_DISCONNECT_RESP> data;
       
  1033 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1034     // Set message data
       
  1035     data.Append( aPipeHandle );
       
  1036     data.Append( PN_PIPE_NO_ERROR );
       
  1037 
       
  1038     // Send Isi message via phonet
       
  1039     TInt ret( iPhoNetSender->Send(
       
  1040         PN_PIPE, aTransId, PNS_PEP_DISCONNECT_RESP, data ) );
       
  1041 
       
  1042     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepDisconnectResp. PipeHandle: %d RetFromPhonetSender: %d", aPipeHandle, ret );
       
  1043 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPDISCONNECTRESP, "CMmPipeControl::PnsPepDisconnectResp;aPipeHandle=%hhu;RetFromPhonetSender=%d", aPipeHandle, ret );
       
  1044     }
       
  1045 
       
  1046 // ----------------------------------------------------------------------------
       
  1047 // CMmPipeControl::PnsPepResetReq
       
  1048 // Breaks a CM_PEP_RESET_REQ ISI-message.
       
  1049 // ----------------------------------------------------------------------------
       
  1050 //
       
  1051 void CMmPipeControl::PnsPepResetReq(
       
  1052     const TIsiReceiveC& aIsiMessage )
       
  1053     {
       
  1054     // Get Transaction Id from the ISI message
       
  1055     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
       
  1056     // Get Pipehandle from the ISI message
       
  1057 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  1058     TUint8 pipeHandle( aIsiMessage.Get8bit(
       
  1059         ISI_HEADER_SIZE + PNS_PEP_RESET_REQ_OFFSET_PIPEHANDLE ) );
       
  1060 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1061     TUint8 pipeHandle( aIsiMessage.Get8bit(
       
  1062         ISI_HEADER_SIZE + CM_PEP_RESET_REQ_OFFSET_PIPEHANDLE ) );
       
  1063 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1064 
       
  1065     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepResetReq - traId: %d, PipeHandle: %d", transId, pipeHandle );
       
  1066 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPRESETREQ, "CMmPipeControl::PnsPepResetReq;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle );
       
  1067 
       
  1068     PnsPepResetResp( transId, pipeHandle );
       
  1069     }
       
  1070 
       
  1071 // ----------------------------------------------------------------------------
       
  1072 // CMmPipeControl::PnsPepResetResp
       
  1073 // Construct a PNS_PEP_RESET_RESP ISI-message.
       
  1074 // ----------------------------------------------------------------------------
       
  1075 //
       
  1076 void CMmPipeControl::PnsPepResetResp(
       
  1077     const TUint8 aTransId,
       
  1078     const TUint8 aPipeHandle )
       
  1079     {
       
  1080 
       
  1081     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepResetResp - traId: %d, pipe handle: %d", aTransId, aPipeHandle);
       
  1082 OstTraceExt1( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPRESETRESP, "CMmPipeControl::PnsPepResetResp;aTransId=%hhu", aTransId );
       
  1083 
       
  1084     // Create buffer for isi msg data
       
  1085 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  1086     TBuf8<SIZE_PNS_PEP_RESET_RESP> data;
       
  1087 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1088     TBuf8<SIZE_CM_PEP_RESET_RESP> data;
       
  1089 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1090     // Set message data
       
  1091     data.Append( aPipeHandle );
       
  1092     data.Append( PN_PIPE_NO_ERROR );
       
  1093 
       
  1094     // Send Isi message via phonet
       
  1095     TInt ret( iPhoNetSender->Send(
       
  1096         PN_PIPE, aTransId, PNS_PEP_RESET_RESP, data ) );
       
  1097 
       
  1098     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepResetResp. PipeHandle: %d RetFromPhonetSender: %d", aPipeHandle, ret );
       
  1099 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPRESETRESP, "CMmPipeControl::PnsPepResetResp;aPipeHandle=%hhu;ret=%d", aPipeHandle, ret );
       
  1100     }
       
  1101 
       
  1102 // ----------------------------------------------------------------------------
       
  1103 // CMmPipeControl::PnsPepEnableReq
       
  1104 // Breaks a PNS_PEP_ENABLE_REQ ISI-message.
       
  1105 // ----------------------------------------------------------------------------
       
  1106 //
       
  1107 void CMmPipeControl::PnsPepEnableReq(
       
  1108     const TIsiReceiveC& aIsiMessage )
       
  1109     {
       
  1110 
       
  1111     // Get Transaction Id from the ISI message
       
  1112     TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
       
  1113     // Get Pipehandle from the ISI message
       
  1114     TUint8 pipeHandle( aIsiMessage.Get8bit(
       
  1115 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  1116         ISI_HEADER_SIZE + PNS_PEP_ENABLE_REQ_OFFSET_PIPEHANDLE ) );
       
  1117 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1118         ISI_HEADER_SIZE + CM_PEP_ENABLE_REQ_OFFSET_PIPEHANDLE ) );
       
  1119 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1120 
       
  1121     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepEnableReq - traId: %d, PipeHandle: %d", transId, pipeHandle );
       
  1122 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPENABLEREQ, "CMmPipeControl::PnsPepEnableReq;transId=%hhu;pipeHandle=%hhu", transId, pipeHandle );
       
  1123 
       
  1124     PnsPepEnableResp( transId, pipeHandle );
       
  1125     }
       
  1126 
       
  1127 // ----------------------------------------------------------------------------
       
  1128 // CMmPipeControl::PnsPepEnableResp
       
  1129 // Construct a PNS_PEP_ENABLE_RESP ISI-message.
       
  1130 // ----------------------------------------------------------------------------
       
  1131 //
       
  1132 void CMmPipeControl::PnsPepEnableResp(
       
  1133     const TUint8 aTransId,
       
  1134     const TUint8 aPipeHandle )
       
  1135     {
       
  1136 
       
  1137     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepEnableResp - traId: %d, pipe handle: %d", aTransId, aPipeHandle);
       
  1138 OstTraceExt2( TRACE_NORMAL, CMMPIPECONTROL_PNSPEPENABLERESP, "CMmPipeControl::PnsPepEnableResp;aTransId=%hhu;aPipeHandle=%hhu", aTransId, aPipeHandle );
       
  1139 
       
  1140     // Create buffer for isi msg data
       
  1141 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
       
  1142     TBuf8<SIZE_PNS_PEP_ENABLE_RESP> data;
       
  1143 #else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1144     TBuf8<SIZE_CM_PEP_ENABLE_RESP> data;
       
  1145 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
       
  1146     // Set message data
       
  1147     data.Append( aPipeHandle );
       
  1148     data.Append( PN_PIPE_NO_ERROR );
       
  1149 
       
  1150     // Send Isi message via phonet
       
  1151     TInt ret( iPhoNetSender->Send(
       
  1152         PN_PIPE,
       
  1153         aTransId,
       
  1154         PNS_PEP_ENABLE_RESP,
       
  1155         data ) );
       
  1156 
       
  1157     TFLOGSTRING3("TSY: CMmPipeControl::PnsPepEnableResp. PipeHandle: %d RetFromPhonetSender: %d", aPipeHandle, ret );
       
  1158 OstTraceExt2( TRACE_NORMAL, DUP1_CMMPIPECONTROL_PNSPEPENABLERESP, "CMmPipeControl::PnsPepEnableResp;aPipeHandle=%hhu;RetFromPhonetSender=%d", aPipeHandle, ret );
       
  1159     }
       
  1160 
       
  1161 #endif // DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
       
  1162 
       
  1163 // ================= OTHER EXPORTED FUNCTIONS ===============================
       
  1164 
       
  1165     //None
       
  1166 
       
  1167 //  End of File