--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/adaptationlayer/tsy/nokiatsy_dll/inc/cmmpipecontrol.h Fri Nov 06 17:28:23 2009 +0000
@@ -0,0 +1,395 @@
+/*
+* Copyright (c) 2007-2008 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:
+*
+*/
+
+
+
+#ifndef CMMPIPECONTROL_H
+#define CMMPIPECONTROL_H
+
+// INCLUDES
+#include <iscnokiadefinitions.h>
+#include "cmmphonetsender.h"
+#include "cmmphonetreceiver.h" // for mmmmessagereceiver
+#include "nokiatsy_internal_variation.h"
+#ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
+#include "pn_const_for_uicc.h"
+#else /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
+#include <pn_const.h>
+#endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
+#include <pipeisi.h>
+#include <pipe_sharedisi.h>
+#include <ctsy/serviceapi/mmtsy_defaults.h>
+#include "nokiatsy_internal_variation.h"
+
+// CONSTANTS
+const TUint8 KFirstPepType = PN_PEP_TYPE_COMMON; // First PEP type
+const TUint8 KSecondPepType = PN_PEP_TYPE_GPRS; // Second PEP type
+const TUint8 KSecondPepDevice = 0x00; // Device Id of second PEP
+const TUint8 KSecondPepObject = 0x33; // Object Id of second PEP
+const TUint8 KUnknownTransID = 0x00;
+
+const TUint8 KInvalidPipeHandle = 0xFF;
+
+// Maximum number of simultaneous PipeHandle supported by this phone.
+const TInt KMmMaxNumberOfPipeHandles = KMmMaxNumberOfContexts;
+
+const TUint8 KFirstPepDevice = PN_DEV_HOST; // Device Id of first PEP
+
+#ifdef DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
+
+// Channel ID's
+// Proxy Id's are taken from IscNokiaDefinitions.h file
+const TUint8 KMmPacketContextProxy1_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy2_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy3_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy4_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy5_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy6_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy7_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy8_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy9_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy10_DOS = EIscNokiaMmTsy;
+const TUint8 KMmPacketContextProxy11_DOS = EIscNokiaMmTsy;
+
+#else
+
+const TUint8 KMmPacketContextProxy1_DOS = EIscNokiaNifPep0;
+const TUint8 KMmPacketContextProxy2_DOS = EIscNokiaNifPep1;
+const TUint8 KMmPacketContextProxy3_DOS = EIscNokiaNifPep2;
+const TUint8 KMmPacketContextProxy4_DOS = EIscNokiaNifPep3;
+const TUint8 KMmPacketContextProxy5_DOS = EIscNokiaNifPep4;
+const TUint8 KMmPacketContextProxy6_DOS = EIscNokiaNifPep5;
+const TUint8 KMmPacketContextProxy7_DOS = EIscNokiaNifPep6;
+const TUint8 KMmPacketContextProxy8_DOS = EIscNokiaNifPep7;
+const TUint8 KMmPacketContextProxy9_DOS = EIscNokiaNifPep8;
+const TUint8 KMmPacketContextProxy10_DOS = EIscNokiaNifPep9;
+const TUint8 KMmPacketContextProxy11_DOS = EIscNokiaNifPep10;
+
+#endif // DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
+
+// Dummy transaction id
+const TInt KDummyTrId = 0x0F;
+
+// Last byte index
+const TInt KLastByteIndex = 3;
+
+// MACROS
+ // None
+
+// DATA TYPES
+ // None
+
+// FUNCTION PROTOTYPES
+ // None
+
+// FORWARD DECLARATIONS
+class TIsiReceiveC;
+class CMmDataPackage;
+class CMmPacketContextMessHandler;
+class CMmPacketContextMesshandlerList;
+
+// CLASS DECLARATION
+// CMmPipeControl is used to create and send GSM-specific pipe control
+// ISI messages to PhoNet via PhoNetSender. It also receives
+// GSM-specific pipe control ISI messages from Phonet via PhoNetReceiver.
+class CMmPipeControl : public CBase,
+ public MMmMessageReceiver
+ {
+ public: // Constructors and destructor.
+
+ /**
+ * NewL method is used to create a new instance of class.
+ * @param CMmPhoNetSender*: pointer to phonet sender
+ * @param CMmPhoNetReceiver*: pointer to phonet receiver
+ * @param CMmPacketContextMessHandler*: pointer to context message handler
+ * @param CMmPacketContextMesshandlerList*: pointer to context list
+ * @return CMmPipeControl*: pointer to the message handler
+ */
+ static CMmPipeControl* NewL(
+ CMmPhoNetSender* aPhoNetSender,
+ CMmPhoNetReceiver* aPhoNetReceiver,
+ CMmPacketContextMessHandler* aMmPacketContextMessHandler,
+ CMmPacketContextMesshandlerList* aMmPacketContextMesshandlerList );
+
+ /**
+ * Destructor.
+ */
+ ~CMmPipeControl();
+
+ public: // New classes
+
+ // TPipeOperationInfo
+ class TPipeOperationInfo
+ {
+ public:
+ TUint8 iPipeHandle;
+ TUint8 iTransId;
+ };
+
+ public: // Functions from base classes
+
+ /**
+ * Isimsg received by PhonetReceiver.
+ * @param TIsiReceiveC, reference to the received message.
+ */
+ void ReceiveMessageL( const TIsiReceiveC& aIsiMessage );
+
+ public: // New functions
+
+ /**
+ * Creates PnsPipeCreateReq ISI message and sends it to Phonet.
+ * @param aTransId: transaction Id
+ * @param aPipeState: pipe state
+ * @param aFirstPepObject: First PEP object Id
+ * @return error value: Symbian error code
+ */
+ TInt PnsPipeCreateReq(
+ const TUint8 aTransId,
+ const TUint8 aPipeState,
+ const TUint8 aFirstPepObject ) const;
+
+ /**
+ * Creates PnsPipeEnableReq ISI message and sends it to Phonet.
+ * @param aPackage: data package
+ * @return error value: Symbian error code
+ */
+ TInt PnsPipeEnableReq( const CMmDataPackage& aPackage ) const;
+
+ /**
+ * Creates PnsPipeResetReq ISI message and sends it to Phonet.
+ * @param aTransId: transaction Id
+ * @param aPipeHandle: pipe handle
+ * @param aStateAfterReset: pipe state after reset
+ * @return error value: Symbian error code
+ */
+ TInt PnsPipeResetReq(
+ const TUint8 aTransId,
+ const TUint8 aPipeHandle,
+ const TUint8 aStateAfterReset );
+
+ /**
+ * Creates PnsPipeRemoveReq ISI message and sends it to Phonet.
+ * @param aTransId: transaction Id
+ * @param aPipeHandle: pipe handle
+ * @return error value: Symbian error code
+ */
+ TInt PnsPipeRemoveReq(
+ const TUint8 aTransId,
+ const TUint8 aPipeHandle );
+
+ public: // Functions from base classes
+ // None
+
+ protected: // New functions
+ // None
+
+ protected: // Functions from base classes
+ // None
+
+ private: // New functions
+
+ /**
+ * C++ default constructor.
+ */
+ CMmPipeControl();
+
+ /**
+ * By default EPOC constructor is private.
+ */
+ void ConstructL();
+
+#ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
+ /**
+ * Creates PnsNameQueryReq ISI message and sends it to Phonet.
+ * @return error value: Symbian error code
+ */
+ TInt PnsNameQueryReq() const;
+#endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
+
+ /**
+ * PnsPipeCreate response.
+ * @param aIsiMessage, reference to the received message.
+ */
+ void PnsPipeCreateResp( const TIsiReceiveC &aIsiMessage );
+
+ /**
+ * PnsPipeEnable response.
+ * @param aIsiMessage, reference to the received message.
+ */
+ void PnsPipeEnableResp( const TIsiReceiveC& aIsiMessage );
+
+ /**
+ * PnsPipeReset response.
+ * @param aIsiMessage, reference to the received message.
+ */
+ void PnsPipeResetResp( const TIsiReceiveC& aIsiMessage );
+
+ /**
+ * PnsPipeRemove response.
+ * @param aIsiMessage, reference to the received message.
+ */
+ void PnsPipeRemoveResp( const TIsiReceiveC& aIsiMessage );
+
+#ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
+ /**
+ * PnsNameQuery response.
+ * @param aIsiMessage, reference to the received message.
+ */
+ void PnsNameQueryResp( const TIsiReceiveC& aIsiMessage );
+#endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
+
+ /**
+ * Initialize lists.
+ */
+ void InitLists();
+
+ /**
+ * Set Pipe Handle.
+ * @param aPipeHandle: pipe handle
+ */
+ void SetPipeHandle( const TUint8 aPipeHandle );
+
+ /**
+ * Set Transaction Id.
+ * @param aPipeHandle: pipe handle
+ * @param aTransId: transaction Id
+ */
+ void SetTransactionId(
+ const TUint8 aPipeHandle,
+ const TUint8 aTransId );
+
+ /**
+ * Return Transaction Id.
+ * @param aPipeHandle: pipe handle
+ * @return TUint8, Transaction Id
+ */
+ TUint8 TransactionId( const TUint8 aPipeHandle ) const;
+
+ /**
+ * Reset Pipe Handle.
+ * @param aPipeHandle: pipe handle
+ */
+ void ResetPipeHandle( const TUint8 aPipeHandle );
+
+ /**
+ * If PipeHandle found returns True otherwise returns False.
+ * @param aPipeHandle: pipe handle
+ */
+ TBool IsOperationCalled( const TUint8 aPipeHandle ) const;
+
+#ifdef DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
+ /**
+ * PnsPepConnect request.
+ * @param aIsiMessage, reference to the received message.
+ */
+ void PnsPepConnectReq( const TIsiReceiveC& aIsiMessage );
+
+ /**
+ * PnsPepDisconnect request.
+ * @param aIsiMessage, reference to the received message.
+ */
+ void PnsPepDisconnectReq( const TIsiReceiveC& aIsiMessage );
+
+ /**
+ * PnsPepReset request.
+ * @param aIsiMessage, reference to the received message.
+ */
+ void PnsPepResetReq( const TIsiReceiveC& aIsiMessage );
+
+ /**
+ * PnsPepEnable request.
+ * @param aIsiMessage, reference to the received message.
+ */
+ void PnsPepEnableReq( const TIsiReceiveC& aIsiMessage );
+
+ /**
+ * PnsPepConnect response.
+ * @param aTransId: transaction Id
+ * @param aPipeHandle: pipe handle
+ */
+ void PnsPepConnectResp(
+ const TUint8 aTransId,
+ const TUint8 aPipeHandle );
+
+ /**
+ * PnsPepDisconnect response.
+ * @param aTransId: transaction Id
+ * @param aPipeHandle: pipe handle
+ */
+ void PnsPepDisconnectResp(
+ const TUint8 aTransId,
+ const TUint8 aPipeHandle );
+
+ /**
+ * PnsPepReset response.
+ * @param aTransId: transaction Id
+ * @param aPipeHandle: pipe handle
+ */
+ void PnsPepResetResp(
+ const TUint8 aTransId,
+ const TUint8 aPipeHandle );
+
+ /**
+ * PnsPepEnable response.
+ * @param aTransId: transaction Id
+ * @param aPipeHandle: pipe handle
+ */
+ void PnsPepEnableResp(
+ const TUint8 aTransId,
+ const TUint8 aPipeHandle );
+#endif // DUMMY_NIF_PEP_FOR_PACKET_DATA_TESTING_DOS
+
+ private: // Functions from base classes
+ // None
+
+ protected: // Data
+ // None
+
+ private: // Data
+
+ // A pointer to the context messhandler.
+ CMmPacketContextMessHandler* iContextMessHandler;
+
+ // Pointer to contextlist
+ CMmPacketContextMesshandlerList* iContextList;
+
+ // A pointer to the PhonetSender.
+ CMmPhoNetSender* iPhoNetSender;
+
+ // Pipe Operation Array contains TPipeOperation elements.
+ TPipeOperationInfo iPipeOperationArray[KMmMaxNumberOfPipeHandles];
+
+ // Device Id of second PEP.
+ TUint8 iSecondPepDeviceId;
+
+ // Object Id of second PEP.
+ TUint8 iSecondPepObjectId;
+
+ public: // Friend classes
+ // None
+
+ protected: // Friend classes
+ // None
+
+ private: // Friend classes
+ // None
+
+ };
+
+#endif // CMMPIPECONTROL_H
+
+// End of File