adaptationlayer/bcaiscadapter/bcatoisc_dll/src/bcatoisc.cpp
author mikaruus
Tue, 19 Oct 2010 13:16:20 +0300
changeset 9 8486d82aef45
parent 0 63b37f68c1ce
permissions -rw-r--r--
modemadaptation release 2010wk40
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     1
/*
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     3
* All rights reserved.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     8
*
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
     9
* Initial Contributors:
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    11
*
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    12
* Contributors:
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    13
* 
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    14
* Description: 
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    15
*
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    16
*/
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    17
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    18
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    19
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    20
#include "bcatoisc.h"
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    21
#include "bcatoisctrace.h"
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    22
#include "iscdefinitions.h"
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    23
#include <cdbcols.h>
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    24
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    25
#include <nsisi.h>
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    26
#include <pipeisi.h>
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    27
#include <pn_const.h>
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    28
#include <iscnokiadefinitions.h>
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    29
#include "pep_bca_types.h"
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    30
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    31
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    32
const TUint8 KDataLength = 7;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    33
const TUint8 KStatusIndex = 0;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    34
const TUint8 KDevIdIndex = 5;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    35
const TUint8 KObjIdIndex = 6;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    36
const TUint8 KPadding = 0;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    37
const TUint KDefaultReceiveBufferSize = 2048;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    38
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    39
using namespace BasebandChannelAdaptation;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    40
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    41
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    42
* Utility function to complete a pending request and NULL request pointer.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    43
*/   
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    44
 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    45
static void CompleteRequest(TRequestStatus* &aReqStatus, const TInt aError)
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    46
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    47
    if(( aReqStatus ) &&
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    48
       ( *aReqStatus == KRequestPending ))
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    49
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    50
        // Only realy need to trace if we actually complete the request.
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    51
        C_TRACE( (_T("CompleteRequest completing client request with aError %d ->"), aError ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    52
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    53
        //Complete clients request
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    54
        User::RequestComplete( aReqStatus, aError );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    55
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    56
        aReqStatus = NULL;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    57
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    58
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    59
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    60
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    61
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    62
* Default constructor to create a CNotifyFlowControlMonitor instance.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    63
*/    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    64
CNotifyFlowControlMonitor::CNotifyFlowControlMonitor(RIscApi& aIscApi)
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    65
    :CActive(EPriorityHigh),
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    66
    iIscApi(aIscApi),
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    67
    iWriteStatus(NULL)
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    68
    {
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    69
    C_TRACE( (_T("CNotifyFlowControlMonitor::CNotifyFlowControlMonitor RIscApi 0x%x ->"), &aIscApi ) );
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    70
    CActiveScheduler::Add(this);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    71
    C_TRACE( (_T("CNotifyFlowControlMonitor::CNotifyFlowControlMonitor <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    72
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    73
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    74
void CNotifyFlowControlMonitor::NotifyFlowControlStatus()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    75
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    76
    C_TRACE( (_T("CNotifyFlowControlMonitor::NotifyFlowControlStatus() ->") ) );
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    77
    
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    78
    ASSERT(!IsActive());
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    79
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    80
    iFlowControlValue = iIscApi.FlowControlStatus();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    81
      
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    82
    C_TRACE( (_T("CNotifyFlowControlMonitor::NotifyFlowControlStatus initial iFlowControlValue %d ->"), iFlowControlValue ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    83
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    84
    iIscApi.NotifyFlowControl(iStatus, iFlowControlValue);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    85
    SetActive();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    86
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    87
    C_TRACE( (_T("CNotifyFlowControlMonitor::NotifyFlowControlStatus() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    88
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    89
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    90
void CNotifyFlowControlMonitor::RequestFlowcontrolChange( TRequestStatus& aStatus )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    91
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    92
    C_TRACE( (_T("CNotifyFlowControlMonitor::RequestFlowcontrolChange ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    93
    iWriteStatus = &aStatus;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    94
    *iWriteStatus = KRequestPending;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    95
    C_TRACE( (_T("CNotifyFlowControlMonitor::RequestFlowcontrolChange <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    96
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
    97
    
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    98
void CNotifyFlowControlMonitor::CompleteFlowcontrolChangeWithCancel()
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
    99
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   100
    C_TRACE( (_T("CNotifyFlowControlMonitor::CompleteFlowcontrolChangeWithCancel() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   101
    // If pending request, complete as cancelled
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   102
    CompleteRequest(iWriteStatus, KErrCancel);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   103
    C_TRACE( (_T("CNotifyFlowControlMonitor::CompleteFlowcontrolChangeWithCancel() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   104
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   105
    
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   106
void CNotifyFlowControlMonitor::RunL()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   107
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   108
    C_TRACE( (_T("CNotifyFlowControlMonitor::RunL() iStatus %d ->"), iStatus.Int() ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   109
    
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   110
    ASSERT( iStatus.Int() == KErrNone);
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   111
    
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   112
    iFlowControlValue = iIscApi.FlowControlStatus();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   113
      
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   114
    C_TRACE( (_T("CNotifyFlowControlMonitor::RunL flow control Value has changed and is now: (%d)"), iFlowControlValue ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   115
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   116
    if( iFlowControlValue == EIscFlowControlOff)
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   117
        {
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   118
        // If pending request, complete it as flow control is now OFF
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   119
        CompleteRequest(iWriteStatus,KErrNone);
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   120
        }
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   121
    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   122
    //Check for further flow control status changes
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   123
    iIscApi.NotifyFlowControl(iStatus, iFlowControlValue);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   124
    SetActive();
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   125
    C_TRACE( (_T("CNotifyFlowControlMonitor::RunL() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   126
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   127
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   128
TInt CNotifyFlowControlMonitor::GetFlowControlState()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   129
    {
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   130
    C_TRACE( (_T("CNotifyFlowControlMonitor::GetFlowControlState() flowcontrol value %d <->"), iFlowControlValue ) );
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   131
      return iFlowControlValue;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   132
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   133
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   134
void CNotifyFlowControlMonitor::DoCancel()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   135
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   136
    C_TRACE( (_T("CNotifyFlowControlMonitor::DoCancel() ->") ) );
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   137
    // If pending request, complete it as cancelled
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   138
    CompleteRequest(iWriteStatus, KErrCancel);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   139
    C_TRACE( (_T("CNotifyFlowControlMonitor::DoCancel() req is completed") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   140
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   141
    iIscApi.NotifyFlowControlCancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   142
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   143
    C_TRACE( (_T("CNotifyFlowControlMonitor::DoCancel() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   144
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   145
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   146
CNotifyFlowControlMonitor::~CNotifyFlowControlMonitor()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   147
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   148
    C_TRACE( (_T("CNotifyFlowControlMonitor::~CNotifyFlowControlMonitor() ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   149
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   150
    Cancel();
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   151
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   152
    C_TRACE( (_T("CNotifyFlowControlMonitor::~CNotifyFlowControlMonitor() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   153
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   154
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   155
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   156
CNotifyWriteStatusMonitor::CNotifyWriteStatusMonitor( CBcaToIsc& aUser, RIscApi& aIscApi )
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   157
    :CActive(EPriorityStandard),
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   158
    iUser(aUser),
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   159
    iIscApi(aIscApi)
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   160
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   161
    C_TRACE( (_T("CNotifyWriteStatusMonitor::CNotifyWriteStatusMonitor ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   162
    CActiveScheduler::Add(this);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   163
    C_TRACE( (_T("CNotifyWriteStatusMonitor::CNotifyWriteStatusMonitor <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   164
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   165
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   166
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   167
void CNotifyWriteStatusMonitor::Write( TRequestStatus& aStatus, const TDesC8& aBuf )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   168
    {
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   169
    C_TRACE( (_T("CNotifyWriteStatusMonitor::Write ->") ) );
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   170
    iBuf = &aBuf;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   171
    iClientStatus = &aStatus;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   172
    *iClientStatus = KRequestPending;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   173
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   174
    if( iUser.iFlowControlMonitor->GetFlowControlState() == EIscFlowControlOff )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   175
        {
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   176
        SendAndComplete(KErrNone);             
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   177
        }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   178
    else  //flow control on
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   179
        {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   180
        iUser.iFlowControlMonitor->RequestFlowcontrolChange( iStatus );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   181
        SetActive();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   182
        }
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   183
    C_TRACE( (_T("CNotifyWriteStatusMonitor::Write <-") ) );
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   184
    }
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   185
    
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   186
void CNotifyWriteStatusMonitor::RunL()
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   187
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   188
    C_TRACE( (_T("CNotifyWriteStatusMonitor::RunL() iStatus %d ->"), iStatus.Int() ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   189
// KARI ei kutsu IASC apin data sendiä jos erksa OK?    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   190
    SendAndComplete(iStatus.Int());
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   191
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   192
    C_TRACE( (_T("CNotifyWriteStatusMonitor::RunL() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   193
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   194
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   195
void CNotifyWriteStatusMonitor::SendAndComplete(TInt aError)
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   196
    {
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   197
    C_TRACE( (_T("CNotifyWriteStatusMonitor::SendAndComplete() ->")));
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   198
    
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   199
    // We may have had the request cancelled, in which case do not send the write data
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   200
    if (aError == KErrNone)
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   201
        {    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   202
        C_TRACE( (_T("CNotifyWriteStatusMonitor::SendAndComplete() iIscApi.DataSend ")));
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   203
        aError = iIscApi.DataSend( *iBuf );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   204
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   205
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   206
    // If pending request, complete it as specified by the error status
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   207
    // This could be OK or canncelled
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   208
    CompleteRequest(iClientStatus, aError);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   209
    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   210
    C_TRACE( (_T("CNotifyWriteStatusMonitor::SendAndComplete() <-") ) );
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   211
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   212
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   213
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   214
void CNotifyWriteStatusMonitor::DoCancel()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   215
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   216
    C_TRACE( (_T("CNotifyWriteStatusMonitor::DoCancel() ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   217
    
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   218
    iUser.iFlowControlMonitor->CompleteFlowcontrolChangeWithCancel();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   219
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   220
    // If pending request, complete it as cancelled
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   221
    CompleteRequest(iClientStatus, KErrCancel);
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   222
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   223
    C_TRACE( (_T("CNotifyWriteStatusMonitor::DoCancel() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   224
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   225
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   226
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   227
CNotifyWriteStatusMonitor::~CNotifyWriteStatusMonitor()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   228
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   229
    C_TRACE( (_T("CNotifyWriteStatusMonitor::~CNotifyWriteStatusMonitor() ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   230
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   231
    Cancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   232
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   233
    C_TRACE( (_T("CNotifyWriteStatusMonitor::~CNotifyWriteStatusMonitor() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   234
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   235
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   236
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   237
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   238
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   239
* Default constructor to create a CBcaToIsc instance.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   240
*/
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   241
CBcaToIsc::CBcaToIsc() : 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   242
    CActive( EPriorityStandard ),
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   243
    iMessageBufferPtr( 0,0 ),
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   244
    iReadLength(0), 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   245
    iChannelNumber( 0xffff )
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   246
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   247
    C_TRACE( (_T("CBcaToIsc::CBcaToIsc() ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   248
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   249
    C_TRACE( (_T("CBcaToIsc::CBcaToIsc() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   250
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   251
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   252
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   253
2nd phase of construction: allocates member objects 
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   254
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   255
@leave when members cannot be constructed. */
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   256
void CBcaToIsc::ConstructL()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   257
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   258
    C_TRACE( (_T("CBcaToIsc::ConstructL() ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   259
    __ASSERT_DEBUG(!iFlowControlMonitor, User::Panic(_L("BcaToIsc.dll"), EMonitorAlreadyExists));
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   260
    __ASSERT_DEBUG(!iWriteStatusMonitor, User::Panic(_L("BcaToIsc.dll"), EMonitorAlreadyExists));
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   261
    iFlowControlMonitor = new (ELeave)CNotifyFlowControlMonitor(iIscApi);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   262
    iWriteStatusMonitor = new (ELeave)CNotifyWriteStatusMonitor(*this, iIscApi);
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   263
    iReceivedMessageBuffer = HBufC8::NewL(KDefaultReceiveBufferSize);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   264
    iMessageBufferPtr.Set( iReceivedMessageBuffer->Des() );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   265
    iMessageBufferPtr.FillZ();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   266
    iChannelList.Append( EIscNokiaNifPep5 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   267
    iChannelList.Append( EIscNokiaNifPep6 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   268
    iChannelList.Append( EIscNokiaNifPep7 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   269
    iChannelList.Append( EIscNokiaNifPep8 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   270
    CActiveScheduler::Add( this );
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   271
    C_TRACE( (_T("CBcaToIsc::ConstructL() this 0x%x <-"), this ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   272
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   273
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   274
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   275
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   276
* Destructor 
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   277
*/    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   278
CBcaToIsc::~CBcaToIsc()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   279
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   280
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   281
    C_TRACE( (_T("CBcaToIsc::~CBcaToIsc() ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   282
    if( iFlowControlMonitor )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   283
        {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   284
        delete iFlowControlMonitor;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   285
        }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   286
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   287
    if( iWriteStatusMonitor )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   288
        {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   289
        delete iWriteStatusMonitor;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   290
        }
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   291
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   292
    if( iReceivedMessageBuffer )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   293
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   294
        delete iReceivedMessageBuffer;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   295
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   296
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   297
    iClientShutdownStatus = NULL;
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   298
    iClientOpenStatus = NULL;
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   299
    C_TRACE( (_T("CBcaToIsc::~CBcaToIsc() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   300
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   301
    }
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   302
// remove loan / returnloan deadcode from lower layers
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   303
/** This method deletes the BCA itself.*/
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   304
void CBcaToIsc::Release()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   305
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   306
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   307
    C_TRACE( (_T("CBcaToIsc::Release() this 0x%x ->"), this ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   308
    delete this;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   309
    C_TRACE( (_T("CBcaToIsc::Release() this 0x%x <-"), this ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   310
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   311
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   312
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   313
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   314
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   315
* Informs that the BCA is required by the client(for instance, Raw IP NIF). 
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   316
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   317
* @param aStatus complete status, KErrNone if successful, error code otherwise.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   318
* @param aChannelId comm port name.
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   319
*/
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   320
void CBcaToIsc::Open(TRequestStatus& aStatus, const TDesC& aChannelId)
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   321
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   322
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   323
    C_TRACE( (_T("CBcaToIsc::Open aStatus %d aChannelId descriptor %S ->"), aStatus.Int(), &aChannelId ) );
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   324
    iClientOpenStatus = &aStatus;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   325
    *iClientOpenStatus = KRequestPending;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   326
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   327
    // Expected form either <XXX>Int_<XX> (i.e. 100Int_3) or Int!!!
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   328
    TUint16 channelid( 0xffff );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   329
    TInt error( KErrGeneral );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   330
    _LIT(KIntUnderScore, "Int_");
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   331
    TInt len1 = aChannelId.Find(KIntUnderScore);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   332
    if( len1 < KErrNone )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   333
        {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   334
        // Int format
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   335
        TLex16 channelParser(aChannelId);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   336
        error = channelParser.Val(channelid, EDecimal);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   337
        }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   338
    else
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   339
        {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   340
        // <XXX>Int_<XX> format
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   341
        TUint numPos = len1 + KIntUnderScore.iTypeLength;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   342
        TPtrC digit = aChannelId.Mid(numPos);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   343
        TLex16 channelParser(digit);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   344
        error = channelParser.Val(channelid, EDecimal);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   345
        }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   346
    ASSERT( KErrNone == error );
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   347
    C_TRACE( (_T("CBcaToIsc::Open parsed channel id: 0x%x"), channelid ) );
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   348
    if( error == KErrNone )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   349
        {
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   350
        TInt index( 0 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   351
        TBool channelOpened( EFalse );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   352
        TRequestStatus status( KRequestPending );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   353
        for( index = 0; index < iChannelList.Length(); index++ )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   354
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   355
            status = KRequestPending;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   356
            iIscApi.Open( iChannelList[index], status, EOwnerThread );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   357
            User::WaitForRequest( status );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   358
            if( KErrNone == status.Int() )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   359
                {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   360
                C_TRACE( (_T("CBcaToIsc::Open channel 0x%x opened"), iChannelList[index] ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   361
                channelOpened = ETrue;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   362
                break;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   363
                }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   364
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   365
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   366
        if( !channelOpened )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   367
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   368
            C_TRACE( (_T("CBcaToIsc::Open channel opening failed") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   369
            User::RequestComplete( iClientOpenStatus, KErrGeneral );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   370
            iClientOpenStatus = NULL;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   371
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   372
        else if( KErrNone == SendNameAddReq( iChannelList[index], channelid ) )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   373
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   374
            iFlowControlMonitor->NotifyFlowControlStatus();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   375
            iChannelNumber = status.Int() == KErrNone ? iChannelList[index] : iChannelNumber; 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   376
            
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   377
            iMessageBufferPtr.SetLength( 0 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   378
            iStatus = KRequestPending;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   379
            iIscApi.Receive( iStatus, iMessageBufferPtr, iReadLength );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   380
            SetActive();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   381
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   382
        else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   383
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   384
            C_TRACE( (_T("CBcaToIsc::Open sending of PNS_NAME_ADD_REQ failed") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   385
            iIscApi.Close();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   386
            User::RequestComplete( iClientOpenStatus, KErrGeneral );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   387
            iClientOpenStatus = NULL;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   388
            }
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   389
        }
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   390
    else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   391
        {    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   392
        User::RequestComplete( iClientOpenStatus, error );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   393
        iClientOpenStatus = NULL;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   394
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   395
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   396
    C_TRACE( (_T("CBcaToIsc::Open <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   397
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   398
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   399
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   400
 Shuts the BCA channel down in a graceful manner. BCA releases its resources.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   401
 Cancels all outstanding operations: Writes, Reads and Ioctls.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   402
 
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   403
 @param aStatus completion status: Always KErrNone.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   404
*/
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   405
void CBcaToIsc::Shutdown(TRequestStatus& aStatus)
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   406
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   407
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   408
    C_TRACE( (_T("CBcaToIsc::Shutdown aStatus %d ->"), aStatus.Int() ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   409
    iClientShutdownStatus = &aStatus;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   410
    *iClientShutdownStatus = KRequestPending;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   411
    iWriteStatusMonitor->Cancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   412
    iFlowControlMonitor->Cancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   413
    iIscApi.DataReceiveCancel();
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   414
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   415
    if( KErrNone == SendNameRemoveReq() )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   416
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   417
        iMessageBufferPtr.SetLength( 0 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   418
        iStatus = KRequestPending;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   419
        iIscApi.Receive( iStatus, iMessageBufferPtr, iReadLength );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   420
        SetActive();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   421
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   422
    else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   423
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   424
        C_TRACE( (_T("CBcaToIsc::Shutdown sending of PNS_NAME_REMOVE_REQ failed") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   425
        iIscApi.Close();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   426
        User::RequestComplete(iClientShutdownStatus, KErrGeneral);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   427
        iClientShutdownStatus = NULL;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   428
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   429
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   430
    C_TRACE( (_T("CBcaToIsc::Shutdown <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   431
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   432
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   433
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   434
* Closes the BCA immediately. BCA releases its resources.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   435
* cancels all Writes, Reads and Controls.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   436
*/    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   437
void CBcaToIsc::Close()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   438
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   439
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   440
    C_TRACE( (_T("CBcaToIsc::Close() iChannelNumber=0x%x->"), iChannelNumber ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   441
    if( iClientShutdownStatus && ( *iClientShutdownStatus == KRequestPending ) )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   442
        {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   443
        C_TRACE( (_T("CBcaToIsc::Close completing client Shutdown request with KErrCancel ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   444
        User::RequestComplete(iClientShutdownStatus, KErrCancel);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   445
        }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   446
    C_TRACE( (_T("CBcaToIsc::Close() iChannelNumber=0x%x 1"), iChannelNumber ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   447
    iWriteStatusMonitor->Cancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   448
    C_TRACE( (_T("CBcaToIsc::Close() iChannelNumber=0x%x 2"), iChannelNumber ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   449
    iFlowControlMonitor->Cancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   450
    C_TRACE( (_T("CBcaToIsc::Close() iChannelNumber=0x%x 3"), iChannelNumber ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   451
    iIscApi.DataReceiveCancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   452
    C_TRACE( (_T("CBcaToIsc::Close() iChannelNumber=0x%x 4"), iChannelNumber ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   453
    iIscApi.DataSendCancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   454
    C_TRACE( (_T("CBcaToIsc::Close() iChannelNumber=0x%x 5"), iChannelNumber ) );
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   455
    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   456
    iIscApi.Close();
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   457
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   458
    C_TRACE( (_T("CBcaToIsc::Close() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   459
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   460
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   461
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   462
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   463
* Queues a Read.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   464
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   465
* @param aStatus complete status, KErrNone if successful, error code otherwise.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   466
* @param aBuf buffer for data to be read.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   467
* @note The buffer is owned by the client. Client must not access / modify the buffer until the Read completes.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   468
*/    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   469
void CBcaToIsc::Read(TRequestStatus& aStatus,TDes8& aBuf)
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   470
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   471
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   472
    C_TRACE( (_T("CBcaToIsc::Read aStatus=%d aBuf=0x%x ->"), aStatus.Int(), &aBuf ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   473
    iIscApi.DataReceive( aStatus, aBuf, iReadLength );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   474
    C_TRACE( (_T("CBcaToIsc::Read aStatus=%d aBuf=0x%x <-"), aStatus.Int(), &aBuf ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   475
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   476
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   477
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   478
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   479
* Queues a Write
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   480
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   481
* @param aStatus the complete status, KErrNone if successful, error code otherwise.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   482
* @param aBuf the buffer to sent.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   483
* @note The buffer is owned by the client. Client must not access / modify the buffer until the Write completes.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   484
*/    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   485
void CBcaToIsc::Write( TRequestStatus& aStatus, const TDesC8& aBuf )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   486
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   487
    C_TRACE( (_T("CBcaToIsc::Write aStatus %d aBuf %S ->"), aStatus.Int(), &aBuf ) );
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   488
                
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   489
    iWriteStatusMonitor->Write(aStatus, aBuf);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   490
        
0
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   491
    C_TRACE( (_T("CBcaToIsc::Write <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   492
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   493
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   494
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   495
 Cancels the outstanding Read operation.(best effort operation: the read may have been completed already.)
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   496
*/    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   497
void CBcaToIsc::CancelRead()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   498
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   499
    C_TRACE( (_T("CBcaToIsc::CancelRead() ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   500
        
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   501
    iIscApi.DataReceiveCancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   502
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   503
    C_TRACE( (_T("CBcaToIsc::CancelRead() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   504
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   505
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   506
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   507
 Cancels all Write operations.(best effort attempt: the write may have been completed already.)
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   508
*/    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   509
void CBcaToIsc::CancelWrite()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   510
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   511
    C_TRACE( (_T("CBcaToIsc::CancelWrite() ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   512
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   513
    iWriteStatusMonitor->Cancel();
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   514
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   515
    C_TRACE( (_T("CBcaToIsc::CancelWrite() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   516
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   517
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   518
    
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   519
/**
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   520
* Ioctl: asynchronously controls the BcaToIsc.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   521
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   522
* @param aStatus complete status, KErrNone if successful, system-wide error code otherwise.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   523
* @param aOptLevel option level to be used.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   524
* @param aOptName option name to be used.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   525
* @param aOpt an optional parameter,holds the option value on return or the option value to be set.
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   526
*/  
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   527
void CBcaToIsc::Ioctl( 
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   528
        TRequestStatus& aStatus,
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   529
        TUint, // aOptLevel,
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   530
        TUint, // aOptName,
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   531
        TDes8& // aOpt
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   532
        )
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   533
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   534
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   535
    C_TRACE( (_T("CBcaToIsc::Ioctl ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   536
    TRequestStatus* ptrStatus = &aStatus;
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   537
    User::RequestComplete( ptrStatus, KErrNotSupported);
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   538
    C_TRACE( (_T("CBcaToIsc::Ioctl <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   539
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   540
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   541
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   542
/** Cancels an outstanding Ioctl, if any. */
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   543
void CBcaToIsc::CancelIoctl()
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   544
    {
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   545
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   546
    C_TRACE( (_T("CBcaToIsc::CancelIoctl() ->") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   547
    C_TRACE( (_T("CBcaToIsc::CancelIoctl() <-") ) );
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   548
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   549
    }
63b37f68c1ce First Contribution. Vanilla as it came from Nokia
<dalarub>
parents:
diff changeset
   550
9
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   551
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   552
* Sends PNS_NAME_ADD_REQ
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   553
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   554
* @param aObjId object id for the name to be added
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   555
* @return KErrNone if message sent succesfully, otherwise error code
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   556
*/    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   557
TInt CBcaToIsc::SendNameAddReq( TUint16& aObjId, TUint16& aClientObjId )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   558
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   559
    C_TRACE( (_T("CBcaToIsc::SendNameAddReq() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   560
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   561
    HBufC8* message = HBufC8::New( ISI_HEADER_SIZE + SIZE_PNS_NAME_ADD_REQ );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   562
    TInt err( KErrGeneral );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   563
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   564
    if( message )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   565
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   566
        TPtr8 messageptr = message->Des();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   567
        messageptr.FillZ();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   568
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   569
        // Add 32bit name (Big-endian)
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   570
        iName.Append( aClientObjId );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   571
        iName.Append( PN_PEP_SUB_TYPE_SYMBIAN_INTERNAL );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   572
        iName.Append( PN_PEP_TYPE_COMMON );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   573
        iName.Append( PN_PIPE );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   574
        TUint8 nameOffset( ISI_HEADER_SIZE + PNS_NAME_ADD_REQ_OFFSET_NAMEENTRY );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   575
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   576
        TIsiSend isimessage( messageptr, ISI_HEADER_SIZE + SIZE_PNS_NAME_ADD_REQ );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   577
        isimessage.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_NAMESERVICE );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   578
        isimessage.Set8bit( ISI_HEADER_OFFSET_TRANSID, 0 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   579
        isimessage.Set8bit( ISI_HEADER_OFFSET_MESSAGEID, PNS_NAME_ADD_REQ );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   580
        isimessage.Set8bit( ISI_HEADER_SIZE + PNS_NAME_ADD_REQ_OFFSET_RESERVED1, KPadding );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   581
        isimessage.Set8bit( ISI_HEADER_SIZE + PNS_NAME_ADD_REQ_OFFSET_RESERVED2, KPadding );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   582
        isimessage.Set8bit( nameOffset, iName[0] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   583
        isimessage.Set8bit( nameOffset + 1, iName[1] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   584
        isimessage.Set8bit( nameOffset + 2, iName[2] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   585
        isimessage.Set8bit( nameOffset + 3, iName[3] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   586
        isimessage.Set8bit( nameOffset + PN_NAME_SRV_ITEM_STR_OFFSET_DEV, THIS_DEVICE );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   587
        isimessage.Set8bit( nameOffset + PN_NAME_SRV_ITEM_STR_OFFSET_OBJ, aObjId );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   588
        isimessage.Set8bit( nameOffset + PN_NAME_SRV_ITEM_STR_OFFSET_FLAGS, PN_NAME_UNDEF );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   589
        isimessage.Set8bit( nameOffset + PN_NAME_SRV_ITEM_STR_OFFSET_RESERVED, KPadding );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   590
        isimessage.Complete();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   591
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   592
        err = iIscApi.Send( messageptr );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   593
        C_TRACE( (_T("CBcaToIsc::SendNameAddReq() success: 0x%x"), err ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   594
        delete message;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   595
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   596
    else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   597
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   598
        C_TRACE( (_T("CBcaToIsc::SendNameAddReq() memory allocation failed") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   599
        ASSERT(0);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   600
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   601
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   602
    C_TRACE( (_T("CBcaToIsc::SendNameAddReq() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   603
    return err;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   604
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   605
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   606
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   607
* Sends PNS_NAME_REMOVE_REQ
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   608
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   609
* @return KErrNone if message sent succesfully, otherwise error code
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   610
*/
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   611
TInt CBcaToIsc::SendNameRemoveReq()
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   612
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   613
    C_TRACE( (_T("CBcaToIsc::SendNameRemoveReq() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   614
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   615
    HBufC8* message = HBufC8::New( ISI_HEADER_SIZE + SIZE_PNS_NAME_REMOVE_REQ );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   616
    TInt err( KErrGeneral );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   617
    if( message )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   618
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   619
        TPtr8 messageptr = message->Des();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   620
        messageptr.FillZ();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   621
        TUint8 nameOffset( ISI_HEADER_SIZE + PNS_NAME_REMOVE_REQ_OFFSET_NAME );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   622
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   623
        TIsiSend isimessage( messageptr, ISI_HEADER_SIZE + SIZE_PNS_NAME_REMOVE_REQ );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   624
        isimessage.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_NAMESERVICE );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   625
        isimessage.Set8bit( ISI_HEADER_OFFSET_TRANSID , 0 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   626
        isimessage.Set8bit( ISI_HEADER_OFFSET_MESSAGEID, PNS_NAME_REMOVE_REQ );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   627
        isimessage.Set8bit( ISI_HEADER_SIZE + PNS_NAME_REMOVE_REQ_OFFSET_RESERVED1, KPadding );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   628
        isimessage.Set8bit( ISI_HEADER_SIZE + PNS_NAME_REMOVE_REQ_OFFSET_RESERVED2, KPadding );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   629
        isimessage.Set8bit( nameOffset, iName[0] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   630
        isimessage.Set8bit( nameOffset + 1, iName[1] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   631
        isimessage.Set8bit( nameOffset + 2, iName[2] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   632
        isimessage.Set8bit( nameOffset + 3, iName[3] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   633
        isimessage.Complete();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   634
        err = iIscApi.Send( messageptr );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   635
        C_TRACE( (_T("CBcaToIsc::SendNameRemoveReq() success: 0x%x"), err ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   636
        delete message;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   637
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   638
    else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   639
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   640
        C_TRACE( (_T("CBcaToIsc::SendNameRemoveReq() memory allocation failed") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   641
        ASSERT(0);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   642
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   643
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   644
    C_TRACE( (_T("CBcaToIsc::SendNameRemoveReq() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   645
    return err;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   646
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   647
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   648
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   649
* Sends PNS_PEP_CTRL_RESP
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   650
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   651
* @return KErrNone if message sent succesfully, otherwise error code
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   652
*/    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   653
TInt CBcaToIsc::SendPepCtrlResp( 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   654
    TUint8 aTrId,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   655
    TUint8 aReceiverDev,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   656
    TUint8 aReceiverObj,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   657
    TUint8 aPipeHandle,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   658
    TUint8 aPepCtrlId,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   659
    TUint8 aPepType,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   660
    TUint8 aResult )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   661
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   662
    C_TRACE( (_T("CBcaToIsc::SendPepCtrlResp() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   663
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   664
    HBufC8* message = HBufC8::New( ISI_HEADER_SIZE + SIZE_PNS_PEP_CTRL_RESP );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   665
    TInt err( KErrGeneral ); 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   666
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   667
    if( message )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   668
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   669
        TPtr8 messageptr = message->Des();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   670
        messageptr.FillZ();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   671
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   672
        TIsiSend isimessage( messageptr, ISI_HEADER_SIZE + SIZE_PNS_PEP_CTRL_RESP );        
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   673
        isimessage.Set8bit( ISI_HEADER_OFFSET_RECEIVERDEVICE, aReceiverDev);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   674
        isimessage.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_PIPE);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   675
        isimessage.Set8bit( ISI_HEADER_OFFSET_RECEIVEROBJECT, aReceiverObj);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   676
        isimessage.Set8bit( ISI_HEADER_OFFSET_TRANSID , aTrId);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   677
        isimessage.Set8bit( ISI_HEADER_OFFSET_MESSAGEID, PNS_PEP_CTRL_RESP );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   678
        isimessage.Set8bit( ISI_HEADER_SIZE + PNS_PEP_CTRL_RESP_OFFSET_PIPEHANDLE, aPipeHandle );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   679
        isimessage.Set8bit( ISI_HEADER_SIZE + PNS_PEP_CTRL_RESP_OFFSET_PEPCTRLID, aPepCtrlId );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   680
        isimessage.Set8bit( ISI_HEADER_SIZE + PNS_PEP_CTRL_RESP_OFFSET_PEPTYPE, aPepType );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   681
        isimessage.Set8bit( ISI_HEADER_SIZE + PNS_PEP_CTRL_RESP_OFFSET_ERRORCODE, aResult );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   682
        isimessage.Complete();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   683
        err = iIscApi.Send( messageptr );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   684
        C_TRACE( (_T("CBcaToIsc::SendPepCtrlResp() success: 0x%x"), err ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   685
        delete message;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   686
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   687
    else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   688
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   689
        C_TRACE( (_T("CBcaToIsc::SendPepCtrlResp() memory allocation failed") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   690
        ASSERT(0);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   691
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   692
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   693
    C_TRACE( (_T("CBcaToIsc::SendPepCtrlResp() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   694
    return err;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   695
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   696
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   697
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   698
* Handles received messages
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   699
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   700
* @param aObjId object id for the name to be added
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   701
* @return KErrNone if message sent succesfully, otherwise error code
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   702
*/
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   703
void CBcaToIsc::RunL()
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   704
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   705
    C_TRACE( (_T("CBcaToIsc::RunL() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   706
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   707
    if ( KErrNone == iStatus.Int() )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   708
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   709
        HandleReceivedMsg( TIsiReceiveC( iMessageBufferPtr ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   710
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   711
    else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   712
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   713
        C_TRACE( (_T("CBcaToIsc::RunL() error occured: 0x%x"), iStatus.Int() ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   714
        ASSERT(0);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   715
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   716
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   717
    C_TRACE( (_T("CBcaToIsc::RunL() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   718
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   719
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   720
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   721
* Handles cancel operation for this active object
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   722
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   723
*/
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   724
void CBcaToIsc::DoCancel()
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   725
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   726
    C_TRACE( (_T("CBcaToIsc::DoCancel() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   727
    iIscApi.ReceiveCancel();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   728
    C_TRACE( (_T("CBcaToIsc::DoCancel() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   729
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   730
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   731
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   732
* Handles received message
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   733
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   734
*/
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   735
void CBcaToIsc::HandleReceivedMsg( const TIsiReceiveC& aIsiMsg )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   736
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   737
    C_TRACE( (_T("CBcaToIsc::HandleReceivedMsg() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   738
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   739
    TInt resource( aIsiMsg.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   740
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   741
    switch( resource )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   742
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   743
        case PN_NAMESERVICE:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   744
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   745
            HandleNameServiceMsg( aIsiMsg );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   746
            break;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   747
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   748
        case PN_PIPE:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   749
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   750
            HandlePipeMsg( aIsiMsg );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   751
            break;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   752
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   753
        default:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   754
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   755
            C_TRACE( (_T("CBcaToIsc::HandleReceivedMsg() unknown resource 0x%x"), resource ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   756
            ASSERT(0);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   757
            break;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   758
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   759
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   760
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   761
    C_TRACE( (_T("CBcaToIsc::HandleReceivedMsg() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   762
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   763
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   764
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   765
* Handles received messages from resource PN_NAME
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   766
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   767
*/
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   768
void CBcaToIsc::HandleNameServiceMsg( const TIsiReceiveC& aIsiMsg )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   769
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   770
    C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   771
    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   772
    TInt msgId( aIsiMsg.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   773
    switch( msgId )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   774
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   775
        case PNS_NAME_ADD_RESP:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   776
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   777
            C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() PNS_NAME_ADD_RESP") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   778
            TUint8 reason( aIsiMsg.Get8bit( 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   779
                ISI_HEADER_SIZE + PNS_NAME_ADD_RESP_OFFSET_REASON ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   780
            if( PN_NAME_OK != reason )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   781
                {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   782
                C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() Name adding failed: 0x%x"), reason ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   783
                if( iClientOpenStatus )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   784
                    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   785
                    C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() completing open") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   786
                    User::RequestComplete( iClientOpenStatus, KErrGeneral );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   787
                    iClientOpenStatus = NULL;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   788
                    iIscApi.Close();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   789
                    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   790
                // no else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   791
                }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   792
            else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   793
                {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   794
                C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() Name added succesfully") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   795
                iMessageBufferPtr.SetLength( 0 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   796
                iStatus = KRequestPending;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   797
                iIscApi.Receive( iStatus, iMessageBufferPtr, iReadLength );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   798
                SetActive();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   799
                }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   800
            break;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   801
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   802
        case PNS_NAME_REMOVE_RESP:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   803
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   804
            C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() PNS_NAME_REMOVE_RESP") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   805
            TUint8 reason( aIsiMsg.Get8bit( 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   806
                ISI_HEADER_SIZE + PNS_NAME_ADD_RESP_OFFSET_REASON ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   807
            if( PN_NAME_OK != reason )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   808
                {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   809
                C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() Name removing failed: 0x%x"), reason ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   810
                ASSERT(0);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   811
                if( iClientShutdownStatus )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   812
                    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   813
                    C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() completing shutdown") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   814
                    User::RequestComplete(iClientShutdownStatus, KErrGeneral );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   815
                    iClientShutdownStatus = NULL;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   816
                    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   817
                }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   818
            else
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   819
                {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   820
                C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() Name removed succesfully") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   821
                iName.Zero();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   822
                iMessageBufferPtr.SetLength( 0 );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   823
                iStatus = KRequestPending;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   824
                iIscApi.Receive( iStatus, iMessageBufferPtr, iReadLength );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   825
                SetActive();
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   826
                }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   827
            break;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   828
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   829
        default:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   830
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   831
            C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() unknown msg 0x%x"), msgId ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   832
            break;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   833
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   834
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   835
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   836
    C_TRACE( (_T("CBcaToIsc::HandleNameServiceMsg() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   837
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   838
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   839
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   840
* Handles received messages from resource PN_PIPE
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   841
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   842
*/
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   843
void CBcaToIsc::HandlePipeMsg( const TIsiReceiveC& aIsiMsg )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   844
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   845
    C_TRACE( (_T("CBcaToIsc::HandlePipeMsg() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   846
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   847
    TInt msgId( aIsiMsg.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   848
    switch( msgId )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   849
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   850
        case PNS_PEP_CTRL_REQ:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   851
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   852
            C_TRACE( (_T("CBcaToIsc::HandlePipeMsg() PNS_PEP_CTRL_REQ") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   853
            HandlePepCtrlReq( aIsiMsg );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   854
            break;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   855
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   856
        default:
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   857
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   858
            C_TRACE( (_T("CBcaToIsc::HandlePipeMsg() unknown msg 0x%x"), msgId ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   859
            ASSERT(0);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   860
            break;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   861
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   862
        }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   863
    
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   864
    C_TRACE( (_T("CBcaToIsc::HandlePipeMsg() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   865
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   866
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   867
/**
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   868
* Handles PNS_PEP_CTRL_REQ
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   869
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   870
*/
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   871
void CBcaToIsc::HandlePepCtrlReq( const TIsiReceiveC& aIsiMsg )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   872
    {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   873
    C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() ->") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   874
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   875
    TUint8 pipeHandle( aIsiMsg.Get8bit( 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   876
        ISI_HEADER_SIZE + PNS_PEP_CTRL_REQ_OFFSET_PIPEHANDLE ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   877
    TUint8 pepCtrlId( aIsiMsg.Get8bit( 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   878
        ISI_HEADER_SIZE + PNS_PEP_CTRL_REQ_OFFSET_PEPCTRLID ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   879
    TUint8 pepType( aIsiMsg.Get8bit( 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   880
        ISI_HEADER_SIZE + PNS_PEP_CTRL_REQ_OFFSET_PEPTYPE ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   881
    TUint8 result( PN_PIPE_ERR_NOT_SUPPORTED );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   882
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   883
    TUint8 trId( aIsiMsg.Get8bit( 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   884
        ISI_HEADER_OFFSET_TRANSID ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   885
    // Get sender device
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   886
    TUint8 senderDevice( aIsiMsg.Get8bit(
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   887
        ISI_HEADER_OFFSET_SENDERDEVICE ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   888
    // Get sender object
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   889
    TUint8 senderObject( aIsiMsg.Get8bit(
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   890
        ISI_HEADER_OFFSET_SENDEROBJECT ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   891
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   892
    C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() pipe handle: 0x%x"), pipeHandle ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   893
    C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() pep ctrl id: 0x%x"), pepCtrlId ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   894
    C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() pep type: 0x%x"), pepType ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   895
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   896
    TBuf8<KDataLength> data( aIsiMsg.GetData( 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   897
        ISI_HEADER_SIZE + PNS_PEP_CTRL_REQ_OFFSET_PEPCTRLDATA, 
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   898
        KDataLength ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   899
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   900
    TUint8 devId( data[KDevIdIndex] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   901
    TUint8 objId( data[KObjIdIndex] );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   902
    C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() dev id: 0x%x"), devId ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   903
    C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() obj id: 0x%x"), objId ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   904
    C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() iChannelNumber: 0x%x"), iChannelNumber ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   905
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   906
    if( PN_PEP_TYPE_BCA == pepType &&
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   907
        THIS_DEVICE == devId &&
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   908
        iChannelNumber == objId )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   909
        {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   910
        C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() PNS_PEP_CTRL_REQ for this PEP") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   911
        result = PN_PIPE_NO_ERROR;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   912
        TInt ret( KErrNone );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   913
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   914
        if( PEP_BCA_OK != data[KStatusIndex] )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   915
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   916
            C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() PNS_PEP_CTRL_REQ with error 0x%x"), data[KStatusIndex] ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   917
            ret = KErrGeneral;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   918
            }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   919
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   920
        if( PEP_CTRL_ID_LOAN == pepCtrlId )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   921
            {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   922
            C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() ctrl id PEP_CTRL_ID_LOAN") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   923
            if( iClientOpenStatus )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   924
                {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   925
                C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() completing open") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   926
                User::RequestComplete( iClientOpenStatus, ret );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   927
                iClientOpenStatus = NULL;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   928
                }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   929
             }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   930
         else if( PEP_CTRL_ID_RETURNLOAN == pepCtrlId )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   931
             {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   932
             C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() ctrl id PEP_CTRL_ID_RETURNLOAN") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   933
             if( iClientShutdownStatus )
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   934
                 {
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   935
                 C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() completing shutdown") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   936
                 User::RequestComplete(iClientShutdownStatus, ret);
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   937
                 iClientShutdownStatus = NULL;
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   938
                 }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   939
             }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   940
         }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   941
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   942
    SendPepCtrlResp(
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   943
        trId,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   944
        senderDevice,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   945
        senderObject,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   946
        pipeHandle,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   947
        pepCtrlId,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   948
        pepType,
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   949
        result );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   950
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   951
    C_TRACE( (_T("CBcaToIsc::HandlePepCtrlReq() <-") ) );
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   952
    }
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   953
8486d82aef45 modemadaptation release 2010wk40
mikaruus
parents: 0
diff changeset
   954