williamr@4: /* williamr@4: * Copyright (c) 2009 - 2009 Nokia Corporation and/or its subsidiary(-ies). williamr@4: * All rights reserved. williamr@4: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@4: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: * williamr@4: * Initial Contributors: williamr@4: * Nokia Corporation - initial contribution. williamr@4: * williamr@4: * Contributors: williamr@4: * williamr@4: * Description: Interface header for Email Observer Plugin API. williamr@4: * williamr@4: */ williamr@4: williamr@4: #ifndef EMAILOBSERVERPLUGIN_H williamr@4: #define EMAILOBSERVERPLUGIN_H williamr@4: williamr@4: // System includes williamr@4: #include williamr@4: williamr@4: namespace EmailInterface { williamr@4: williamr@4: // Forward declarations williamr@4: class MEmailObserverListener; williamr@4: class MEmailData; williamr@4: williamr@4: /** williamr@4: * Class that client of this interface user instantiates williamr@4: */ williamr@4: class CEmailObserverPlugin : public CBase williamr@4: { williamr@4: public: williamr@4: /** williamr@4: * Contructor williamr@4: * @param aImplUid implementation identifier used by the ECOM framework williamr@4: * @param aListener callback interface provided by the client/instantiator. williamr@4: * Plugin should call this when it wants the widget data to be updated williamr@4: * @return plugin instance williamr@4: */ williamr@4: inline static CEmailObserverPlugin* NewL( williamr@4: TUid aImplUid, williamr@4: MEmailObserverListener* aListener ); williamr@4: williamr@4: /** destructor */ williamr@4: inline virtual ~CEmailObserverPlugin(); williamr@4: williamr@4: /** williamr@4: * Accessor for data that needs to be published williamr@4: * Plugin must implement this. williamr@4: * When client calls this, plugin must ensure that all necessary data is accessible/updated williamr@4: * @return interface to email data williamr@4: */ williamr@4: virtual MEmailData& EmailDataL() = 0; williamr@4: williamr@4: private: williamr@4: /** williamr@4: * Unique instance identifier key williamr@4: */ williamr@4: TUid iDtor_ID_Key; williamr@4: }; williamr@4: williamr@4: // Inline functions williamr@4: #include "emailobserverplugin.inl" williamr@4: williamr@4: } // namespace williamr@4: williamr@4: #endif // EMAILOBSERVERPLUGIN_H