diff -r 000000000000 -r 8e480a14352b messagingfw/senduiservices/watcher/inc/senduiwatcher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/senduiservices/watcher/inc/senduiwatcher.h Mon Jan 18 20:36:02 2010 +0200 @@ -0,0 +1,147 @@ +/* +* Copyright (c) 2006 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: SendUi Watcher signals service resolver, if service list +* is in need of an update. Update events are implicit update + (via Publish and Subcribe interface), + and mtm installation/removal. +* +*/ + + + + +#ifndef C_CSENDUIWATCHER_H +#define C_CSENDUIWATCHER_H + + +#include +#include +#include + + +class CSendUiPropertyObserver; +class CSendUiEcomObserver; +class CSendUiWatcher; + +const TInt KSendUiServiceListUpdateDelay = 5000000; +const TInt KSendUiWatcherUid = 0x102823B6; + +/** + * ?one_line_short_description + * + * ?more_complete_description + * + * @lib ?library + * @since S60 ?S60_version *** for example, S60 v3.0 + */ +class CSendUiWatcher : public CBase, + public MMsvSessionObserver + { + +public: + + static CSendUiWatcher* NewL( TAny* aWatcherParams ); + + virtual ~CSendUiWatcher(); + + /** + * Invokes SendUi Service Resolver + * + * @since S60 v3.2 + */ + + static TInt DoTaskL( TAny* aTask ); + + + void HandleUpdateServicesL( ); + + +// from base class MMsvSessionObserver + + /** + * From MMsvSessionObserver. + * HandleSessionEventL + * + * @since S60 v.3.2 + * @param aEvent Indicates the event type. + * @param aArg1 Not used + * @param aArg2 Not used + * @param aArg3 Not used + */ + void HandleSessionEventL( + TMsvSessionEvent aEvent, + TAny* /*aArg1*/, + TAny* /*aArg2*/, + TAny* /*aArg3*/ ); + +private: + + CSendUiWatcher(); + + void ConstructL(); + + /** + * Requests a timer event after short delay. + * + * @since S60 v3.2 + */ + void SetTimerL(); + + /** + * Gets feature status from FeatureManager and updates an internal feature flag. + * + * This is used for observing feature status changes and keeping sending service list up-to-date. + * + * @since S60 v5.0 + */ + void FeatureStatus( TInt aFeature, TInt &aNewFeatures, TInt aFeatureFlag ); + + /** + * Checks if Mtm count or language has changed and immediate update is needed. + * + * @since S60 v3.2 + */ + void CheckIfUpdateNeededL(); + +private: // data + + /** + * A channel of communication between a client thread and the Message + * Server thread. + * Own. + */ + CMsvSession* iSession; + + /** + * Publish and Subcribe API observer + * Own. + */ + CSendUiPropertyObserver* iPropertyObserver; + + /** + * Observes Ecom events. Requests update, if SendUI Ecom service amount + * changes. + * Own. + */ + CSendUiEcomObserver* iEcomObserver; + + /** + * Own. + */ + CPeriodic* iTimer; + + }; + + +#endif // C_CSENDUIWATCHER_H