adaptationlayer/tsy/nokiatsy_dll/src/cmmphonebookoperationread3g_adn.cpp
changeset 0 63b37f68c1ce
child 5 8ccc39f9d787
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/adaptationlayer/tsy/nokiatsy_dll/src/cmmphonebookoperationread3g_adn.cpp	Fri Nov 06 17:28:23 2009 +0000
@@ -0,0 +1,235 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ?Description
+*
+*/
+
+// INCLUDE FILES
+#include <etelmm.h>
+#include <tisi.h>
+#include <pn_const.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include "tsylogger.h"
+#include "cmmphonebookoperationread3g_adn.h"
+#include "osttracedefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cmmphonebookoperationreadtraces.h"
+#include "OstTraceDefinitions.h"
+#include "cmmphonebookoperationread3g_adnTraces.h"
+#endif
+
+
+// EXTERNAL DATA STRUCTURES
+    // None
+
+// EXTERNAL FUNCTION PROTOTYPES
+    // None
+
+// CONSTANTS
+//const TUint16 KSimPbLocationMBDN = 0x0100;
+
+// MACROS
+    // None
+
+// LOCAL CONSTANTS AND MACROS
+    // None
+
+// MODULE DATA STRUCTURES
+    // None
+
+// LOCAL FUNCTION PROTOTYPES
+    // None
+
+// ==================== LOCAL FUNCTIONS =====================================
+    // None
+
+
+// ================= MEMBER FUNCTIONS =======================================
+
+// -----------------------------------------------------------------------------
+// CMmPhoneBookOperationRead3g_adn::CMmPhoneBookOperationRead3g_adn
+// C++ default CMmPhoneBookOperationRead3g_adn can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+
+CMmPhoneBookOperationRead3g_adn::CMmPhoneBookOperationRead3g_adn()
+    {
+    TFLOGSTRING("TSY: CMmPhoneBookOperationRead3g_adn::CMmPhoneBookOperationRead3g_adn");
+    OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONREAD3G_ADN_CMMPHONEBOOKOPERATIONREAD3G_ADN, "CMmPhoneBookOperationRead3g_adn::CMmPhoneBookOperationRead3g_adn" );
+
+
+    }
+
+// -----------------------------------------------------------------------------
+//CMmPhoneBookOperationRead3g_adn::CMmPhoneBookOperationRead3g_adn C++ destructor.
+// -----------------------------------------------------------------------------
+//
+CMmPhoneBookOperationRead3g_adn::~CMmPhoneBookOperationRead3g_adn
+    (
+    // None
+    )
+    {
+    TFLOGSTRING("TSY: CMmPhoneBookOperationRead3g_adn::~CMmPhoneBookOperationRead3g_adn");
+    OstTrace0( TRACE_NORMAL, DUP1_CMMPHONEBOOKOPERATIONREAD3G_ADN_CMMPHONEBOOKOPERATIONREAD3G_ADN, "CMmPhoneBookOperationRead3g_adn::~CMmPhoneBookOperationRead3g_adn" );
+
+    }
+
+// -----------------------------------------------------------------------------
+// CMmPhoneBookOperationRead3g_adn::NewL
+// Creates a new CMmPhonebookOperationRead object instance.
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CMmPhoneBookOperationRead3g_adn* CMmPhoneBookOperationRead3g_adn::NewL
+    (
+// NONE
+    )
+    {
+    TFLOGSTRING("TSY: CMmPhoneBookOperationRead3g_adn::NewL");
+    OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONREAD3G_ADN_NEWL, "CMmPhoneBookOperationRead3g_adn::NewL" );
+
+
+    TName phonebookTypeName;
+
+    CMmPhoneBookOperationRead3g_adn* mmPhoneBookOperationRead3g_adn =
+        new( ELeave ) CMmPhoneBookOperationRead3g_adn();
+
+    return mmPhoneBookOperationRead3g_adn;
+    }
+
+// -----------------------------------------------------------------------------
+// CMmPhoneBookOperationRead3g_adn::ConstructL
+// Initialises object attributes.
+// -----------------------------------------------------------------------------
+//
+void CMmPhoneBookOperationRead3g_adn::ConstructL
+    (
+    // None
+    )
+    {
+    TFLOGSTRING("TSY: CMmPhoneBookOperationRead3g_adn::ConstructL");
+    OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONREAD3G_ADN_CONSTRUCTL, "CMmPhoneBookOperationRead3g_adn::ConstructL" );
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// CMmPhoneBookOperationRead3g_adn::UICCHandleData3gADNReadReq
+// Handles Read Resp
+// -----------------------------------------------------------------------------
+//
+TInt CMmPhoneBookOperationRead3g_adn::UICCHandleData3gADNReadReq
+        (
+        TInt aFileId,
+        TInt aFileSFI
+        )
+    {
+    TFLOGSTRING("TSY: CMmPhoneBookOperationRead3g_adn::UICCHandleData3gADNReadReq");
+    OstTrace0( TRACE_NORMAL, CMMPHONEBOOKOPERATIONREAD3G_ADN_UICCHANDLEDATA3GADNREADREQ, "CMmPhoneBookOperationRead3g_adn::UICCHandleData3gADNReadReq" );
+
+    TInt ret(KErrNone);
+
+    // get the index to be read from phonebook
+    TInt index( iIndexToRead );
+    TInt appFileId(APPL_FILE_ID);
+
+    TUiccReadLinearFixed cmdParams;
+    //cmdParams.messHandlerPtr  = static_cast<MUiccOperationBase*> iMmPhoneBookStoreMessHandler;
+
+    cmdParams.filePath.Append(static_cast<TUint8>( MF_FILE >> 8 ));
+    cmdParams.filePath.Append(static_cast<TUint8>( MF_FILE ));
+    cmdParams.filePath.Append(appFileId >> 8);
+    cmdParams.filePath.Append(appFileId);
+    cmdParams.filePath.Append(static_cast<TUint8>( DF_PHONEBOOK >> 8 ));
+    cmdParams.filePath.Append(static_cast<TUint8>( DF_PHONEBOOK ));
+
+    index = iIndexToRead && 0x00FF;
+
+    if( PB_PBR_FID == aFileId )
+        {
+        // Find which record no should be read
+        // get ADN file ID from PBR EF data according to which entry needs to be read
+        TUint8 pbrRecordNo(0);
+        do
+            {
+            pbrRecordNo++;
+            index = index-255;
+            }while(index > 255);
+
+        cmdParams.fileId = PB_PBR_FID;
+        cmdParams.serviceType = UICC_APPL_READ_LINEAR_FIXED;
+        cmdParams.record = pbrRecordNo;
+        }
+    else
+        {
+        cmdParams.fileId = aFileId;
+        cmdParams.serviceType = UICC_APPL_READ_LINEAR_FIXED;
+        cmdParams.record = index;
+        cmdParams.fileIdSfi = aFileSFI;
+        }
+    return ret;
+    }
+
+
+
+
+// -----------------------------------------------------------------------------
+// CMmPhoneBookOperationRead3g_adn::HandleUICC3gADNRespL
+// HAndles Response for ADN phoneBook
+// -----------------------------------------------------------------------------
+//
+TInt CMmPhoneBookOperationRead3g_adn::HandleUICC3gADNRespL
+    (
+    const TInt aStatus,
+    const TDes8 &/*aFileData*/,
+    const TInt /*aTransId*/
+    )
+    {
+
+    TFLOGSTRING("TSY: CMmPhoneBookOperationRead3g_adn::HandleUICC3gADNRespL");
+    OstTrace0( TRACE_NORMAL, DUP1_CMMPHONEBOOKOPERATIONREAD3G_ADN_UICCHANDLEDATA3GADNREADREQ, "CMmPhoneBookOperationRead3g_adn::UICCHandleData3gADNReadReq" );
+
+
+    TInt ret(KErrNone);
+    // Initialize Application file ID to send in next request
+
+    // Handle possible error case
+    if ( UICC_STATUS_OK != aStatus )
+        {
+        TFLOGSTRING("TSY: CMmPhoneBookOperationRead::HandleUICCPbRespRead-\
+            Unsuccessfully completed by SIMSON");
+//OstTrace0( TRACE_NORMAL, DUP1_CMMPHONEBOOKOPERATIONREAD_HANDLEUICCPBRESPL, "CMmPhoneBookOperationRead::HandleUICCPbRespL, Unsuccessfully completed by UICC Server" );
+        ret = CMmStaticUtility::UICCCSCauseToEpocError(aStatus );
+        }
+
+
+    if(UICC_STATUS_OK == aStatus)
+        {
+
+        // Case: <complete request>
+        if ( KErrNone != ret || 0 == iNumOfEntriesToRead )
+            {
+            // If no entries found
+            if ( 0 == iNumOfEntriesFilled )
+                {
+                ret = KErrNotFound;
+                }
+
+            }
+          }
+    return ret;
+    }
+
+
+