diff -r dcf0eedfc1a3 -r d189ee25cf9d emailuis/nmailuiengine/inc/nmdataplugininterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailuis/nmailuiengine/inc/nmdataplugininterface.h Tue Aug 31 15:04:17 2010 +0300 @@ -0,0 +1,204 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef NMDATAPLUGININTERFACE_H_ +#define NMDATAPLUGININTERFACE_H_ + +#include +#include +#include + +#include "nmcommon.h" + +class NmMailbox; +class NmMessage; +class NmMessagePart; +class NmFolder; +class NmMessageEnvelope; +class NmOperation; +class NmMessageCreationOperation; +class NmStoreEnvelopesOperation; +class NmAddAttachmentsOperation; +class NmMessageSendingOperation; + +/*! + \class NmDataPluginInterface + \brief The class NmDataPluginInterface provides an interface to access email data from + protocol plugins. + Implementation classes of this interface are expected to emit following signals: + void mailboxEvent(NmMailboxEvent event, + const QList &mailboxIds); + void messageEvent(NmMessageEvent event, + const NmId &folderId, + const QList &messageIds); + const NmId& mailboxId); + */ +class NmDataPluginInterface +{ +public: + + virtual ~NmDataPluginInterface() {}; + + virtual int listMailboxIds(QList &mailboxIdList) = 0; + + virtual int listMailboxes(QList &mailboxList) = 0; + + virtual int getMailboxById(const NmId &id, NmMailbox *&mailbox) = 0; + + virtual QPointer deleteMailboxById(const NmId &id) = 0; + + virtual int getMessageById( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + NmMessage *&message) = 0; + + virtual int getFolderById( + const NmId& mailboxId, + const NmId& folderId, + NmFolder*& folder ) = 0; + + virtual int listFolders( + const NmId &mailboxId, + QList &folderList) = 0; + + virtual int listMessages( + const NmId &mailboxId, + const NmId &folderId, + QList &messageEnvelopeList) = 0; + + virtual int listMessages( + const NmId &mailboxId, + const NmId &folderId, + QList &messageEnvelopeList, + const int maxAmountOfEnvelopes ) = 0; + + virtual int listMessages( + const NmId &mailboxId, + const NmId &folderId, + QList &messageList, + const int maxAmountOfMessages = NmMaxItemsInMessageList) = 0; + + virtual QPointer fetchMessage( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId ) = 0; + + virtual QPointer fetchMessagePart( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const NmId &messagePartId) = 0; + + virtual QPointer fetchMessageParts( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const QList &messagePartIds) = 0; + + virtual XQSharableFile messagePartFile( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + const NmId &messagePartId) = 0; + + virtual NmId getStandardFolderId( + const NmId &mailbox, + NmFolderType folderType ) = 0; + + virtual int refreshMailbox(NmId mailboxId) = 0; + + virtual int goOnline(const NmId &mailboxId) = 0; + + virtual int goOffline(const NmId &mailboxId) = 0; + + virtual int contentToMessagePart( + const NmId &mailboxId, + const NmId &folderId, + const NmId &messageId, + NmMessagePart &messagePart) = 0; + + virtual int deleteMessages( + const NmId &mailboxId, + const NmId &folderId, + const QList &messageIdList) = 0; + + virtual QPointer storeEnvelopes( + const NmId &mailboxId, + const NmId &folderId, + const QList &envelopeList) = 0; + + virtual QPointer createNewMessage(const NmId &mailboxId) = 0; + + virtual QPointer createForwardMessage( + const NmId &mailboxId, + const NmId &originalMessageId) = 0; + + virtual QPointer createReplyMessage( + const NmId &mailboxId, + const NmId &originalMessageId, + const bool replyAll) = 0; + + virtual int saveMessage(const NmMessage &message) = 0; + + virtual QPointer saveMessageWithSubparts(const NmMessage &message) = 0; + + virtual int removeMessage( + const NmId& mailboxId, + const NmId& folderId, + const NmId& messageId) = 0; + + virtual void subscribeMailboxEvents(const NmId& mailboxId) = 0; + + virtual void unsubscribeMailboxEvents(const NmId& mailboxId) = 0; + + virtual QPointer sendMessage(NmMessage *message) = 0; + + virtual QPointer addAttachments( + const NmMessage &message, + const QList &fileList) = 0; + + virtual QPointer removeAttachment( + const NmMessage &message, + const NmId &attachmentPartId) = 0; + + virtual NmSyncState syncState(const NmId& mailboxId) const = 0; + + virtual NmConnectState connectionState(const NmId& mailboxId) const = 0; + + virtual int search(const NmId &mailboxId, + const QStringList &searchStrings) = 0; + + virtual int cancelSearch(const NmId &mailboxId) = 0; + + virtual QPointer removeDraftMessage(NmMessage *message) = 0; + + virtual int copyMessages( + const NmId &mailboxId, + const QList &messageIds, + const NmId &sourceFolderId, + const NmId &destinationFolderId) = 0; + + virtual int getSignature(const NmId &mailboxId, QString *&signature) = 0; +}; + +Q_DECLARE_INTERFACE(NmDataPluginInterface, "sf.app.commonmail.emailuis.nmailuiengine.NmDataPluginInterface/1.0") + + +#endif /* NMDATAPLUGININTERFACE_H_ */ + +