convergedconnectionhandler/cchserver/inc/cchservicehandler.h
branchRCL_3
changeset 21 f742655b05bf
parent 20 65a3ef1d5bd0
child 22 d38647835c2e
--- a/convergedconnectionhandler/cchserver/inc/cchservicehandler.h	Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,530 +0,0 @@
-/*
-* Copyright (c) 2007-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:  CCCHServiceHandler declaration
-*
-*/
-
-
-#ifndef C_CCHSERVICEHANDLER_H
-#define C_CCHSERVICEHANDLER_H
-
-// INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-#include <mspnotifychangeobserver.h>
-
-#include "cchserviceinfo.h"
-#include "cchsubserviceinfo.h"
-#include "cchservicenotifier.h"
-#include "cchclientserver.h"
-#include "cchcommdbwatcherobserver.h"
-
-// CONSTANTS
-// None
-
-// MACROS
-// None
-
-// FUNCTION PROTOTYPES
-// None
-
-// FORWARD DECLARATIONS
-class CCCHServiceInfo;
-class CCCHServerBase;
-class CCCHSubserviceInfo;
-class CSPNotifyChange;
-class CCchUIHandler;
-class CCchWlanExtension;
-class CCCHCommDbWatcher;
-
-// DATA TYPES
-typedef RPointerArray<CCCHServiceInfo> RServiceArray;
-
-// CLASS DECLARATION
-
-/**
- *  CCCHServiceHandler declaration
- *  Handles services and service related components
- *  @lib cchserver.exe
- *  @since S60 3.2
- */
-NONSHARABLE_CLASS( CCCHServiceHandler ) : public CBase,
-                                          private MCCHServiceNotifier,
-                                          private MSPNotifyChangeObserver,
-                                          private MCCHCommDbWatcherObserver
-    {
-
-public: // Constructors and destructor
-
-    /**
-    * Two-phased constructor.
-    */
-    static CCCHServiceHandler* NewL( CCCHServerBase& aServer );
-
-    /**
-     * Two-phased constructor.
-     */
-    static CCCHServiceHandler* NewLC( CCCHServerBase& aServer );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CCCHServiceHandler();
-
-public: // New functions
-
-    /**
-     * Initialize object
-     * @since S60 3.2
-     */
-    void InitServiceHandlerL();
-
-    /**
-     * Update service and subservice's state
-     * @since S60 3.2
-     * @param aReadSettingTable If ETrue class reads and updates 
-     * all services from Service Provider Settings
-     */
-    void UpdateL( TBool aReadSettingTable = EFalse );
-
-    /**
-     * Enables service
-     * @since S60 3.2
-     * @param aServiceSelection Service to enable
-     * @param aConnectivityCheck Is value is True Connectivity Plug-in will
-     * make test call to check is the connection truly working.
-     * @return General symbian error code.
-     */
-    TInt EnableService( const TServiceSelection aServiceSelection,
-                        const TBool aConnectivityCheck );
-
-    /**
-     * Disables service
-     * @since S60 3.2
-     * @param aServiceSelection Service to disable
-     * @return General symbian error code.
-     */
-    TInt DisableService( const TServiceSelection aServiceSelection );
-
-    /**
-     * Set new connection information to Service
-     * @since S60 3.2
-     * @param aServiceConnInfo Connection information
-     * @return General symbian error code.
-     */
-    TInt SetConnectionInfo( const TServiceConnectionInfo aServiceConnInfo );
-
-    /**
-     * Get connection information from Service
-     * @since S60 3.2
-     * @param aServiceSelection Selected Service
-     * @param aServiceConnInfo On completion contains Service's 
-     * connection infomation
-     * @return General symbian error code.
-     */
-    TInt GetConnectionInfo( TServiceConnectionInfo& aServiceConnInfo );
-
-    /**
-     * Is any service's startup-flag set to true
-     * @since S60 3.2
-     * @return ETrue if startup-flag is set to true
-     */
-    TBool IsStartupFlagSet() const;
-    
-    /**
-     * Subservice's enable at startup info setter. 
-     * Method does not change value for permanently. 
-     * CCCHSPSHandler::SetLoadAtStartUpL sets value for permanently. 
-     * @since S60 3.2
-     * @param aServiceSelection Service which owns startup flag
-     * @param aLoadAtStartUp New startup flag
-     * @return KErrNotFound if service or subservice does not exist
-     */
-    TInt SetStartupFlag( const TServiceSelection aServiceSelection, 
-        TBool aLoadAtStartUp ) const;
-    
-    /**
-     * Load Plug-ins
-     * @since S60 3.2
-     */
-    void LoadPluginsL();
-    
-    /**
-     * Unloads Plug-in(s) of certain service; if all
-     * subservices in one plugin are disabled, those are unloaded.
-     * @since S60 3.2
-     */
-    void UnloadDisabledPluginsL( );
-    
-    /**
-     * Checks if certain subservice exists in certain state
-     * @param aType Subservice type
-     * @param aState Subservice state to be checked
-     * @since S60 3.2
-     */
-    TBool Exists( TCCHSubserviceType aType, 
-                  TCCHSubserviceState aState,
-                  TInt aError ) const;
-                                  
-    /**
-     * Count of Services
-     * @since S60 3.2
-     * @param aMessage IPC message;
-     */
-    void ServiceCountL( RMessage2 aMessage ) const;
-    
-    /**
-     * Get all services and subservices.
-     * @since S60 3.2
-     * @param aMessage IPC message
-     */
-    void GetServicesL( RMessage2 aMessage );
-
-    /** 
-     * Get state of service or subservice of a certain service
-     * @since S60 3.2
-     * @param aMessage IPC message
-     * @return General symbian error code.
-     */
-    TInt GetServiceState( const RMessage2 aMessage );
-
-    /** 
-     * Get state of service
-     * @since S60 3.2
-     * @param aServiceId Service which to be checked
-     * @return A state of the service.
-     */
-    TCCHSubserviceState CCCHServiceHandler::ServiceState(
-            const TUint aServiceId );
-    
-    /** 
-     * Get info of service or subservice of a certain service
-     * @since S60 3.2
-     * @param aMessage IPC message
-     * @return General symbian error code.
-     */
-    TInt GetServiceInfo( const RMessage2 aMessage );
-
-    /** 
-     * Reserves the service for exclusive use
-     * @since S60 3.2
-     * @param aMessage IPC message
-     * @return General symbian error code.
-     */
-    TInt ReserveService( const RMessage2 aMessage );
-
-    /** 
-     * Frees the exclusive service reservation
-     * @since S60 3.2
-     * @param aMessage IPC message
-     * @return General symbian error code.
-     */
-    TInt FreeService( const RMessage2& aMessage );
-    
-    /** 
-     * Is the service exclusively reserved?
-     * @since S60 3.2
-     * @param aMessage IPC message
-     * @return ETrue if service is reserved for exclusive use.
-     */
-    void IsReserved( RMessage2 aMessage ) const;
-    
-    /**
-     * Service exist
-     * @since S60 3.2
-     * @param aSelection Checked Service
-     * @return TInt index if found else KErrNotFound 
-     */
-    TInt ServiceExist( TServiceSelection aSelection ) const;
-    
-    /**
-     * Find service by service id
-     * @since S60 3.2
-     * @param serviceId
-     * @return TInt position within the iServices array or KErrNotFound
-     */
-    TInt FindService( TUint32 aServiceId ) const;
-    
-    /**
-     * Subscribe to service change notifies
-     * @since S60 3.2
-     */
-    void EnableNotifyChange();
-    
-    /**
-     * Cancel service change notifies
-     * @since S60 3.2
-     */
-    void DisableNotifyChange();
-        
-    /**
-     * Get all subservice types which uses given Plug-in uid.
-     * @since S60 3.2
-     * @param aServiceId Service which to be checked
-     * @param aSubserviceTypes On completion contains subservice types.
-     */
-    void GetSubserviceTypesL( const TUint aServiceId, 
-        RArray<TCCHSubserviceType>& aSubserviceTypes ) const;
-    
-    /**
-     * Disables Wlan scan if needed
-     */
-    void DisableWlanScan();
-    
-    /**
-     * Handle restart situation, all services and subservices
-     * goes to disabled state.
-     */
-    void HandleRestartL();
-    
-protected: // From base classes
-    
-    /**
-     * Determines if we should start recovery
-     * @since S60 3.2
-     * @param aServiceId Service which state has changed
-     * @param aError Subservice's error. 
-     * @return ETrue if recovery is needed
-     */
-
-    TBool IsRecoveryNeeded( const TCCHSubserviceState aState, 
-                            TInt aError );
-                               
-    /**
-     * Service state notifier.
-     * @since S60 3.2
-     * @param aServiceId Service which state has changed
-     * @param aSubService Subservice's type. 
-     * @param aState A new state of the service.
-     */
-    void StateChangedL( const TUint aServiceId,
-                        const TCCHSubserviceType aSubService,
-                        const TCCHSubserviceState aState,
-                        const TInt aError );
-        
-    /**
-     * Handle notify change event.
-     * From MSPNotifyChangeObserver;
-     *
-     * @since S60 3.2
-     * @param aServiceId The service ID of changed service
-     */
-    void HandleNotifyChange( TServiceId aServiceId );
-    
-    /**
-     * Handle error
-     * 
-     * @since S60 3.2
-     */
-    void HandleError( TInt aError );
-    
-private:
-
-    /**
-     * C++ default constructor.
-     */
-    CCCHServiceHandler( CCCHServerBase& aServer );
-    
-    /**
-     * By default Symbian 2nd phase constructor is private.
-     */
-    void ConstructL();
-
-    /**
-     * Add service to service array
-     * @since S60 3.2
-     * @param aService service information
-     */
-    void AddServiceL( TCCHService& aService );
-    
-    /**
-     * Counts how many Service contains this kind of Subservice
-     * @since S60 3.2
-     * @param aType Subservice's type
-     * @return TInt Count of Service
-     */
-    TInt ServiceCount( const TCCHSubserviceType aType ) const;
-
-    /**
-     * Starts connection recovery timer
-     * @param aFunction The function to call after the time out
-     */
-    void StartConnectionRecoveryTimer( TInt (*aFunction)(TAny* aPtr) );
-
-    /**
-     * Cancels the connection recovery timer
-     */
-    void CancelConnectionRecoveryTimer();
-    
-    /**
-     * Connection recovery callback
-     * @param aSelf this object
-     */
-    static TInt ConnectionRecoveryEvent( TAny* aSelf );
-    
-    /**
-     * Handles connection recovery event
-     */
-    void HandleConnectionRecovery();
-    
-    /**
-     * Starts plugin unload timer
-     * @param aFunction The function to call after the time out
-     */
-    void StartPluginUnloadTimer();
-
-    /**
-     * Cancels the connection recovery timer
-     */
-    void CancelPluginUnloadTimer();
-    
-    /**
-     * Starts handle notify delay timer
-     * @param aFunction The function to call after the time out
-     */
-    void StartHandleNotifyDelayTimer();
-
-    /**
-     * Cancels the handler notify delay timer
-     */
-    void CancelHandleNotifyDelayTimer();
-    
-    /**
-     * Plugin unload callback
-     * @param aSelf this object
-     */
-    static TInt PluginUnloadEvent( TAny* aSelf );
-    
-    /**
-     * Handle notify event callback
-     * @param aSelf this object
-     */
-    static TInt HandleNotifyEvent( TAny* aSelf );
-    
-    /**
-     * Handles plugin unload event
-     */
-    void HandlePluginUnload();
-    
-    /**
-     * Handles delayed notify event
-     */
-    void HandleDelayedNotifyEvent();
-    
-    /**
-     * From MCCHCommDbWatcherObserver, handles commsdb events
-     */
-    void HandleWLANIapAdded( TInt aSNAPId );
-    
-    /**
-     * Checks if there is wlan iap used, second part
-     */
-    TBool UsesWlanIap( const TServiceSelection& aServiceSelection );
-    
-    /**
-     * Checks if there is wlan iap used
-     */
-    TBool HasWlanIap( const TServiceSelection& aServiceSelection );
-    
-    /**
-     * Checks if IAP or SNAP is defined for certain subservice
-     */
-    TBool IsConnectionDefinedL( const TServiceSelection& aServiceSelection );
-    
-    /**
-     * Checks if IAP or SNAP is defined for certain service
-     */
-    TBool IsServiceConnectivityDefinedL( const TServiceSelection& aServiceSelection );
-    
-private: // data
-
-    /**
-     * Handle to server
-     */
-    CCCHServerBase&                 iServer;
-
-    /**
-     * Service array
-     */
-    RServiceArray                   iServices;
-    
-    /**
-     * Pointer to CSPNotifyChange
-     */
-    CSPNotifyChange*                iNotifier;
-    
-    /**
-     * Service id array
-     */
-    RIdArray                        iServiceIds;
-    
-    /**
-     * UI handler to show VoIP small icon etc.
-     */
-    CCchUIHandler*                  iCchUIHandler;
-    
-    /**
-     * Connection recovery timer. Owned.
-     */
-    CPeriodic* iConnectionRecoveryTimer;
-    
-    /**
-     * Plugin unload timer. Owned.
-     */
-    CPeriodic* iPluginUnloadTimer;
-    
-    /**
-     * Handle notify delay timer. Owned.
-     */
-    CPeriodic* iHandleNotifyDelayTimer;
-    
-    /**
-     * Recovery trial counter
-     */
-    TInt iConnectionRecoveryTry;
-    
-    /**
-     * Services that require recovery
-     */
-    RArray<TServiceSelection> iServicesInRecovery;
-    
-    /**
-     * Recovery intervals
-     */
-    RArray<TInt> iRecoveryInterval;
-    
-    /**
-     * WLAN extension
-     */
-    CCchWlanExtension* iWlanExtension;
-    
-    /**
-     * CommsDb watcher
-     */
-    CCCHCommDbWatcher* iCommDbWatcher;
-    
-    /**
-     * Disable SPSettings notifications
-     */
-    TBool iCancelNotify;
-    
-    /**
-     * Service id of delayed handle notify event
-     */
-    TServiceId iDelayedHandleNotifyServiceId;
-    };
-
-#endif // C_CCHSERVICEHANDLER_H
-
-// End of file