diff -r 510c70acdbf6 -r 8ccc39f9d787 adaptationlayer/tsy/nokiatsy_dll/inc/cmmphonebookstoreoperationbase.h --- a/adaptationlayer/tsy/nokiatsy_dll/inc/cmmphonebookstoreoperationbase.h Mon Nov 09 10:36:19 2009 +0000 +++ b/adaptationlayer/tsy/nokiatsy_dll/inc/cmmphonebookstoreoperationbase.h Thu Jan 14 10:44:58 2010 +0200 @@ -8,9 +8,9 @@ * * Initial Contributors: * Nokia Corporation - initial contribution. -* +* * Contributors: -* +* * Description: * */ @@ -106,12 +106,11 @@ //File ID const TUint16 KMasterFile = 0x3F00; // Master File const TUint16 KDedicatedFileGSM = 0x7F20; // Dedicated File (Gsm) -const TUint16 KDedicatedFileMBI = 0x6FC9; // Dedicated File (MBI) const TUint8 KTagFCIFileDescriptor = 0x82; // for file descriptor tag in FCI data received from UICC Server -const TUint8 KTagFCIFileIdentifier = 0x83; // for File identifier in FCI data -const TUint8 KTagFCIFileSize = 0x85; // for File size data +const TUint8 KTagFCIFileIdentifier = 0x83; // for File identifier in FCI data +const TUint8 KTagFCIFileSize = 0x80; // for File size data const TUint8 KTagConstructedTagA8 = 0xA8; // Type 1 files tag in PBR file const TUint8 KTagConstructedTagA9 = 0xA9; // Type 2 files tag in PBR file const TUint8 KTagConstructedTagAA = 0xAA; // Type 3 files tag in PBR file @@ -119,19 +118,14 @@ const TUint8 KRecordLength = 0; const TUint8 KNoOfRecords = 1; -const TUint8 KFileSize = 2; -const TUint8 KFileIdentifier = 3; -const TUint8 KFileStatus = 4; - - - - - +const TUint8 KFileSize1 = 2; +const TUint8 KFileIdentifier1 = 3; +const TUint8 KFileStatus1 = 4; // UICC constants #define MF_FILE 0x3F00 //Master file #define DF_CURRENT_APP 0x7FFF // -#define DF_PHONEBOOK 0x5F3A +#define DF_PHONEBOOK 0x5F3A #define APPL_FILE_ID 0x7F10 // Address for DFphonebook #define UICC_SESSION_ID_NOT_USED 0x00 #define PB_UICC_SB_APPL_PATH_SB_LENGTH 0x0010 @@ -141,14 +135,16 @@ #define PB_SDN_FID 0x6F49 #define PB_BDN_FID 0x6F4D #define PB_MBDN_FID 0x6FC7 +#define PB_MBI_FID 0x6FC9 #define PB_MSISDN_FID 0x6F40 #define PB_VMBX_FID 0x6F17 #define PB_EXT1_FID 0x6F4A #define PB_EXT2_FID 0x6F4B #define PB_EXT3_FID 0x6F4C -#define PB_EXT4_FID 0x6F55 -#define PB_EXT5_FID 0x6F4E +#define PB_EXT4_FID 0x6F4E +#define PB_EXT5_FID 0x6F55 #define PB_EXT6_FID 0x6FC8 +#define PB_EXT7_FID 0x6FCC #define PB_PBR_FID 0x4F30 #define DF_PB_FILE_PATH 0x3F007FFF5F3A #define UICC_SFI_NOT_PRESENT 0x00 @@ -157,6 +153,7 @@ #define DF_PATH_PHONEBOOK 0x5F3A #define UICC_SB_LINEAR_FIXED_SB_LENGTH 0x0008 #define UICC_APPL_CMD_RESP_OFFSET 0x07 +#define UICC_ILLEGAL_FILE_ID 0xFFFF #define UICC_SB_FCI_FCP_EF_NO_REC_OFFSET 0x12 #define UICC_SB_FCI_FCP_EF_REC_L_OFFSET 0x10 @@ -165,8 +162,8 @@ #define UICC_EF_ANR_EXT_REC_OFFSET 0x15 #define UICC_EF_FILE_EXT_FILE_NOT_EXIST 0xFF #define UICC_EF_FDN_NO_EXT_NUM_LEN 20 +#define UICC_EF_EXT_REC_NUM_LEN 11 #define UICC_EF_MAX_NUM_LEN_WITH_EXT 2814 -#define UICC_EF_MAX_NAME_LEN 241 #define UICC_EF_ANR_EXT_OFFSET 14 #define UICC_EF_MAX_REC_LEN 255 @@ -214,7 +211,7 @@ #define UICC_EF_EMAIL_TAG 0xCA #define UICC_EF_CCP1_TAG 0xCB -// UICC Server Service type +// UICC Server Service type #define UICC_APPL_READ_TRANSPARENT 0x21 #define UICC_APPL_UPDATE_TRANSPARENT 0x22 #define UICC_APPL_READ_LINEAR_FIXED 0x23 @@ -260,6 +257,9 @@ #define UICC_NO_EXT_MAX_NUM_LEN 0x14 +#define UICC_EXT_REC_NO_OFFSET 12 +#define UICC_EMPTY_ENTRY_PATTERN_1 0xFF +#define UICC_EMPTY_ENTRY_PATTERN_2 0x00 // File types @@ -279,26 +279,6 @@ //none // EXTERNAL DATA STRUCTURES -enum TPBIniPhases - { - EPBInitPhaseADN = 0, - EPBInitPhaseFDN, - EPBInitPhaseSDN, - EPBInitPhaseMBDN, - EPBInitPhaseMSISDN, - EPBInitPhaseVMBX, - EPBInitPhase_File_Info, - EPBInitPhase_FIle_Data, - EPBInitPhase_Complete, - EPBInitPhase_3GADN_PBR, - EPBInitPhase_3GADN_Type1, - EPBInitPhase_3GADN_Type2, - EPBInitPhase_3GADN_Type3, - EPBIniPhase_3GADNDone, - EPBIniPhase_PBInitialized, - EPBIniPhase_Unknown, - EPBIniPhase_Internal - }; enum TPhonebookType @@ -308,17 +288,18 @@ EPhonebookTypeSdn, EPhonebookTypeBdn, EPhonebookTypeVMBX, - EPhonebookTypeMBDN + EPhonebookTypeMBDN, + EPhonebookTypeMSISDN, + EPhonebookTypeUnknown }; -enum TPBWritePhases +enum TTypeOfFileToBeRead { - EPBWritePhase_delete = 0, - EPBWritePhase_rewrite, - EPBWritePhase_complete + EBasicEfRead, + EExtensionRead, + EMailboxIdRead }; - // Struct data struct TPrimitiveTag @@ -378,7 +359,7 @@ /** * Cancels the operation. */ - virtual void CancelReq(); + virtual void CancelReq( TName& aPhoneBook ); /** * Prepares the operation (makes it ready to be launched). @@ -434,10 +415,10 @@ * @param aFileData KErrNotSupported * @return KErrNotSupported. */ - - virtual TInt HandleUICCPbRespL( TBool & /*complete*/, TInt /*aStatus*/, const TDesC8& /*aFileData*/, TInt /*aTransId*/) + + virtual TBool HandleUICCPbRespL( TInt /*aStatus*/, TUint8 /*aDetails*/, const TDesC8& /*aFileData*/, TInt /*aTransId*/) {TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::HandleUICCPbRespL - Return KErrNotSupported"); - return KErrNotSupported; + return ETrue; }; /** @@ -449,13 +430,14 @@ */ virtual TInt UICCCreateReq( TInt /*aIpc*/, - const CMmDataPackage* /*aDataPackage*/) + const CMmDataPackage* /*aDataPackage*/, + TUint8 /*aTransId*/ ) { TFLOGSTRING("TSY: CMmPhoneBookStoreOperationBase::CreateReq - Return KErrNotSupported"); - return KErrNotSupported; + return KErrNotSupported; }; - + /** * Converts client phonebook to phonebook mask. * @@ -464,7 +446,33 @@ */ static TUint8 ConvertToPBtype( const TName& aPBType ); - + + /** + * Converts client phonebook to phonebook mask. + * + * @param aPBType + * @return TUint8 + */ + static TUint16 ConvertToPBfileId( const TName& aPBType, TUint16& aFileIdExt ); + + + /** + * Converts File ID to Index + * + * @param aFileId + * @return TUint8 + */ + static TUint8 ConvertToConfArrayIndex( const TUint16 aFileId ); + /** + * Give return value for the transactio id According to operation and Phoenbook type + * + * @param aPBType + * @param aOperation + * @return TUint8 + */ + static TUint8 GetTransId( const TName& aPBType, const TUint8 aOperation ); + + /** * Converts client phonebook to phonebook mask. * @@ -472,8 +480,8 @@ * @return TUint8 */ static TUint8 ConvertToPBtypeUICC( const TName& aPBType ); - - + + /** * Converts client phonebooktype to client phonebook name. * @@ -491,37 +499,12 @@ void ConvertToPBname( const TUint8 aTrans, TName& aName ); /** - * Separate Phonebook Entry from UICC -message - * - * @param aFileData Received UICC message - * @param aEntry Entry to be separated - * @return KErrNone or error value. - */ - TInt SeparatePhoneBookEntryFromUiccMsgL( - const TDesC8& aFileData, - TDes8& aNameBuf, - TUint16 aSimPhonebookType); - - - /** - * Store Phonebook Entry from UICC -message - * - * @param aFileData Received UICC message - * @param aEntry Entry to be separated - * @return KErrNone or error value. - */ - void StorePhonebookEntry( - TDes8& aName, - TDes8& aNumber, - CPhoneBookStoreEntry& aEntry); - - /** - * Gets transactionId. + * Gets PhoneBookName. * * @param None - * @return TransactionId. + * @return phonebookname. */ - TUint8 TransId(); + const TName& GetPhoneBookName()const; /** * Convert number of phonebook type to server's phonebook type @@ -532,29 +515,19 @@ TUint16 ConvertToSimPhoneBookType( const TUint8 aPbMask ); + /** + * Handle number to convert in Ascii Format + * @param const TDesC8& aSource: Message to be converted in Ascii + * @param TDes16 aTarget : After conversion data to be staored in + */ + //void ConvertToUcs2FromBCD(const TDesC8 &aSource, TDes16 &aTarget ); /** - * Gets the required parameter from FCI Data - * - * @param TDesC8 aFileData FCI Data - * @param TInt aValue actual value of parameter to be read - * @param TUint8 aParam parameter to be read - * @return Error + * Handle to Find the Empty Entry + * @param const TDesC8& aFileData: Entry data to checked entry is empty or not + * @return TInt: KErrNone or KErrNotFound */ - TInt HandleFcpData( - const TDesC8 &aFileData, - TInt& aValue, - TUint8 aParam); - - - /** - * Handle FileData of Type1File Response - * @param const TDes8& aFileData: UICC Message - * @return TInt: KErrNone or error value. - */ - void Get16bit(TInt& aTarget, const TDesC8& aSource, TInt aIndex); - - + TInt EmptyEntryCheck( const TDesC8 &aFileData ); protected: @@ -632,12 +605,12 @@ // Pointer to CMmPhoneBookStoreMessHandler. CMmPhoneBookStoreMessHandler* iMmPhoneBookStoreMessHandler; - + // Pointer to UICC message handler CMmUiccMessHandler* iMmUiccMessHandler; - // TransactionId that consist with phonebook type and transactionId. - TUint8 iTransactionId; + // To store Phone Book type + TName iPhoneBookTypeName; // Pointer to array for Caching PB Store . // CTSY take care of deleting entries. @@ -654,22 +627,29 @@ // Attribute to hold the information what index to be read TInt iIndexToRead; + + // Is there any mailbox id + TBool iMailboxIdExist; + // Attribute to store record length TInt iRecordLength; // Keeps track of error value if write completed only partially. TInt iRet; - // Phonebooktype, ADN, FDN, SDN... - TName iPhonebookType; + // modifiable Store number if there is extension number also there + TBuf8 iNumberBuf; - // modifiable Store number if there is extension number also there - TBuf8 iNumberBuf; - // Store entry name TBuf8 iNameBuf; + // Store for Empty Space + TUint8 iEmptyIndex; + + // Attribute to check what kind of read is ongoing + TTypeOfFileToBeRead iTypeOfReading ; + #ifdef INTERNAL_RD_USIM_PHONEBOOK_GAS_AND_AAS // Holds information for AAS and GAS RMmCustomAPI::TAlphaStringParams iAlphaStringParams;