diff -r 000000000000 -r 8466d47a6819 emailservices/psmruadapter/inc/CPsMruAdapter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/psmruadapter/inc/CPsMruAdapter.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,188 @@ +/* +* Copyright (c) 2008 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: Predictive Search MRU ADapter +* +*/ + + +#ifndef C_PS_MRU_ADAPTER_H +#define C_PS_MRU_ADAPTER_H + +// INCLUDES +#include +// +#include "MFSMailEventObserver.h" +// + +// FORWARD DECLARATION +class CPsData; +class CFSMailClient; + +// CLASS DECLARATION + +/** +* MRU Data Store +* This class acts as a MRU Data store, which allows access to +* FS Email Framework MRU data +* +* @since S60 v3.2 +*/ +class CPsMruAdapter : public CPsDataPlugin, public MFSMailEventObserver + { + public: + + /** + * Two phase construction + */ + static CPsMruAdapter* NewL(TAny* aPsDataPluginParameters); + + /** + * Destructor + */ + virtual ~CPsMruAdapter(); + + /** + * Returns the additional data for given item id + * Returns NULL (in current implementation) + */ + TAny* RequestForDataExtensionL( TInt ItemId ); + +// from base class CPsDataPlugin + + /** + * Requests for data from this store + * The adapters need to pass an instance of the observer. The data + * to the algorithm is provided via the observer callback + */ + void RequestForDataL( TDesC& aDataStoreURI ); + + /** + * Gets the supported data stores URIs + * + * @param aDataStores supported data stores URIs + */ + void GetSupportedDataStoresL( RPointerArray& aDataStoresURIs ); + + /** + * Checks if the given data store is supported. + * + * @param aDataStoreURI data store + * @return True if this store is supported + */ + TBool IsDataStoresSupportedL( TDesC& aDataStoreURI ) ; + + /** + * Gets the supported data fields for specific stores URIs + * + * @param aDataFields supported data fields for aStoreURI + */ + void GetSupportedDataFieldsL( RArray& aDataFields ); + +// from base class MFSMailEventObserver + + /** + * Handles mailbox events from plugins. + */ + void EventL( TFSMailEvent aEvent, TFSMailMsgId aMailbox, + TAny* aParam1, TAny* aParam2, TAny* aParam3 ); + + private: + + /** + * Constructor + */ + CPsMruAdapter(); + + /** + * 2nd phase construtor + */ + void ConstructL(MDataStoreObserver* aObserverForDataStore, + MStoreListObserver* aStoreListObserver); + + /** + * Updates given data store + */ + TBool FillDataStoreL( TDesC& aDataStoreURI ); + + /** + * Updates given data store + */ + TBool FillDataStoreL( TFSMailMsgId& aId ); + + /** + * Updates a list of supported data stores + */ + void UpdateSupportedDataStoresList(); + + /** + * Starts observing mailbox + */ + TBool AddMailboxObserverL( TFSMailMsgId& aId ); + + /** + * Stops observing mailbox + */ + TBool RemoveMailboxObserver( TFSMailMsgId& aId ); + + /** + * Stops all mailbox observers + */ + void RemoveAllMailboxObservers(); + + /** + * Converts Uri to TFsMailMsgId + */ + TBool GetMailboxIdentifierFromUri( TDesC& aUri, TFSMailMsgId& aId ); + + /** + * Converts TFsMailMsgId to Uri + */ + TBool GetUriFromMailboxIdentifier( TFSMailMsgId& aId, HBufC& aUri ); + + /** + * Updates given data store + */ + TBool FillDataStoreL( TFSMailMsgId& aId, TDesC& aDataStoreURI ); + + private: // data + + /** + * Holds the observer object to communicate add/modify/delete of contacts + * Not owned. + */ + MDataStoreObserver* iDataStoreObserver; + + /** + * An observer instance used to send the datastore to the adapter + */ + MStoreListObserver* iStoreListObserver; + + /** + * Supported Uris(data stores) + */ + RPointerArray iSupportedUris; + + /** + * List of mailboxes currently being observed + */ + RArray iObservedMailboxes; + + /** + * Fs Email framework client + */ + CFSMailClient* iMailClient; + }; + + +#endif // C_PS_MRU_ADAPTER_H