emailuis/nmframeworkadapter/inc/nmframeworkadapter.h
changeset 23 2dc6caa42ec3
parent 20 ecc8def7944a
child 27 9ba4404ef423
equal deleted inserted replaced
20:ecc8def7944a 23:2dc6caa42ec3
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    16 */
    16 */
    17 
    17 
    18 #ifndef NMFRAMEWORKADAPTER_H
    18 #ifndef NMFRAMEWORKADAPTER_H
    19 #define NMFRAMEWORKADAPTER_H
    19 #define NMFRAMEWORKADAPTER_H
    20 
    20 
    21 
       
    22 #include <nmcommon.h>
    21 #include <nmcommon.h>
    23 #include <nmdataplugininterface.h>
    22 #include <nmdataplugininterface.h>
    24 #include <CFSMailCommon.h>
    23 #include <CFSMailCommon.h>
    25 #include <MFSMailEventObserver.h>
    24 #include <MFSMailEventObserver.h>
    26 #ifdef Q_OS_SYMBIAN
    25 
    27 #include <xqsharablefile.h>
    26 #include <xqsharablefile.h>
    28 #endif
       
    29 
    27 
    30 class NmMailbox;
    28 class NmMailbox;
    31 class NmMessage;
    29 class NmMessage;
    32 class NmFolder;
    30 class NmFolder;
    33 class NmMessageEnvelope;
    31 class NmMessageEnvelope;
    37 class CFSMailClient;
    35 class CFSMailClient;
    38 class CFSMailMessage;
    36 class CFSMailMessage;
    39 class CFSMailMessagePart;
    37 class CFSMailMessagePart;
    40 class NmStoreEnvelopesOperation;
    38 class NmStoreEnvelopesOperation;
    41 class NmAddAttachmentsOperation;
    39 class NmAddAttachmentsOperation;
    42 class NmOperation;
       
    43 class NmCheckOutboxOperation;
    40 class NmCheckOutboxOperation;
       
    41 class NmMailboxSearchObserver;
    44 class NmMessageSendingOperation;
    42 class NmMessageSendingOperation;
       
    43 
    45 
    44 
    46 class NmFrameworkAdapter :
    45 class NmFrameworkAdapter :
    47     public QObject,
    46     public QObject,
    48     public NmDataPluginInterface,
    47     public NmDataPluginInterface,
    49     public MFSMailEventObserver
    48     public MFSMailEventObserver
    51     Q_OBJECT
    50     Q_OBJECT
    52     Q_INTERFACES(NmDataPluginInterface)
    51     Q_INTERFACES(NmDataPluginInterface)
    53 
    52 
    54 public:
    53 public:
    55 
    54 
    56     NmFrameworkAdapter( );
    55     NmFrameworkAdapter();
    57 
    56 
    58     ~NmFrameworkAdapter( );
    57     ~NmFrameworkAdapter();
    59 
    58 
    60     int listMailboxIds(QList<NmId>& mailboxIdList);
    59     int listMailboxIds(QList<NmId>& mailboxIdList);
    61 
    60 
    62     int listMailboxes(QList<NmMailbox*>& mailboxList);
    61     int listMailboxes(QList<NmMailbox*>& mailboxList);
    63 
    62 
    77    
    76    
    78     int listMessages(
    77     int listMessages(
    79             const NmId& mailboxId,
    78             const NmId& mailboxId,
    80             const NmId& folderId,
    79             const NmId& folderId,
    81             QList<NmMessageEnvelope*> &messageMetaDataList);
    80             QList<NmMessageEnvelope*> &messageMetaDataList);
    82 
    81     
    83     NmOperation *fetchMessage( 
    82     int listMessages(
       
    83             const NmId& mailboxId,
       
    84             const NmId& folderId,
       
    85             QList<NmMessage*> &messageList,
       
    86             const int maxAmountOfMessages = NmMaxItemsInMessageList);
       
    87 
       
    88     QPointer<NmOperation> fetchMessage( 
    84             const NmId &mailboxId, 
    89             const NmId &mailboxId, 
    85             const NmId &folderId,
    90             const NmId &folderId,
    86             const NmId &messageId);
    91             const NmId &messageId);
    87     
    92     
    88     NmOperation *fetchMessagePart( 
    93     QPointer<NmOperation> fetchMessagePart( 
    89         const NmId &mailboxId,
    94             const NmId &mailboxId,
    90         const NmId &folderId,
    95             const NmId &folderId,
    91         const NmId &messageId,
    96             const NmId &messageId,
    92         const NmId &messagePartId);
    97             const NmId &messagePartId);
    93     
    98     
    94     XQSharableFile messagePartFile(
    99     XQSharableFile messagePartFile(
    95             const NmId &mailboxId,
   100             const NmId &mailboxId,
    96             const NmId &folderId,
   101             const NmId &folderId,
    97             const NmId &messageId,
   102             const NmId &messageId,
   116     int deleteMessages(
   121     int deleteMessages(
   117             const NmId &mailboxId,
   122             const NmId &mailboxId,
   118             const NmId &folderId,
   123             const NmId &folderId,
   119             const QList<NmId> &messageIdList);
   124             const QList<NmId> &messageIdList);
   120 
   125 
   121     NmStoreEnvelopesOperation *storeEnvelopes(
   126     QPointer<NmStoreEnvelopesOperation> storeEnvelopes(
   122             const NmId &mailboxId,
   127             const NmId &mailboxId,
   123             const NmId &folderId,
   128             const NmId &folderId,
   124             const QList<const NmMessageEnvelope*> &envelopeList);
   129             const QList<const NmMessageEnvelope*> &envelopeList);
   125 
   130 
   126     NmMessageCreationOperation *createNewMessage(
   131     QPointer<NmMessageCreationOperation> createNewMessage(
   127         const NmId &mailboxId);
   132             const NmId &mailboxId);
   128 
   133 
   129     NmMessageCreationOperation *createForwardMessage(
   134     QPointer<NmMessageCreationOperation> createForwardMessage(
   130         const NmId &mailboxId,
   135             const NmId &mailboxId,
   131         const NmId &originalMessageId);
   136             const NmId &originalMessageId);
   132      
   137      
   133     NmMessageCreationOperation *createReplyMessage(
   138     QPointer<NmMessageCreationOperation> createReplyMessage(
   134         const NmId &mailboxId,
   139             const NmId &mailboxId,
   135         const NmId &originalMessageId,
   140             const NmId &originalMessageId,
   136         const bool replyAll);
   141             const bool replyAll);
   137     
   142     
   138     int saveMessage(const NmMessage &message);
   143     int saveMessage(const NmMessage &message);
   139 
   144 
   140     NmOperation *saveMessageWithSubparts(const NmMessage &message);
   145     QPointer<NmOperation> saveMessageWithSubparts(const NmMessage &message);
   141 
   146 
   142     void EventL(
   147     void EventL(
   143         TFSMailEvent event,
   148             TFSMailEvent event,
   144         TFSMailMsgId mailbox,
   149             TFSMailMsgId mailbox,
   145         TAny* param1,
   150             TAny* param1,
   146         TAny* param2,
   151             TAny* param2,
   147         TAny* param3);
   152             TAny* param3);
   148 
   153 
   149     int removeMessage(const NmId& mailboxId, const NmId& folderId, const NmId& messageId);
   154     int removeMessage(const NmId& mailboxId, const NmId& folderId, const NmId& messageId);
   150     
   155     
   151     void subscribeMailboxEvents(const NmId& mailboxId);
   156     void subscribeMailboxEvents(const NmId& mailboxId);
   152     
   157     
   153     void unsubscribeMailboxEvents(const NmId& mailboxId);
   158     void unsubscribeMailboxEvents(const NmId& mailboxId);
   154 
   159 
   155     NmMessageSendingOperation *sendMessage(NmMessage *message);
   160     QPointer<NmMessageSendingOperation> sendMessage(NmMessage *message);
   156     
   161     
   157     NmAddAttachmentsOperation *addAttachments(
   162     QPointer<NmAddAttachmentsOperation> addAttachments(
   158             const NmMessage &message, 
   163             const NmMessage &message, 
   159             const QList<QString> &fileList);
   164             const QList<QString> &fileList);
   160 
   165 
   161     NmOperation *removeAttachment(const NmMessage &message, const NmId &attachmentPartId);
   166     QPointer<NmOperation> removeAttachment(
   162 
   167             const NmMessage &message, 
   163     NmCheckOutboxOperation *checkOutbox(const NmId& mailboxId);
   168             const NmId &attachmentPartId);
       
   169 
       
   170     QPointer<NmCheckOutboxOperation> checkOutbox(const NmId& mailboxId);
   164     
   171     
   165     NmSyncState syncState(const NmId& mailboxId) const;
   172     NmSyncState syncState(const NmId& mailboxId) const;
   166     
   173     
   167     NmConnectState connectionState(const NmId& mailboxId) const;
   174     NmConnectState connectionState(const NmId& mailboxId) const;
   168     
   175     
   174 	int listMessages(
   181 	int listMessages(
   175             const NmId& mailboxId,
   182             const NmId& mailboxId,
   176             const NmId& folderId,
   183             const NmId& folderId,
   177             QList<NmMessageEnvelope*> &messageMetaDataList,
   184             QList<NmMessageEnvelope*> &messageMetaDataList,
   178             const int maxAmountOfEnvelopes);
   185             const int maxAmountOfEnvelopes);
   179 			
   186 
       
   187     int search(const NmId &mailboxId,
       
   188                const QStringList &searchStrings);
       
   189 
       
   190     int cancelSearch(const NmId &mailboxId);
       
   191 
       
   192 
   180 signals:
   193 signals:
       
   194 
   181     void mailboxEvent(NmMailboxEvent event, const QList<NmId> &mailboxIds);
   195     void mailboxEvent(NmMailboxEvent event, const QList<NmId> &mailboxIds);
       
   196 
   182     void messageEvent(
   197     void messageEvent(
   183             NmMessageEvent event,
   198             NmMessageEvent event,
   184             const NmId &folderId,
   199             const NmId &folderId,
   185             const QList<NmId> &messageIds,
   200             const QList<NmId> &messageIds,
   186             const NmId& mailboxId); //added to provide mailboxId
   201             const NmId& mailboxId); //added to provide mailboxId
   187     
   202     
   188     void syncStateEvent(
   203     void syncStateEvent(
   189         NmSyncState state,
   204             NmSyncState state,
   190         const NmOperationCompletionEvent &event );
   205             const NmOperationCompletionEvent &event );
   191     
   206     
   192     void connectionEvent(NmConnectState state, const NmId mailboxId);
   207     void connectionEvent(NmConnectState state, const NmId mailboxId, int errorCode);
       
   208 
       
   209     void matchFound(const NmId &messageId);
       
   210 
       
   211     void searchComplete();
       
   212 
   193 
   213 
   194 private:
   214 private:
   195     
   215     
   196     void getMessageByIdL(
   216     void getMessageByIdL(
   197         const NmId& mailboxId,
   217             const NmId& mailboxId,
   198         const NmId& folderId,
   218             const NmId& folderId,
   199         const NmId& messageId,
   219             const NmId& messageId,
   200         NmMessage*& message);
   220             NmMessage*& message);
   201 
   221 
   202     void contentToMessagePartL(
   222     void contentToMessagePartL(
   203         const NmId &mailboxId,
   223             const NmId &mailboxId,
   204         const NmId &folderId,
   224             const NmId &folderId,
   205         const NmId &messageId,
   225             const NmId &messageId,
   206         NmMessagePart &messagePart);
   226             NmMessagePart &messagePart);
   207         
   227         
   208     void listMessagesL(  
   228     void listMessagesL(  
   209             const NmId &mailboxId,
   229             const NmId &mailboxId,
   210             const NmId &folderId,
   230             const NmId &folderId,
   211             QList<NmMessageEnvelope*> &messageMetaDataList, 
   231             QList<NmMessageEnvelope*> &messageMetaDataList, 
   212             const int maxAmountOfEnvelopes);
   232             const int maxAmountOfEnvelopes);
   213     
   233     
       
   234     void listMessagesL(  
       
   235             const NmId &mailboxId,
       
   236             const NmId &folderId,
       
   237             QList<NmMessage*> &messageList, 
       
   238             const int maxAmountOfMessages);
       
   239 
       
   240     void searchL(const NmId &mailboxId,
       
   241                  const QList<NmId> &folderIds,
       
   242                  const QStringList &searchStrings,
       
   243                  NmMailboxSearchObserver &searchObserver);
       
   244 
   214     NmId getMailboxIdByMailMsgId(TFSMailMsgId mailbox);
   245     NmId getMailboxIdByMailMsgId(TFSMailMsgId mailbox);
   215 
   246 
   216     void removeMessageL(const NmId& mailboxId,
   247     void removeMessageL(const NmId& mailboxId,
   217                         const NmId& folderId,
   248                         const NmId& folderId,
   218                         const NmId& messageId);
   249                         const NmId& messageId);
   243     void handleSyncstateEvent(TAny* param1, TFSMailMsgId mailbox);
   274     void handleSyncstateEvent(TAny* param1, TFSMailMsgId mailbox);
   244     
   275     
   245 	void getFolderByIdL(
   276 	void getFolderByIdL(
   246             const NmId& mailboxId, 
   277             const NmId& mailboxId, 
   247             const NmId& folderId, 
   278             const NmId& folderId, 
   248             NmFolder*& unreadCount );		
   279             NmFolder*& unreadCount );
   249 	
   280 
   250 private:
   281 
   251     CFSMailClient*  mFSfw;//singleton, not owned
   282 private: // Data
       
   283 
       
   284     CFSMailClient* mFSfw; // Singleton, not owned
       
   285     NmMailboxSearchObserver *mSearchObserver; // Owned
   252 };
   286 };
   253 
   287 
   254 
   288 
   255 #endif // NMFRAMEWORKADAPTER_H
   289 #endif // NMFRAMEWORKADAPTER_H