emailservices/emailclientapi/inc/emailinterfacefactoryimpl.h
author hgs
Mon, 23 Aug 2010 23:32:31 +0300
changeset 62 a8c646b56683
parent 47 f83bd4ae1fe3
permissions -rw-r--r--
201033
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: Interface factory implementation class definition
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef EMAILINTERFACEFACTORY_H
hgs
parents:
diff changeset
    19
#define EMAILINTERFACEFACTORY_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include <emailinterfacefactory.h>
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
using namespace EmailInterface;
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
/**
hgs
parents:
diff changeset
    26
* Implements CEmailInterfaceFactory ECom interface
hgs
parents:
diff changeset
    27
*
hgs
parents:
diff changeset
    28
*/
hgs
parents:
diff changeset
    29
NONSHARABLE_CLASS( CEmailInterfaceFactoryImpl ) : public CEmailInterfaceFactory
hgs
parents:
diff changeset
    30
{
hgs
parents:
diff changeset
    31
public: 
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
    /**
hgs
parents:
diff changeset
    34
    * Creates interface factory
hgs
parents:
diff changeset
    35
    * @return interface factory
hgs
parents:
diff changeset
    36
    */
hgs
parents:
diff changeset
    37
    static CEmailInterfaceFactoryImpl* NewL();
hgs
parents:
diff changeset
    38
    
hgs
parents:
diff changeset
    39
    // destructor
hgs
parents:
diff changeset
    40
    ~CEmailInterfaceFactoryImpl();
hgs
parents:
diff changeset
    41
    
hgs
parents:
diff changeset
    42
    /** @see CEmailInterfaceFactory::InterfaceL */
hgs
parents:
diff changeset
    43
    MEmailInterface* InterfaceL( const TInt aInterfaceId );
hgs
parents:
diff changeset
    44
    
hgs
parents:
diff changeset
    45
private:
hgs
parents:
diff changeset
    46
    enum TEmailUidAppendRemoveMode
hgs
parents:
diff changeset
    47
        {
hgs
parents:
diff changeset
    48
        EEmailUidModeAppend,
hgs
parents:
diff changeset
    49
        EEmailUidModeRemove,
hgs
parents:
diff changeset
    50
        };
hgs
parents:
diff changeset
    51
    
hgs
parents:
diff changeset
    52
    /**
hgs
parents:
diff changeset
    53
    * Registers/removes application UID to/from P&S so that the application
hgs
parents:
diff changeset
    54
    * can be shutdown during Email IAD update. Update may fail if any
hgs
parents:
diff changeset
    55
    * application is using some Email services during the update.
hgs
parents:
diff changeset
    56
    * Application UID is removed from the list in destructor.
hgs
parents:
diff changeset
    57
    * @param aMode Is the current process UID added or removed from the list
hgs
parents:
diff changeset
    58
    */
hgs
parents:
diff changeset
    59
    void AppendOrRemoveUidL( const TEmailUidAppendRemoveMode aMode );
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
private:    
hgs
parents:
diff changeset
    62
    // c++ constructor and 2nd phase constructor
hgs
parents:
diff changeset
    63
    CEmailInterfaceFactoryImpl();
hgs
parents:
diff changeset
    64
    void ConstructL();
hgs
parents:
diff changeset
    65
};
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
#endif // EMAILINTERFACEFACTORY_H
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
// End of file