diff -r 000000000000 -r ff3b6d0fd310 networkhandling/networkhandlingengine/NetworkHandlingInc/CNWMessageHandler.h --- /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 +#include +#include +#include + +// 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 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 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