adaptationlayer/tsy/nokiatsy_dll/inc/cmmphonebookoperationdelete.h
changeset 5 8ccc39f9d787
parent 0 63b37f68c1ce
child 6 942573423a60
--- a/adaptationlayer/tsy/nokiatsy_dll/inc/cmmphonebookoperationdelete.h	Mon Nov 09 10:36:19 2009 +0000
+++ b/adaptationlayer/tsy/nokiatsy_dll/inc/cmmphonebookoperationdelete.h	Thu Jan 14 10:44:58 2010 +0200
@@ -8,60 +8,79 @@
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
-* 
+*
 * Contributors:
-* 
+*
 * Description:
 *
 */
 
-#ifndef _CMMPHONEBOOK_OPERATION_DELETE_H
-#define _CMMPHONEBOOK_OPERATION_DELETE_H
+#ifndef CMMPHONEBOOKOPERATIONDELETE_H
+#define CMMPHONEBOOKOPERATIONDELETE_H
 
-// INCLUDES
+//  INCLUDES
 #include <ctsy/pluginapi/cmmdatapackage.h>
 #include <e32base.h>
+
 #include "cmmphonebookstoreoperationbase.h"
 
-// CONSTANTS
-    // None
+//  CONSTANTS
+    //none
 
-// MACROS
-    // None
+//  MACROS
+    //none
 
-// DATA TYPES
-    // None
+//  DATA TYPES
+    //none
 
-// EXTERNAL DATA STRUCTURES
-    // None
+//  EXTERNAL DATA STRUCTURES
+enum TPBDeletePhases
+    {
+    EPBDeletePhaseReadExtensions,
+    EPBDeletePhaseReadEntry,
+    EPBDeletePhaseDeleteExtension,
+    EPBDeletePhase_Read_MBI_profile,
+    EPBDeletePhase_delete_MBI_profile,
+    EPBDeletePhaseDeleteEntry
+    };
 
-// FUNCTION PROTOTYPES
-    // None
 
-// FORWARD DECLARATION
-    // None
+//  FUNCTION PROTOTYPES
+    //none
 
 // CLASS DECLARATION
 /**
-* CMmPhoneBookOperationDelete is used to create and send GSM-specific
-* PBStore ISI messages to PhoNet via PhoNetSender relating to delete.
+* CMmPhoneBookOperationWrite is used to create and send GSM-specific
+* PBStore ISI messages to PhoNet via PhoNetSender relating to write.
 */
-class CMmPhoneBookOperationDelete : public CMmPhoneBookStoreOperationBase
+class CMmPhoneBookOperationDelete
+    : public CMmPhoneBookStoreOperationBase
     {
-    public: // Constructors and destructor
+    public:  // Constructors and destructor
 
         /**
         * Two-phased constructor.
-        * @return CMmPhoneBookOperationDelete*: created object
         */
         static CMmPhoneBookOperationDelete* NewL(
             CMmPhoneBookStoreMessHandler* aMmPhoneBookStoreMessHandler,
+            CMmUiccMessHandler* aUiccMessHandler,
             const CMmDataPackage* aDataPackage );
+
         /**
         * Destructor.
         */
         ~CMmPhoneBookOperationDelete();
 
+        /**
+        * This method creates entry point to correct operation
+        * @param aPhonebookType PhoneBook type
+        * @param aIpc IPC
+        * @return Pointer to operation.
+        */
+        static CMmPhoneBookOperationDelete* Build(
+            TName aPhonebookType,
+            TInt aIpc );
+
   private:
 
         /**
@@ -70,74 +89,153 @@
         CMmPhoneBookOperationDelete();
 
         /**
+        * Class attributes are created in ConstructL.
+        */
+        //void ConstructL();
+
+        /**
         * Separates different IPC requests for each other.
-        * @param TInt aIpc: Identify number of request.
-        * @param const CMmDataPackage* aDataPackage: Packaged data.
-        * @return TInt: KErrNone or error value.
+        *
+        * @param aIpc Identify number of request.
+        * @param aDataPackage Packaged data.
+        * @return KErrNone or error value.
         */
-        TInt CreateReq( TInt aIpc, const CMmDataPackage* aDataPackage );
+        TInt UICCCreateReq(
+            TInt aIpc,
+            const CMmDataPackage* aDataPackage,
+            TUint8 aTransId );
+
+        /**
+        * Handles UICC response ISI -message
+        * @param aStatus Status
+        * @param aFileData File data
+        * @param aTransId Transaction ID
+        * @return Is operation going to be deleted
+        */
+        TBool HandleUICCPbRespL(
+            TInt aStatus,
+            TUint8 aDetails,
+            const TDesC8& aFileData,
+            TInt aTransId );
 
         /**
-        * Handles SimPbResp ISI -message
-        * @param  TIsiReceiveC& aIsiMessage
-        * @param TBool& aComplete: Indicates if request can remove from
-        *    operationlist or not.
-        * @return TInt: KErrNone or error value.
+        * Handles request to delete a phonebook entry
+        * @return KErrNone or error value
         */
-        TInt HandleSimPbRespL(
-            const TIsiReceiveC& aIsiMessage,
-            TBool& aComplete );
+        TInt UiccPbReqDelete();
+
+        /**
+        * Creates and sends ISI message in order to delete an entry
+        * @return KErrNone or error value
+        */
+        TInt UiccPbReqDeleteEntry();
 
         /**
-        * Handling delete response
-        * @param TIsiReceiveC& aIsiMessage
-        * @param TBool& aComplete: Indicates if request can remove from
-        *    operationlist or not.
-        * @return TInt: KErrNone or error value.
+        * Creates and sends ISI message in order to delete an extension
+        * @param aExtRecordNum Extension record number
+        * @return KErrNone or error value
+        */
+        TInt UiccPbReqDeleteExt( TInt aExtRecordNum );
+
+        /**
+        * Creates and sends ISI message in order to read an entry
+        * @return KErrNone or error value
         */
-        TInt HandleDeleteResp(
-            const TIsiReceiveC& aIsiMessage,
-            TBool& aComplete );
+        TInt UiccPbReqReadEntry();
+
+        /**
+        * Handles phonebook entry data
+        * @param aFileData File data
+        * @return KErrNone or error value
+        */
+        TInt HandleReadEntryResp( const TDesC8& aFileData );
+
+        /**
+        * Creates and sends ISI message in order to read an extension
+        * @return KErrNone or error value
+        */
+        TInt UiccPbReqReadExt( TUint8 aExtRecordNum );
 
         /**
-        * Creates and sends ISI message in order to delete an entry from SIM
-        * @param TInt16 aIndex: Location index
-        * @return TInt: KErrNone or error value.
+        * Handles phonebook extension data
+        * @param aFileData File data
+        * @return KErrNone or error value
         */
-        TInt SimPbReqDelete( TInt16 aIndex );
-
+        TInt HandleReadExtResp( const TDesC8& aFileData );
+        
         /**
-        * Creates and sends ISI message in order to delete all entries from SIM
-        * @return TInt: KErrNone or error value.
+        * Creates request to read MBI record
+        * @return KErrNone or error value
         */
-        TInt SimPbReqDeleteAll();
-
-#ifdef INTERNAL_RD_USIM_PHONEBOOK_GAS_AND_AAS
+        TInt UiccPbReqReadMBI();
+        
         /**
-        * Creates and sends ISI message in order to delete alphastring from SIM
-        * @return TInt: KErrNone or error value
+        * Handles phonebook extension data
+        * @param aStatus
+        * @param aDetails
+        * @param aFileData File data
+        * @return KErrNone or error value
         */
-        TInt SimDeleteAlphaStringReq();
-
+        TInt HandleWriteMBIReadResp(TInt aStatus, TUint8 aDetails, const TDesC8& aFileData );
+        
         /**
-        * Receives SIM_PB_RESP(SIM_PB_DELETE) ISI messages from phonet receiver
-        * @param TIsiReceiveC: reference to the received message.
-        * @return TInt: KErrNone or error code
+        * Creates request to Delete MBI profile
+        * @return KErrNone or error value
         */
-        TInt SimDeleteAlphaStringRespL( const TIsiReceiveC& aIsiMessage );
-#endif // INTERNAL_RD_USIM_PHONEBOOK_GAS_AND_AAS
+        TInt UiccPBReqDeleteMBIProfile();
 
-    public: // Data
+        
+    public:     // Data
         // None
 
-    protected: // Data
-        // None
+    protected:  // Data
+        // none
+
+    private:    // Data
+
+       // Keep track on current delete phase
+       TPBDeletePhases iCurrentDeletePhase;
+
+       // Phone book entry to be deleted
+       CPhoneBookStoreEntry* iPhoneBookEntry;
+
+       // IPC number of operation
+       TInt iIpc;
+
+       // Number of entries
+       TInt iNumOfEntries;
+
+       // Number of extension records in entry
+       TInt iNumOfExtensions;
+
+       // Elementary file ID
+       TUint16 iFileId;
 
-    private: // Data
-        // None
+       // Extension file ID
+       TUint16 iFileIdExt;
+
+       // Record number in phonebook to be deleted
+       TInt iIndex;
+
+       // Phonebook entry
+       TPBEntry iEntry;
+
+       // Transaction ID used in delete operations
+       TUint8 iTransId;
 
+       // Location index of phonebook type
+       TUint8 iArrayIndex;
+
+       // Information of location already read
+       TBool iLocationFoundInPbList;
+       
+       // Array to store ext rexords to be deletet
+       RArray<TInt> iExtRecordArrayToBeDelete;
+       
+       // Attribute to store MBI Profiletype
+       TUint8 iMBIProfileType;
 };
 
-#endif // _CMMPHONEBOOK_OPERATION_DELETE_H
+#endif // CMMPHONEBOOKOPERATIONDELETE_H
 
-// End of File
+// End of file