emailuis/nmframeworkadapter/inc/nmframeworkadapter.h
changeset 18 578830873419
child 20 ecc8def7944a
equal deleted inserted replaced
4:e7aa27f58ae1 18:578830873419
       
     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 NMFRAMEWORKADAPTER_H
       
    19 #define NMFRAMEWORKADAPTER_H
       
    20 
       
    21 
       
    22 #include <nmcommon.h>
       
    23 #include <nmdataplugininterface.h>
       
    24 #include <CFSMailCommon.h>
       
    25 #include <MFSMailEventObserver.h>
       
    26 
       
    27 class NmMailbox;
       
    28 class NmMessage;
       
    29 class NmFolder;
       
    30 class NmMessageEnvelope;
       
    31 class NmMessagePart;
       
    32 class NmOperation;
       
    33 class NmMessageCreationOperation;
       
    34 class CFSMailClient;
       
    35 class CFSMailMessage;
       
    36 class CFSMailMessagePart;
       
    37 class NmStoreEnvelopesOperation;
       
    38 class NmAddAttachmentsOperation;
       
    39 class NmOperation;
       
    40 class NmCheckOutboxOperation;
       
    41 class NmMessageSendingOperation;
       
    42 
       
    43 class NmFrameworkAdapter :
       
    44     public QObject,
       
    45     public NmDataPluginInterface,
       
    46     public MFSMailEventObserver
       
    47 {
       
    48     Q_OBJECT
       
    49     Q_INTERFACES(NmDataPluginInterface)
       
    50 
       
    51 public:
       
    52 
       
    53     NmFrameworkAdapter( );
       
    54 
       
    55     ~NmFrameworkAdapter( );
       
    56 
       
    57     int listMailboxIds(QList<NmId>& mailboxIdList);
       
    58 
       
    59     int listMailboxes(QList<NmMailbox*>& mailboxList);
       
    60 
       
    61     int getMailboxById(const NmId& id, NmMailbox*& mailbox);
       
    62 
       
    63     int deleteMailboxById(const NmId& id);
       
    64 
       
    65     int getMessageById(
       
    66             const NmId& mailboxId,
       
    67             const NmId& folderId,
       
    68             const NmId& messageId,
       
    69             NmMessage*& message);
       
    70 
       
    71     int listFolders(
       
    72             const NmId& mailboxId,
       
    73             QList<NmFolder*> &folderList);
       
    74    
       
    75     int listMessages(
       
    76             const NmId& mailboxId,
       
    77             const NmId& folderId,
       
    78             QList<NmMessageEnvelope*> &messageMetaDataList);
       
    79 
       
    80     NmOperation *fetchMessage( 
       
    81             const NmId &mailboxId, 
       
    82             const NmId &folderId,
       
    83             const NmId &messageId);
       
    84     
       
    85     NmOperation *fetchMessagePart( 
       
    86         const NmId &mailboxId,
       
    87         const NmId &folderId,
       
    88         const NmId &messageId,
       
    89         const NmId &messagePartId);
       
    90            
       
    91     NmId getStandardFolderId(
       
    92             const NmId& mailbox,
       
    93             NmFolderType folderType );
       
    94 
       
    95     int refreshMailbox(NmId mailboxId);
       
    96 
       
    97     int contentToMessagePart(
       
    98             const NmId &mailboxId,
       
    99             const NmId &folderId,
       
   100             const NmId &messageId,
       
   101             NmMessagePart &messagePart);
       
   102  
       
   103     int deleteMessages(
       
   104             const NmId &mailboxId,
       
   105             const NmId &folderId,
       
   106             const QList<NmId> &messageIdList);
       
   107 
       
   108     NmStoreEnvelopesOperation *storeEnvelopes(
       
   109             const NmId &mailboxId,
       
   110             const NmId &folderId,
       
   111             const QList<const NmMessageEnvelope*> &envelopeList);
       
   112 
       
   113     NmMessageCreationOperation *createNewMessage(
       
   114         const NmId &mailboxId);
       
   115 
       
   116     NmMessageCreationOperation *createForwardMessage(
       
   117         const NmId &mailboxId,
       
   118         const NmId &originalMessageId);
       
   119      
       
   120     NmMessageCreationOperation *createReplyMessage(
       
   121         const NmId &mailboxId,
       
   122         const NmId &originalMessageId,
       
   123         const bool replyAll);
       
   124     
       
   125     int saveMessage(const NmMessage &message);
       
   126 
       
   127     NmOperation *saveMessageWithSubparts(const NmMessage &message);
       
   128 
       
   129     void EventL(
       
   130         TFSMailEvent event,
       
   131         TFSMailMsgId mailbox,
       
   132         TAny* param1,
       
   133         TAny* param2,
       
   134         TAny* param3);
       
   135 
       
   136     int removeMessage(const NmId& mailboxId, const NmId& folderId, const NmId& messageId);
       
   137     
       
   138     void subscribeMailboxEvents(const NmId& mailboxId);
       
   139     
       
   140     void unsubscribeMailboxEvents(const NmId& mailboxId);
       
   141 
       
   142     NmMessageSendingOperation *sendMessage(NmMessage *message);
       
   143     
       
   144     NmAddAttachmentsOperation *addAttachments(
       
   145             const NmMessage &message, 
       
   146             const QList<QString> &fileList);
       
   147 
       
   148     NmOperation *removeAttachment(const NmMessage &message, const NmId &attachmentPartId);
       
   149 
       
   150     NmCheckOutboxOperation *checkOutbox(const NmId& mailboxId);
       
   151     
       
   152     NmSyncState syncState(const NmId& mailboxId) const;
       
   153     
       
   154     NmConnectState connectionState(const NmId& mailboxId) const;
       
   155     
       
   156 signals:
       
   157     void mailboxEvent(NmMailboxEvent event, const QList<NmId> &mailboxIds);
       
   158     void messageEvent(
       
   159             NmMessageEvent event,
       
   160             const NmId &folderId,
       
   161             const QList<NmId> &messageIds,
       
   162             const NmId& mailboxId); //added to provide mailboxId
       
   163     
       
   164     void syncStateEvent(
       
   165             NmSyncState state,
       
   166             const NmId mailboxId);
       
   167     
       
   168     void connectionEvent(NmConnectState state, const NmId mailboxId);
       
   169 
       
   170 private:
       
   171     
       
   172     void getMessageByIdL(
       
   173         const NmId& mailboxId,
       
   174         const NmId& folderId,
       
   175         const NmId& messageId,
       
   176         NmMessage*& message);
       
   177 
       
   178     void contentToMessagePartL(
       
   179         const NmId &mailboxId,
       
   180         const NmId &folderId,
       
   181         const NmId &messageId,
       
   182         NmMessagePart &messagePart);
       
   183         
       
   184     void listMessagesL(  
       
   185             const NmId &mailboxId,
       
   186             const NmId &folderId,
       
   187             QList<NmMessageEnvelope*> &messageMetaDataList);
       
   188     
       
   189     NmId getMailboxIdByMailMsgId(TFSMailMsgId mailbox);
       
   190 
       
   191     void removeMessageL(const NmId& mailboxId,
       
   192                         const NmId& folderId,
       
   193                         const NmId& messageId);
       
   194 
       
   195     CFSMailMessage* mailMessageFromEnvelopeL( 
       
   196         const NmMessageEnvelope& envelope);
       
   197 
       
   198     void childrenToNmMessagePartL(
       
   199             CFSMailMessagePart *cfsParent, 
       
   200             NmMessagePart *nmParent);
       
   201 
       
   202     int RefreshMailboxL(NmId mailboxId);
       
   203     
       
   204     void handleMailboxEvent(
       
   205             TFSMailMsgId mailbox,
       
   206             NmMailboxEvent event);
       
   207     
       
   208     void handleMessageEvent(TAny* param1, TAny* param2, NmMessageEvent event, TFSMailMsgId mailbox);
       
   209     
       
   210     void handleMailMoved(TAny* param1,TAny* param2,TAny* param3, TFSMailMsgId mailbox);
       
   211     
       
   212     void handleMailCopied(TAny* param1,TAny* param2, TFSMailMsgId mailbox);
       
   213     
       
   214     void handleSyncstateEvent(TAny* param1, TFSMailMsgId mailbox);
       
   215     
       
   216 private:
       
   217     CFSMailClient*  mFSfw;//singleton, not owned
       
   218 };
       
   219 
       
   220 
       
   221 #endif // NMFRAMEWORKADAPTER_H