--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/adaptationlayer/tsy/nokiatsy_dll/inc/cmmenstoremesshandler.h Thu Jan 14 10:44:58 2010 +0200
@@ -0,0 +1,229 @@
+/*
+* 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:
+*
+*/
+
+
+// INCLUDES
+#ifndef _CMMENSTOREMESSHANDLER_H_
+#define _CMMENSTOREMESSHANDLER_H_
+
+#include <e32def.h>
+#include <ctsy/serviceapi/cmmgsmphonestorageutility.h>
+#include "mmmmesshandlerbase.h"
+#include "cmmphonetsender.h"
+#include "cmmphonetreceiver.h"
+
+//UICC
+#include "muiccoperationbase.h"
+#include "cmmuiccmesshandler.h"
+
+// CONSTANTS
+ // None
+
+// MACROS
+ // None
+
+// DATA TYPES
+ // None
+
+// EXTERNAL DATA STRUCTURES
+ // None
+
+// FUNCTION PROTOTYPES
+ // None
+
+// FORWARD DECLARATIONS
+class CMmPhoNetSender;
+class CMmPhoNetReceiver;
+class CMmENStoreTsy;
+class CMmENStoreExtInterface;
+class TIsiReceiveC;
+class CMmMessageRouter;
+class CMmUiccMessHandler;
+
+// CLASS DECLARATION
+
+/**
+* CMmENStoreMessHandler is used to create and send mode-independent
+* ISI-messages to PhoNet via PhoNetSender. It also receives ISI-messages
+* from PhoNet via PhoNetReceiver. If the message is mode-independent,
+* it will be handled here. Otherwise, the message will be sent to message
+* handler of active mode.
+*/
+class CMmENStoreMessHandler
+ : public CBase,
+ public MMmMessHandlerBase,
+ public MUiccOperationBase
+ {
+ public:
+
+ /**
+ * Destructor
+ */
+ ~CMmENStoreMessHandler();
+
+ /**
+ * Creates a new EN store message handler object
+ * @param CMmPhoNetSender*: pointer to phonet sender
+ * @param CMmPhoNetReceiver*: pointer to phonet receiver
+ * @param CMmMessageRouter*: pointer to message router
+ */
+ static CMmENStoreMessHandler* NewL(
+ CMmMessageRouter* aMessageRouter,
+ CMmUiccMessHandler* aUiccMessHandler );
+
+ /**
+ * Receives ISI messages from phonet receiver
+ * @param const TIsiReceiveC: SIM ISI message
+ */
+ void ReceiveMessageL( const TIsiReceiveC& aIsiMessage );
+
+ /**
+ * Handles errors comes from PhoNetReceiver RunError
+ * @param const TIsiReceiveC& aIsiMessage: The received ISI message
+ * @param TInt aError: Error code
+ */
+ void HandleError(
+ const TIsiReceiveC& aIsiMessage,
+ TInt aError );
+
+ /**
+ * From CMessHandlerBase. This method is the single entry point for
+ * requests coming from the Symbian OS layer to this message handler
+ * @param TInt: aIpc IPC number of the request
+ * @param CMmDataPackage*: aDataPackage
+ * @return TInt: KErrNone or error code
+ */
+ TInt ExtFuncL(
+ TInt aIpc,
+ const CMmDataPackage* aDataPackage );
+
+ /**
+ * Handles a received message by calling the specific
+ * message handling method.
+ *
+ * @param Transaction id
+ * @param Status
+ * @param aFileData reference to Data received in message
+ * @return KErrNone or error code
+ */
+ TInt ProcessUiccMsg(
+ TInt aTransactionId,
+ TInt aStatus,
+ TUint8 aDetails,
+ const TDesC8 &aFileData );
+
+ protected:
+ //None
+
+ private:
+
+ /**
+ * Constructor
+ */
+ CMmENStoreMessHandler();
+
+ /**
+ * Initialises object attributes.
+ */
+ void ConstructL();
+
+ /**
+ * Handles EFecc read responses
+ * @param TInt aStatus: status returned by UICC server
+ * @param const TDesC8& aFileData: data from EFecc file
+ * returned by UICC server
+ * @return TInt: success or failure
+ */
+ TInt UiccReadEmergCodesResp(
+ TInt aStatus,
+ const TDesC8& aFileData );
+
+ /**
+ * Provide UICC application file id
+ * @param const TDesC8&: reference to data
+ * @param TDes8&: reference to buffer where digits are stored
+ */
+ void GetEmergencyNumberDigits(
+ const TDesC8& aReadIn,
+ TDes8& aNumberBuf );
+
+ /**
+ * Handles EFecc file info
+ * @param TInt aStatus: status returned by UICC server
+ * @param const TDesC8& aFileData: data from EFecc file
+ * returned by UICC server
+ * @return TInt: success or failure
+ */
+ TInt CMmENStoreMessHandler::UiccENStoreGetInfoResp(
+ TInt aStatus,
+ const TDesC8& aFileData );
+
+ /**
+ * Create EFecc read request
+ * @param TInt: location to be read
+ * @return TInt: succes or failure
+ */
+ TInt UiccReadEmergCodesReq(
+ TInt aIndex,
+ TUiccTrId traId );
+
+ /**
+ * Create EFecc file info request
+ * @param TInt: transaction id
+ * @return TInt: succes or failure
+ */
+ TInt ReadEfEccFileInfo( TUiccTrId aTraId );
+
+ // ATTRIBUTES
+ public:
+
+ protected:
+
+ // Pointer to the Phonet sender
+ CMmPhoNetSender* iPhoNetSender;
+
+ private:
+
+ //Pointer to the Message router
+ CMmMessageRouter* iMessageRouter;
+
+ // Pointer to the UICC Messhandler
+ CMmUiccMessHandler* iMmUiccMessHandler;
+
+ // ECC entry location index
+ TInt iReadECCLocation;
+
+ // Array for emergency number storing
+ CArrayPtrFlat<TENStoreResponse>* iEnNumberArray;
+
+ // IPC value of the last request
+ TInt iCurrentIpc;
+
+ // Count of used entries
+ TInt iUsedEntries;
+
+ // Count of entries left to be read
+ TInt iEntryCount;
+
+ // record number to be read
+ TInt iRecordNbr;
+ };
+
+#endif // _CMMENSTOREMESSHANDLER_H_
+
+// End of File
+