emailuis/nmailuiengine/inc/nmdataplugininterface.h
branchRCL_3
changeset 63 d189ee25cf9d
equal deleted inserted replaced
61:dcf0eedfc1a3 63:d189ee25cf9d
       
     1 /*
       
     2 * Copyright (c) 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:
       
    15 *
       
    16 */
       
    17 
       
    18 #ifndef NMDATAPLUGININTERFACE_H_
       
    19 #define NMDATAPLUGININTERFACE_H_
       
    20 
       
    21 #include <QList>
       
    22 #include <QPointer>
       
    23 #include <xqsharablefile.h>
       
    24 
       
    25 #include "nmcommon.h"
       
    26 
       
    27 class NmMailbox;
       
    28 class NmMessage;
       
    29 class NmMessagePart;
       
    30 class NmFolder;
       
    31 class NmMessageEnvelope;
       
    32 class NmOperation;
       
    33 class NmMessageCreationOperation;
       
    34 class NmStoreEnvelopesOperation;
       
    35 class NmAddAttachmentsOperation;
       
    36 class NmMessageSendingOperation;
       
    37 
       
    38 /*!
       
    39     \class NmDataPluginInterface
       
    40     \brief The class NmDataPluginInterface provides an interface to access email data from
       
    41     protocol plugins.
       
    42     Implementation classes of this interface are expected to emit following signals:
       
    43     void mailboxEvent(NmMailboxEvent event,
       
    44                       const QList<NmId> &mailboxIds);
       
    45     void messageEvent(NmMessageEvent event,
       
    46                       const NmId &folderId,
       
    47                       const QList<NmId> &messageIds);
       
    48                       const NmId& mailboxId);
       
    49  */
       
    50 class NmDataPluginInterface
       
    51 {
       
    52 public:
       
    53 
       
    54     virtual ~NmDataPluginInterface() {};
       
    55     
       
    56     virtual int listMailboxIds(QList<NmId> &mailboxIdList) = 0;
       
    57     
       
    58     virtual int listMailboxes(QList<NmMailbox*> &mailboxList) = 0;
       
    59     
       
    60     virtual int getMailboxById(const NmId &id, NmMailbox *&mailbox) = 0;
       
    61     
       
    62     virtual QPointer<NmOperation> deleteMailboxById(const NmId &id) = 0;
       
    63     
       
    64     virtual int getMessageById(
       
    65         const NmId &mailboxId,
       
    66         const NmId &folderId,
       
    67         const NmId &messageId,
       
    68         NmMessage *&message) = 0;
       
    69 		
       
    70     virtual int getFolderById(
       
    71         const NmId& mailboxId, 
       
    72         const NmId& folderId, 
       
    73         NmFolder*& folder ) = 0;
       
    74     
       
    75     virtual int listFolders(
       
    76         const NmId &mailboxId,
       
    77         QList<NmFolder*> &folderList) = 0;
       
    78     
       
    79     virtual int listMessages(
       
    80         const NmId &mailboxId,
       
    81         const NmId &folderId,
       
    82         QList<NmMessageEnvelope*> &messageEnvelopeList) = 0;  
       
    83     
       
    84     virtual int listMessages(
       
    85         const NmId &mailboxId,
       
    86         const NmId &folderId,
       
    87         QList<NmMessageEnvelope*> &messageEnvelopeList, 
       
    88 		const int maxAmountOfEnvelopes ) = 0;
       
    89     
       
    90     virtual int listMessages(
       
    91         const NmId &mailboxId,
       
    92         const NmId &folderId,
       
    93         QList<NmMessage*> &messageList, 
       
    94         const int maxAmountOfMessages = NmMaxItemsInMessageList) = 0;
       
    95     
       
    96     virtual QPointer<NmOperation> fetchMessage( 
       
    97         const NmId &mailboxId, 
       
    98         const NmId &folderId,
       
    99         const NmId &messageId ) = 0;
       
   100     
       
   101     virtual QPointer<NmOperation> fetchMessagePart( 
       
   102         const NmId &mailboxId,
       
   103         const NmId &folderId,
       
   104         const NmId &messageId,
       
   105         const NmId &messagePartId) = 0;
       
   106  
       
   107      virtual  QPointer<NmOperation> fetchMessageParts( 
       
   108         const NmId &mailboxId,
       
   109         const NmId &folderId,
       
   110         const NmId &messageId,
       
   111         const QList<NmId> &messagePartIds) = 0;
       
   112     
       
   113     virtual XQSharableFile messagePartFile(
       
   114         const NmId &mailboxId,
       
   115         const NmId &folderId,
       
   116         const NmId &messageId,
       
   117         const NmId &messagePartId) = 0;
       
   118     
       
   119     virtual NmId getStandardFolderId(
       
   120         const NmId &mailbox,
       
   121         NmFolderType folderType ) = 0;
       
   122     
       
   123     virtual int refreshMailbox(NmId mailboxId) = 0;
       
   124     
       
   125     virtual int goOnline(const NmId &mailboxId) = 0;
       
   126     
       
   127     virtual int goOffline(const NmId &mailboxId) = 0;
       
   128     
       
   129     virtual int contentToMessagePart(
       
   130         const NmId &mailboxId,
       
   131         const NmId &folderId,
       
   132         const NmId &messageId,
       
   133         NmMessagePart &messagePart) = 0;
       
   134     
       
   135     virtual int deleteMessages(
       
   136         const NmId &mailboxId,
       
   137         const NmId &folderId,
       
   138         const QList<NmId> &messageIdList) = 0;
       
   139 
       
   140     virtual QPointer<NmStoreEnvelopesOperation> storeEnvelopes(
       
   141         const NmId &mailboxId,
       
   142         const NmId &folderId,
       
   143         const QList<const NmMessageEnvelope*> &envelopeList) = 0;
       
   144 
       
   145     virtual QPointer<NmMessageCreationOperation> createNewMessage(const NmId &mailboxId) = 0;
       
   146 
       
   147     virtual QPointer<NmMessageCreationOperation> createForwardMessage(
       
   148         const NmId &mailboxId,
       
   149         const NmId &originalMessageId) = 0;
       
   150 
       
   151     virtual QPointer<NmMessageCreationOperation> createReplyMessage(
       
   152         const NmId &mailboxId,
       
   153         const NmId &originalMessageId,
       
   154         const bool replyAll) = 0;
       
   155 
       
   156     virtual int saveMessage(const NmMessage &message) = 0;
       
   157 
       
   158     virtual QPointer<NmOperation> saveMessageWithSubparts(const NmMessage &message) = 0;
       
   159 
       
   160     virtual int removeMessage(
       
   161         const NmId& mailboxId,
       
   162         const NmId& folderId,
       
   163         const NmId& messageId) = 0;
       
   164 
       
   165     virtual void subscribeMailboxEvents(const NmId& mailboxId) = 0;
       
   166     
       
   167     virtual void unsubscribeMailboxEvents(const NmId& mailboxId) = 0;
       
   168 
       
   169     virtual QPointer<NmMessageSendingOperation> sendMessage(NmMessage *message) = 0;
       
   170     
       
   171     virtual QPointer<NmAddAttachmentsOperation> addAttachments(
       
   172         const NmMessage &message,
       
   173         const QList<QString> &fileList) = 0;
       
   174     
       
   175     virtual QPointer<NmOperation> removeAttachment(
       
   176         const NmMessage &message,
       
   177         const NmId &attachmentPartId) = 0;
       
   178 
       
   179     virtual NmSyncState syncState(const NmId& mailboxId) const = 0;
       
   180     
       
   181     virtual NmConnectState connectionState(const NmId& mailboxId) const = 0;
       
   182 
       
   183     virtual int search(const NmId &mailboxId,
       
   184         const QStringList &searchStrings) = 0;
       
   185 
       
   186     virtual int cancelSearch(const NmId &mailboxId) = 0;
       
   187 
       
   188     virtual QPointer<NmOperation> removeDraftMessage(NmMessage *message) = 0;
       
   189 
       
   190     virtual int copyMessages(
       
   191         const NmId &mailboxId,
       
   192         const QList<quint64> &messageIds, 
       
   193         const NmId &sourceFolderId,
       
   194         const NmId &destinationFolderId) = 0;
       
   195 
       
   196     virtual int getSignature(const NmId &mailboxId, QString *&signature) = 0;
       
   197 };
       
   198 
       
   199 Q_DECLARE_INTERFACE(NmDataPluginInterface, "sf.app.commonmail.emailuis.nmailuiengine.NmDataPluginInterface/1.0")
       
   200 
       
   201 
       
   202 #endif /* NMDATAPLUGININTERFACE_H_ */
       
   203 
       
   204