diff -r 000000000000 -r 8466d47a6819 ipsservices/ipssosplugin/inc/ipsplgsearchop.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipsservices/ipssosplugin/inc/ipsplgsearchop.h Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,232 @@ +/* +* 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 "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: This file defines class CIpsPlgSearchOp. +* +*/ + + +#ifndef IPSPLGSEARCHOP_H +#define IPSPLGSEARCHOP_H + + +#include "ipsplgtextsearcher.h" + +class CFSMailMessage; +class CImEmailMessage; +class CIpsPlgTextSearcher; + +/** + * Class to handle searching from emails. + * + * @since FS v1.0 + * @lib IpsSosSettings.lib + */ +NONSHARABLE_CLASS( CIpsPlgSearchOp ) : + public CActive, + public MIpsPlgTextSearcherObserver + { + +public: + + /** + * Symbian 2nd phase construcror + * + * @return None + */ + static CIpsPlgSearchOp* NewL( CIpsPlgSearch& aObserver ); + + /** + * Symbian 2nd phase construcror + * + * @return None + */ + static CIpsPlgSearchOp* NewLC( CIpsPlgSearch& aObserver ); + + /** + * Class destructor + * + * @return + */ + virtual ~CIpsPlgSearchOp(); + + /** + * + * + * @return + */ + void DoCancel(); + +protected: + + /** + * Class constructor + * + * @param + * @param + */ + CIpsPlgSearchOp( CIpsPlgSearch& aObserver ); + +private: + +// Data + + /** + * Symbian 2nd phase construct + * + */ + void ConstructL(); + +// From base class CActive + + /** + * + * + * @return + */ + void RunL(); + + /** + * Handles any leaves that happened during the operation. + * + * @return KErrNone, when problems are solved. + */ + TInt RunError( TInt aError ); + +// From base class MIpsPlgTextSearcherObserver + + /** + * Called from the text searcher when all search criteria are met. + * + * @param aSnippet The snippet + * @param aSnippetCharPos The character position of the keyword match within + * the snippet + * @param aStartIncomplete Indicates that the snippet start is incomplete + * @param aEndIncomplete Indicates that the snippet end is incomplete + */ + void HitL( + const TDesC& aSnippet, + TInt aSnippetCharPos, + TBool aStartIncomplete, + TBool aEndIncomplete ); + +// New functions + + /** + * Get next available mail or finish the search. Changes state on demand. + * + * @return ETrue, when search can be continued + * @return EFalse, when search is finished. + */ + TBool NextMailL(); + + /** + * Looks for strings from the body. + * + * @param aSearchString Strings to be searched. + * @return ETrue, when strings are found. + */ + void SearchBodyL(); + + /** + * Search for the string from the email. + */ + void SearchL(); + + /** + * Filter out javascript and html tags. + */ + void HandleHtmlL(); + + /** + * Send finish command to observer. + */ + void FinalizeL(); + + /** + * @param aArray Array to be searched for. + * @return ETrue if found, EFalse otherwise + */ + TBool SearchFromArrayL( const CDesCArray& aArray ); + + /** + * @param aString String to be searched for. + * @return ETrue if found, EFalse otherwise + */ + TBool SearchFromStringL( const TDesC& aString ); + + /** + * Activate and complete + */ + void ActivateAndComplete( ); + + /** + * Search for the string from the email. + */ + void SearchFromEntireMailL(); + + /** + * Search for the string from subject only. + */ + void SearchFromSubjectL(); + +// Data + + enum TState + { + EStopped = 0, + EStarted, + ERunning, + EFinished, + EHit, + ECanceled + }; + + /** + * Current search state. + */ + TState iState; + + /** + * Client, which started the operation. + */ + CIpsPlgSearch& iObserver; + + /** + * Currently accessed message. + * Owned. + */ + CImEmailMessage* iMessage; + + /** + * Header of currently accessed message. + * Owned. + */ + CImHeader* iHeader; + + /** + * Temporary storage for search strings. + * Owned. + */ + + /** + * Object to handle the actual searching. + * Owned. + */ + CIpsPlgTextSearcher* iSearcher; + + }; + +#endif /* IPSPLGSEARCHOP_H */ + +// End of File