diff -r 000000000000 -r 5e5d6b214f4f servicewidget/servicewidgetdatapublisher/inc/cservicewidgetplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/servicewidget/servicewidgetdatapublisher/inc/cservicewidgetplugin.h Tue Feb 02 10:12:18 2010 +0200 @@ -0,0 +1,168 @@ +/* +* Copyright (c) 2008 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: This is a plugin implementation + * + * +*/ + +#ifndef CSERVICEWIDGETPLUGIN_H +#define CSERVICEWIDGETPLUGIN_H + +//content harvester +#include +#include +#include +#include +#include "mservicewidgetobservers.h" +#include +// FORWARD DECLARATIONS +class CServiceWidgetServiceManager; +class CServiceWidgetContentPublisher; +class CCoeEnv; +class MVIMPSTSettingsStore; +class CSPNotifyChange; + +/** + * + * Plugin implementation + * + * @servicewidgetdatapublisher.dll + * @since S60 5.0 + */ + +class CServiceWidgetPlugin : public CContentHarvesterPlugin, + public MSPNotifyChangeObserver, + public MServiceWidgetEventObserver, + public MAiPropertyExtension + { + friend class Cservicewidgetdatapublisher_ut; + public: + + /** + * Two-phased constructor. + * @return the instance of same class + */ + static CServiceWidgetPlugin* NewL(); + + /** + * Standard C++ destructor + */ + ~CServiceWidgetPlugin(); + + + private: + + /** + * Standard C++ constructor + */ + CServiceWidgetPlugin(); + + /** + * 2phase construction + */ + void ConstructL(); + + /** + * helper method for reading the service ids from cspsettings + */ + void ReadServiceIdsL(); + /** + * helper method for reading resource file + */ + void LoadResourceFileL(); + /** + * helper method for validating Service and creating/deleting service managers + * as per service + */ + void ValidateAllServicesL(); + + public : //CContentHarvesterPlugin + /** + * Triggers update process. + * all the operation must start here + */ + void UpdateL() ; + + public : // from MSPNotifyChangeObserver + + /** + * From MSPNotifyChangeObserver + * Callback when service has changed + * + * @since S60 5.0 + * @param aServiceId changed service + * @return None + */ + void HandleNotifyChange( TServiceId aServiceId ); + + /** + * From MSPNotifyChangeObserver + * Callback when service error occures + * + * @since S60 5.0 + * @param aError error code + * @return None + */ + void HandleError( TInt aError ); + + public: // from MServiceWidgetEventObserver + /** + * @param aPublisherId publisher id for Theme (it is service name). + * @param aEvent Event name (i.e. Active,Suspend,Resume,Deactivate,Selected) + *This function handles all homescreen callbacks (publisher received callback events + * from homescreen and direct them to plugin to take appropriate action.) + */ + void HandleServiceEventL(const TDesC& aPublisherId, const TDesC8& aEvent,TDesC& aInstId ); + + public: //From MAiPropertyExtension. + /** + * From MAiPropertyExtension. + * Read property of publisher plug-in. + * + * @param aProperty - identification of property. + * @return pointer to property value. + */ + TAny* GetPropertyL( TInt aProperty ); + + /** + * From MAiPropertyExtension. + * Write property value. + * + * @param aProperty - identification of property. + * @param aValue - contains pointer to property value. + */ + void SetPropertyL( TInt aProperty, TAny* aValue ); + + + private: // Data members + // owns : content publishing client to hsps + CServiceWidgetContentPublisher* iContentPublisher; + // owns : list of all service ids interested in service tab + RArray iServiceIds; + // owns : content prioritizer + RPointerArray iServiceManagers; + // Not owns : A static CEikonEnv + CCoeEnv* iEnv; + // owns : a resource offset + TInt iResourceOffset; + // owns, retrive settings from cenrep store + MVIMPSTSettingsStore* iSettingsStore; + // Own: service observer + CSPNotifyChange* iSpNotifyChange; + // Information about the content publisher (this plug-in) + TAiPublisherInfo iInfo; + }; + +#endif // CSERVICEWIDGETPLUGIN_H +// End of File