/*
* 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:  Mail Viewer reply to address matcher.
*
*/
#ifndef C_CMSGMAILVIEWERREPLYTOMATCHER_H
#define C_CMSGMAILVIEWERREPLYTOMATCHER_H
#include <e32base.h> // CBase
#include <MsgRecipientItem.h>
class CMsgMailViewerContactMatcher;
class CMsgMailViewerAppUi;
/**
 *  Mail Viewer reply to address matcher.
 *  Finds matches for sender's email address
 *  from phonebook. Uses CMsgMailViewerContactMatcher.
 *
 *  @lib none
 *  @since S60 v3.2
 */
NONSHARABLE_CLASS(CMsgMailViewerReplyToMatcher)
: public CBase
    {
public:
    /**
     * NewL
     * @since S60 v3.2
     * @param aAppUi reference to application appui.
     * Needed for notifying that matching is done.
     * @param aMatcher reference to CMsgMailViewerContactMatcher.
     * @return self
     */
    static CMsgMailViewerReplyToMatcher* NewL(CMsgMailViewerAppUi& aAppUi, 
    							CMsgMailViewerContactMatcher& aMatcher);
    ~CMsgMailViewerReplyToMatcher();
    /**
     * CheckMatchesL
     * @since S60 v3.2
     * @param aMtmUid Uid of mtm that needs this information.
     * @param aRecs recipient array that has address which is
     * searched/matched from phonebook.
     * Leaves with KErrNotFound if array is empty.
     */
    void CheckMatchesL(TUid aMtmUid, CMsgRecipientArray* aRecs);
private: // implementation
    CMsgMailViewerReplyToMatcher(CMsgMailViewerAppUi& aAppUi, 
    					CMsgMailViewerContactMatcher& aMatcher);
    void ConstructL();
    static TInt AddressMatchCallbackL(TAny* aAny);
    void NotifyMatchingReadyL();
private: // data
    //reference
    CMsgMailViewerContactMatcher& iContactMacther;
    TUid iSendingMtmUid;
    //reference
    CMsgMailViewerAppUi& iAppUi;
    HBufC* iName;
    HBufC* iData;
    };
#endif // C_CMSGMAILVIEWERREPLYTOMATCHER_H