diff -r a36b1e19a461 -r 989d2f495d90 serviceproviders/sapi_messaging/messagingservice/inc/accessfolder.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serviceproviders/sapi_messaging/messagingservice/inc/accessfolder.h Fri Jul 03 15:51:24 2009 +0100 @@ -0,0 +1,171 @@ +/* +* 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 iMtmArrayId; + + /** + * Filter variable + */ + CFilterParamInfo* iFilter; + + }; + +#endif __ACCESSFOLDER_H \ No newline at end of file