messagingapp/msgservices/msgserviceapp/inc/msgstorehandler.h
changeset 72 6f657153cbc5
parent 44 36f374c67aa8
child 73 ecf6a73a9186
--- a/messagingapp/msgservices/msgserviceapp/inc/msgstorehandler.h	Fri Sep 17 08:28:39 2010 +0300
+++ b/messagingapp/msgservices/msgserviceapp/inc/msgstorehandler.h	Mon Oct 04 00:13:15 2010 +0300
@@ -20,7 +20,16 @@
 
 // INCLUDE FILES
 #include <msvapi.h>
+#include <ccsdefs.h>
 
+// FORWARD DECLARATIONS
+class CMmsNotificationClientMtm;
+class CClientMtmRegistry;
+
+/**
+ * Class MsgStoreHandler
+ * Reads message information from message store.
+ */
 class MsgStoreHandler : public MMsvSessionObserver
     {
 public:
@@ -34,24 +43,22 @@
      */
     virtual ~MsgStoreHandler();
     
-public :
     /**
-     * @see MMsvSessionObserver
+     * Mark message as read
+     * @param messageId  message Id 
      */
-    void HandleSessionEventL(TMsvSessionEvent /*aEvent*/,
-            TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/);
-    
-public:
+    void markAsRead(int msgId);
+ 
     /**
-     * Mark message as read and get the message type
-     * @param messageId  message Id 
+     * Get message's type (msgtype and msgsubtype) info
+     * @param messageId  message Id
      * @param msgType message type is written to this.
-     * @param msgType message sub type is written to this.
+     * @param msgSubType message sub type is written to this.
      */
-    void markAsReadAndGetType(int msgId,
-                              int& msgType,
-                              int& msgSubType);
- 
+    void getMsgTypeInfo(int msgId,
+                        int& msgType,
+                        int& msgSubType);
+
     /**
      * Delete message.
      * @param msgId id of the message to be deleted.
@@ -64,29 +71,128 @@
      * @return true if it is a draft message,else false
      */
     bool isDraftMessage(int msgId);
+
+    /**
+     * Check if the message is locked to avoid viewing
+     * e.g. Outbox messages should not be opened in viewer
+     * @param msgId id of the message to be checked.
+     * @return bool, true if it is locked
+     */
+    bool locked(int msgId);
+
+    /**
+     * Checks if a message exists or not
+     * @param msgId, message id
+     * @return bool, true if message exists
+     */
+    bool exists(int msgId);
+
+    /**
+     * Sets content to message id
+     * @param msgId, message id
+     * @return int, status of setting context to message id
+     */
+    int setNotificationMessageId(int msgId);
+
+    /**
+     * Seeker method for getting mms notification's subject line
+     * @return QString, subject of mms notification
+     */
+    QString notificationSubject();
+
+    /**
+     * Seeker method for getting mms notification estimated msg size
+     * @return formatted string for msg size in KB
+     */
+    QString notificationMsgSize();
     
+    /**
+     * Seeker method for getting mms notification class type
+     * @return Notification Class type string
+     */
+    QString notificationClass();
+    
+    /**
+     * Seeker method for message status and error string
+     * mms notification's download state
+     * @param [OUT] status, msg status
+     * @param [OUT] statusStr, localized string of msg status
+     */
+    void notificationStatus(int& status,
+                     QString& statusStr);
+    
+    /**
+     * Seeker method getting expiry info of a notification msg
+     * @return formatted string of notification's expiry time
+     */
+    QString notificationExpiryDate();
+
 private:
     /**
+     * @see MMsvSessionObserver
+     */
+    void HandleSessionEventL(TMsvSessionEvent /*aEvent*/,
+            TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/);
+    
+    /**
      * Does all initilaizations
      */
     void InitL();
-    
+
+    /**
+     * Location (parent dir) of the message e.g. Draft, Inbox etc
+     * @param aMsgId, message id
+     * @return TMsvId, parent directory of the message
+     */
+    TMsvId MessageLocation( TMsvId aMsgId ) const;
+
+    /**
+     * Sets content to messageId
+     * @param messageId, Message Id content
+     */
+    void SetNotificationMessageIdL( TMsvId aMsgId );
+
     /**
-     * Extrcats the message type from TMsvEntry
-     * @param aEntry message entry.
-     * @param msgType message type is written to this.
-     * @param msgType message sub type is written to this.
+     * Get max receive size limit (for MMS) from settings
+     */
+    TInt MaxReceiveSizeLimitL();
+
+    /**
+     * Get MMS notification status.
+     * @param aMsvId MMS notification status.
      */
-    void extractMsgType(const TMsvEntry& aEntry,
-                        int& msgType,
-                        int& msgSubType);
-    
+    TCsMmsNotificationMsgState MmsNotificationStatus( TInt aMsvId );
+
+    /**
+     * verifys the current operation status
+     *@param aEntry, TMsvEntry
+     */
+    TBool OperationFinished( const TMsvEntry& aEntry ) const;
+
+    /**
+     * verifys the current operation status
+     * @param aEntry, TMsvEntry
+     */
+    TBool OperationOngoing( const TMsvEntry& aEntry ) const;
+
 private:
     /**
      * Session
      * Owned.
      */
-    CMsvSession* iMsvSession;     
+    CMsvSession* iMsvSession;
+    
+    /**
+     * Notification client mtm
+     * Owned.
+     */
+    CMmsNotificationClientMtm* iNotificationClient;
+
+    /**
+     * Mtm Registry
+     * Owned.
+     */
+    CClientMtmRegistry* iMtmReg;
     };
 
 #endif // __MSG_STORE_HANDLER_H__