email_plat/email_client_api/inc/memailclientapi.h
author hgs
Thu, 30 Sep 2010 11:43:07 +0300
changeset 74 6c59112cfd31
parent 47 email_plat/email_client_api/memailclientapi.h@f83bd4ae1fe3
permissions -rw-r--r--
201039
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: ECom interface for Email Client API
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef MEMAILCLIENTAPI_H
hgs
parents:
diff changeset
    20
#define MEMAILCLIENTAPI_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <emailapidefs.h>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
namespace EmailInterface {
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
class MEmailMailbox;
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
typedef RPointerArray<MEmailMailbox> RMailboxPtrArray;
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
/**
hgs
parents:
diff changeset
    32
 * Email client main interface for accessing mailboxes and launching
hgs
parents:
diff changeset
    33
 * email editor and viewer.
hgs
parents:
diff changeset
    34
 * Use CEmailInterfaceFactory::InterfaceL( KEmailClientApiInterface )
hgs
parents:
diff changeset
    35
 * to get instance. Use Release() (from MEmailInterface) when the instance 
hgs
parents:
diff changeset
    36
 * is no more needed.
hgs
parents:
diff changeset
    37
 * 
hgs
parents:
diff changeset
    38
 */
hgs
parents:
diff changeset
    39
class MEmailClientApi : public MEmailInterface
hgs
parents:
diff changeset
    40
{
hgs
parents:
diff changeset
    41
public:
hgs
parents:
diff changeset
    42
    
hgs
parents:
diff changeset
    43
    /** returns mailbox by id, ownership transferred */
hgs
parents:
diff changeset
    44
    virtual MEmailMailbox* MailboxL( const TMailboxId& aId ) = 0;
hgs
parents:
diff changeset
    45
    
hgs
parents:
diff changeset
    46
    /** 
hgs
parents:
diff changeset
    47
     * Conveninence method for accessing mailbox by own addresss.
hgs
parents:
diff changeset
    48
     */
hgs
parents:
diff changeset
    49
    virtual MEmailMailbox* MailboxL( const TPtrC& aAddress ) = 0;
hgs
parents:
diff changeset
    50
        
hgs
parents:
diff changeset
    51
    /**
hgs
parents:
diff changeset
    52
    * Gets all mailboxes in pointer array. It is recommended to free other
hgs
parents:
diff changeset
    53
    * mailboxes besides needed one to optimise memory usage.
hgs
parents:
diff changeset
    54
    */    
hgs
parents:
diff changeset
    55
    virtual TInt GetMailboxesL( RMailboxPtrArray& aMailboxes ) = 0;
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
    /**
hgs
parents:
diff changeset
    58
    * Launch policy defines behavior when launching email application
hgs
parents:
diff changeset
    59
    */
hgs
parents:
diff changeset
    60
    enum TLaunchPolicy {
hgs
parents:
diff changeset
    61
        // Launch email application as from menu application by the user
hgs
parents:
diff changeset
    62
        EDefault,
hgs
parents:
diff changeset
    63
        // Shows inbox with unseen messages. If there are no unseen messages
hgs
parents:
diff changeset
    64
        // behavior is same as EDefault. This one is not currently supported.
hgs
parents:
diff changeset
    65
        EShowLastUnseenMailbox
hgs
parents:
diff changeset
    66
    };
hgs
parents:
diff changeset
    67
    /**
hgs
parents:
diff changeset
    68
     * Launches Email application with defined launch behavior
hgs
parents:
diff changeset
    69
     * The method follows "fire and forget" pattern, returns immediately.
hgs
parents:
diff changeset
    70
     * @param aPolicy defines behavior for app launch
hgs
parents:
diff changeset
    71
     */
hgs
parents:
diff changeset
    72
    virtual void LaunchEmailL( const TLaunchPolicy aPolicy ) = 0;
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
};
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
}  // namespace EmailInterface
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
#endif // MEMAILCLIENTAPI_H