email_pub/email_widget_api/inc/emailobserverplugin.h
branchRCL_3
changeset 8 e1b6206813b4
equal deleted inserted replaced
4:e7aa27f58ae1 8:e1b6206813b4
       
     1 /*
       
     2 * Copyright (c) 2009 - 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Interface header for Email Observer Plugin API.
       
    15 *
       
    16 */
       
    17 
       
    18 #ifndef EMAILOBSERVERPLUGIN_H
       
    19 #define EMAILOBSERVERPLUGIN_H
       
    20 
       
    21 // System includes
       
    22 #include <ecom/ecom.h>
       
    23 
       
    24 namespace EmailInterface {
       
    25 
       
    26 // Forward declarations
       
    27 class MEmailObserverListener;
       
    28 class MEmailData;
       
    29 
       
    30 /**
       
    31  *  Class that client of this interface user instantiates
       
    32  */
       
    33 class CEmailObserverPlugin : public CBase
       
    34     {
       
    35 public:
       
    36     /**
       
    37      * Contructor
       
    38      * @param aImplUid implementation identifier used by the ECOM framework
       
    39      * @param aListener callback interface provided by the client/instantiator.
       
    40      *        Plugin should call this when it wants the widget data to be updated
       
    41      * @return plugin instance
       
    42      */
       
    43     inline static CEmailObserverPlugin* NewL(
       
    44         TUid aImplUid,
       
    45         MEmailObserverListener* aListener );
       
    46 
       
    47     /** destructor */
       
    48     inline virtual ~CEmailObserverPlugin();
       
    49 
       
    50     /**
       
    51      * Accessor for data that needs to be published
       
    52      * Plugin must implement this.
       
    53      * When client calls this, plugin must ensure that all necessary data is accessible/updated
       
    54      * @return interface to email data
       
    55      */
       
    56     virtual MEmailData& EmailDataL() = 0;
       
    57 
       
    58 private:
       
    59     /**
       
    60      * Unique instance identifier key
       
    61      */
       
    62     TUid iDtor_ID_Key;
       
    63     };
       
    64 
       
    65 // Inline functions
       
    66 #include "emailobserverplugin.inl"
       
    67 
       
    68 } // namespace
       
    69 
       
    70 #endif // EMAILOBSERVERPLUGIN_H