networkhandling/networkhandlingengine/NetworkHandlingInc/CNWMessageHandler.h
changeset 0 ff3b6d0fd310
child 19 7d48bed6ce0c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkhandling/networkhandlingengine/NetworkHandlingInc/CNWMessageHandler.h	Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,168 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:  Message handler
+*
+*/
+
+
+
+#ifndef CNWMESSAGEHANDLER_H 
+#define CNWMESSAGEHANDLER_H 
+
+//  INCLUDES
+#include "NWHandlingEngine.h"
+#include "CNWSession.h"
+#include <mmtsy_names.h>
+#include <etel.h>
+#include <rmmcustomapi.h>
+#include <etelmm.h>
+
+// CONSTANTS
+// Max length of network provider name.
+const TInt KNWSubscriberIdLength = 15;
+// Max value of the SubscriberIdCounter.
+const TInt KMaxSubscriberIdRequests = 10;
+
+
+// DATA TYPES
+// Subscriber identity
+typedef TBuf<KNWSubscriberIdLength> TNWSubscriberId;
+
+// CLASS DECLARATION
+//Internal Network info definition
+struct TNWInterInfo
+    {
+    TUint iCellId;                                       // Cell Id
+    TUint iLac;                                          // Location area code
+    TNWSubscriberId iSubscriberId;                       // Subscriber identity
+    TBool iAreaKnown;                                    // Location Area known used for CELL_DCH mode
+    };
+
+
+// FORWARD DECLARATIONS
+class CNWNetworkMonitorBase;
+class CNWNetworkCurrentNetworkMonitor;
+class CNWNetworkModeMonitor;
+class CNWNetworkRegistrationStatusMonitor;
+class CNWProgrammableOperatorNameCommand;
+class CNWServiceProviderNameCommand;
+class CNWNetworkProviderNameCommand;
+class CNWSubscriberIdCommand;
+class RMmCustomAPI;
+
+// CLASS DECLARATION
+
+/**
+*  Handles network related messages.
+*
+*  @lib networkhandling.dll
+*  @since Series 60_2.8
+*/
+class CNWMessageHandler : public CBase
+    {
+    public:  // Destructor
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CNWMessageHandler();
+
+    public: // New functions
+
+        /**
+        * Reroutes messages to the client
+        * @param aMessage is the message id
+        */
+        IMPORT_C virtual void SendMessage( 
+                MNWMessageObserver::TNWMessages aMessage );
+
+
+        #ifdef TEF_LOGGING_ENABLED
+        /**
+        * Help function for logging.
+        * @param aMessage MNWMessageObserver::TNWMessages aMessage 
+        * @return message name, given the id of message.
+        */
+        TPtrC GetNameByMessage( MNWMessageObserver::TNWMessages aMessage ) const;
+        #endif
+
+        /**
+        * Handle Subscribe ID change
+        */
+        virtual void HandleSubscriberIdChange();
+
+        /**
+        * Reroutes error messages to the client
+        * @param aOperation is failed operation
+        * @param aErrorCode is returned Symbion OS Error Code
+        */
+        IMPORT_C void SendErrorMessage( 
+                MNWMessageObserver::TNWOperation aOperation, 
+                TInt aErrorCode );
+        
+        /**
+        * Update Operator name reading status
+        */
+        virtual void HandleUpdateReadingStatus(  
+                const TNWRead& aElementFile, TBool aReadStatus );
+
+    protected:
+
+        /**
+        * C++ default constructor.
+        */
+        IMPORT_C CNWMessageHandler( CNWSession& aNetworkData, 
+                                    MNWMessageObserver& aMessageObserver,
+                                    TNWInfo& aNWInfo );
+
+        /**
+        * Initializes base class member variables
+        */
+        void BaseConstructL();
+
+
+    protected:  // Data
+        // Array holding network monitors.
+        RPointerArray<class CNWNetworkMonitorBase>  iMonitorContainer;
+        //Pointer to the CNWNetworkProviderNameCommand object
+        CNWNetworkProviderNameCommand*      iNetworkProviderNameCommand;
+        //Pointer to the CNWSubscriberIdCommandCommand object
+        CNWSubscriberIdCommand*             iSubscriberIdCommand;
+        //Pointer to the CNWProgrammableOperatorNameCommand object
+        CNWProgrammableOperatorNameCommand* iProgrammableOperatorNameCommand;
+        //Pointer to the CNWServiceProviderNameHandler object
+        CNWServiceProviderNameCommand*      iServiceProviderNameCommand;
+        // Tells if phone is registered to network
+        TBool                       iIsRegistered;
+        // CNWSession object which handles network related commands
+        CNWSession&   iNetworkData;
+        //Reference to MNWMessageObserver
+        MNWMessageObserver&         iMessageObserver;
+        // Reference to the client's network info struct
+        TNWInfo&                    iNetworkInfo;
+        // ETel server connection
+        RTelServer                  iServer;
+        // ETel phone connection
+        RMobilePhone                iPhone;
+        //Custom API object
+        RMmCustomAPI                iCustomAPI;
+        // Pointer to the internal network info structure.
+        TNWInterInfo                iInterNetworkInfo;
+        // Previous network status
+        TNWStatus iPreviousStatus;
+    };
+
+#endif      // CNWMessageHandler_H   
+            
+// End of File