serviceproviders/sapi_messaging/tsrc/testing/tmessagingtest/get_message_async/inc/accessfolder.h
changeset 22 fc9cf246af83
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serviceproviders/sapi_messaging/tsrc/testing/tmessagingtest/get_message_async/inc/accessfolder.h	Thu Aug 27 07:43:07 2009 +0300
@@ -0,0 +1,172 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:   Defination of class CMessagingAccessFolder
+*
+*/
+
+
+
+#ifndef __ACCESSFOLDER_H
+#define __ACCESSFOLDER_H
+
+
+/**
+ * This class provides function to get a list of measage header 
+ * in a sorted order present in a folder . Message Headers are 
+ * retrieved as per searching options provided by user. 
+*/
+class CMessagingAccessFolder : public CBase
+	{
+
+	public:
+
+	    /**
+	     * Two-phased constructor.
+	     * @param aServerSession  Object of CMsvSession Class which
+	     *        represents a channel of communication between a client thread  
+	     *        and the Message Server thread.
+	     */
+		static CMessagingAccessFolder* NewL( CMsvSession& aServerSession );
+
+	    /**
+	    * Destructor.
+	    */
+		~CMessagingAccessFolder();
+	
+	private:
+
+	    /** 
+	     * Constructor.
+	     * @param aServerSession  Object of CMsvSession Class which
+	     *        represents a channel of communication between a client thread  
+	     *        and the Message Server thread .
+	     * @return void
+	     */
+		CMessagingAccessFolder( CMsvSession& aServerSession );
+
+
+	public:
+
+		/**
+		 * Gives Message id list of messages 
+		 * @param aFolderId  	 Folder to be used (Inbox/outbox/send/...)
+		 * @param aFilterParams  Filter parameters
+		 * @param aEntrySelection   output pararmeter for the result id array
+		*/ 				
+		void GetIdListL(TMsvId aFolderId ,
+									CFilterParamInfo* aFilterParams,
+								    CMsvEntrySelection*& aEntrySelection );
+	
+		/**
+		 * Gives next header based on inputs 
+		 * @param aFilterParams  Filter parameters
+		 * @param aEntrySelection array of message ids on which filteration to be done
+		 * @param aIndex      starting position on aEntrySelection to be start search
+		 * @param aHeader   output pararmeter for the result header
+		*/ 				
+		void GetNextHeaderL( CFilterParamInfo* aFilterParams,
+									CMsvEntrySelection* aEntrySelection,
+									TInt& aIndex, 
+									CMessageHeader*& aHeader );
+	private:
+
+		/**
+		 * Gives the list of message headers
+		 * @return void
+		*/ 
+		void GetListL();
+
+		/**
+		 * Gets next header which matches filter criteria
+		 * @param  aEntrySelection Message Id list to be filtered for headers
+		 * @param  aIndex starting position for filterting
+		 * @param  aHeader return parameter for message header
+		 * @return void
+		*/ 
+		void GetNextFilteredHeaderL( CMsvEntrySelection* aEntrySelection, 
+											TInt& aIndex, 
+											CMessageHeader*& aHeader );
+														
+		/**
+		 * Initializes the MtmID array by the Mtm string passed by user.\
+		*/ 
+		void  InitializeMtmArray();
+
+		/**
+		 * Checks whether filter on message id is set
+		 * @param  aMessageId The message id to which user want to apply filter
+		 * @return TBool ETrue if filter on message id is set and entry matches with filter
+		*/ 
+		TBool FilterId( const TMsvId aMessageId) const;
+
+		/**
+		 * Checks whether filter on Mtm is set
+		 * @param  aEntry The message entry to which user want to apply filter
+		 * @return  TBool ETrue if filter on mtm is set and entry matches with filter
+		*/ 
+		TBool FilterMtm( const TMsvEntry& aEntry ) const;
+
+		/**
+		 * Checks whether filter on sender is set
+		 * @param  aEntry The message entry to which user want to apply filter
+		 * @return TBool  ETrue if filter on sender is set and entry matches with filter
+		*/ 
+		TBool FilterFrom( const TMsvEntry& aEntry ) const;
+
+		/**
+		 * Checks whether filter on subject is set
+		 * @param  aEntry The message entry to which user want to apply filter
+		 * @return TBool  ETrue if filter on subject is set and entry matches with filter
+		*/ 
+		TBool FilterSubject( const TMsvEntry& aEntry ) const;
+
+		/**
+		 * Checks whether filter on date is set
+		 * @param  aEntry The message entry to which user want to apply filter
+		 * @return TBool ETrue if filter on date is set and entry matches with filter
+		*/ 
+		TBool FilterDate( const TMsvEntry& aEntry ) const;
+
+
+	private:
+
+		/**
+		 * Represents a channel of communication between a client thread 
+		 * and the Message Server thread
+		*/ 
+	 	CMsvSession& 			iServerSession;
+	 	
+		/**
+		 * Message Id list 
+		*/ 
+	 	CMsvEntrySelection*		iEntrySelection;
+
+		/**
+		 * Folder id from which list of message headers can be retrieved
+		*/ 
+		TMsvId 					iFolderId;
+
+		/**
+		 * Folder id from which list of message headers can be retrieved
+		*/ 
+        RArray<TUid> 			iMtmArrayId;
+
+		/**
+		 * Filter variable
+		*/ 
+        CFilterParamInfo*       iFilter;    
+
+	};
+
+#endif __ACCESSFOLDER_H
\ No newline at end of file