emailservices/emailstore/message_store/server/inc/MsgStoreSortResultRowSet.h
changeset 0 8466d47a6819
child 8 e1b6206813b4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/emailstore/message_store/server/inc/MsgStoreSortResultRowSet.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,128 @@
+/*
+* Copyright (c) 2006 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:  Message store sort result row set.
+*
+*/
+
+
+#ifndef MSGSTORE_SORT_RESULT_ROWSET_
+#define MSGSTORE_SORT_RESULT_ROWSET_
+
+#include "ContainerStoreSortingTable.h"
+#include "MsgStoreTypes.h"
+
+// ==================================
+// CLASS: CMsgStoreSortResultRowSet
+// ==================================
+class CMsgStoreSortResultRowSet : public CBase
+	{
+
+	public:
+		static CMsgStoreSortResultRowSet* NewL( const TMsgStoreSortCriteria& aSortCriteria, 
+		                                        TInt aMessageIdColNum,
+		                                        TInt aReceivedDateColNum,
+		                                        TInt aReadUnreadColNum,
+		                                        TInt aPriotiryColNum,
+		                                        TInt aFlagStatusColNum,
+		                                        TInt aSizeColNum,
+		                                        TInt aAttachmentFlagColNum );
+		                                        
+		virtual ~CMsgStoreSortResultRowSet();
+		
+		virtual void ToTopL();
+        virtual void ToEndL();
+		
+        virtual TBool HasMorePreviousL();
+        virtual TBool HasMoreNextL();
+		
+		//CMsgStoreSortResultRow* NextL();
+        virtual TMsgStoreId NextL();          
+        
+        //CMsgStoreSortResultRow* PreviousL();
+		virtual TMsgStoreId PreviousL();      
+		
+		virtual void GotoL( TContainerId aMessageId );
+        virtual void GotoL( const TDesC& aStartWith, TMsgStoreIteratorDirection aDirection );
+        
+        //for UI "group" support
+        virtual TBool SkipCurrentGroupL( TMsgStoreIteratorDirection aDirection, TUint& aItemsInPreviousGroup );
+        
+        virtual TInt GroupCountL( RArray<TUint>& aItemsInGroup );
+        
+        virtual void SortedIdsL( RArray<TContainerId>& aIdArray );
+        
+        virtual TInt IndexOfL( TContainerId aMessageId );
+        
+        virtual void SortedIdsAndGroupCountL( RArray<TContainerId>& aIdArray, RArray<TUint>& aItemsInGroup );
+		
+		RDbView& DbView() { return iDbView; };
+        
+        void SetPropertyNamesL( RPointerArray<HBufC8>& aPropertyNames );
+
+        const RPointerArray<HBufC8>& PropertyNames() { return iPropertyNames; }
+        
+        TMsgStoreId FolderId(){ return iFolderId; }
+        
+        void SetAutoRefresh( TBool aFlag ) { iIsAutoRefresh = aFlag; }
+
+        virtual void MessageUpdate ( TContainerId       aMessageId, 
+                                     TContainerId       aFolderId, 
+                                     TMsgStoreOperation aOperation,
+                                     TUint              aFieldsChanged,
+                                     const TDesC&       aFrom, 
+                                     const TDesC&       aTo, 
+                                     const TDesC&       aSubject,
+                                     TInt64             aDate);
+
+        virtual void FolderDeleted ( TContainerId aFolderId );
+        
+        virtual void MailBoxDeleted ( TContainerId aMailBoxId );
+        
+	protected:
+    
+		CMsgStoreSortResultRowSet( const TMsgStoreSortCriteria& aSortCriteria, 
+		                           TInt aMessageIdColNum,
+                                   TInt aReceivedDateColNum,
+                                   TInt aReadUnreadColNum,
+                                   TInt aPriotiryColNum,
+                                   TInt aFlagStatusColNum,
+                                   TInt aSizeColNum,
+                                   TInt aAttachmentFlagColNum );
+        
+		void ConstructL();
+        
+        TMsgStoreId GetRowL();   
+        
+        virtual TInt ReEvaluate();
+        
+        TMsgStoreId           iMailBoxId;
+        TMsgStoreId           iFolderId;
+        TMsgStoreSortByField  iSortBy;
+        TMsgStoreSortOrder    iSortOrder;
+        TBool                 iIsAutoRefresh;
+        
+    private:
+        RDbView               iDbView;
+        TInt                  iMessageIdColNum;
+        TInt                  iReceivedDateColNum;
+        TInt                  iReadUnreadColNum;
+        TInt                  iPriotiryColNum;
+        TInt                  iFlagStatusColNum;
+        TInt                  iSizeColNum;
+        TInt                  iAttachmentFlagColNum;
+        RPointerArray<HBufC8> iPropertyNames;
+        __LOG_DECLARATION
+	};
+
+#endif /*MSGSTORE_SORT_RESULT_ROWSET_*/