/** 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: * Class declaration file**/#ifndef __EMAILPRECREATION_H__#define __EMAILPRECREATION_H__#include "ImumOnlineOperation.h"#include "SelectionOperationBase.h"#include <smtpset.h>#include <ImumInternalApi.h>class CMsvEmailConnectionProgressProvider;class CMtmStore;/*** CEmailPreCreation* This operation encapsulates an optimisation that, rather than forcing the* editor to create a new message every time, we create one invisible blank* message for each email account in the drafts folder, and tell the editor to* edit this message.*/class CEmailPreCreation : public CBase { public: /** * NewL * @param CMsvSession&, session reference * @return CEmailPreCreation*, self pointer */ static CEmailPreCreation* NewL( CImumInternalApi& aMailboxApi ); /** * ~CEmailPreCreation * Destructior */ virtual ~CEmailPreCreation(); public: /** * PreCreateBlankEmailL * @param TRequestStatus&, request status * @param TMsvId, service id * @return CMsvOperation*, operation */ CMsvOperation* PreCreateBlankEmailL( TMsvId aServiceId, TRequestStatus& aStatus ); /** * DeleteAllPreCreatedEmailsL (synchronous) * @param TMsvId, service id */ void DeleteAllPreCreatedEmailsL( TMsvId aServiceId ); /** * DeleteAllPreCreatedEmailsL * Returns NULL if none found. * @param TRequestStatus&, request status * @param TMsvId, service id * @return CMsvOperation*, operation */ CMsvOperation* DeleteAllPreCreatedEmailsL( TMsvId aServiceId, TRequestStatus& aStatus ); /** * FindPreCreatedEmailL * @param TMsvId, service id * @param TMsvId, exclude id * @return TMsvId, id of found email */ TMsvId FindPreCreatedEmailL( TMsvId aServiceId, TMsvId aExclude ); private: /** * ConstructL * @param CMsvSession&, session reference */ void ConstructL(); /** * * @since S60 3.2 */ CEmailPreCreation( CImumInternalApi& aMailboxApi ); /** * ServiceUsesMHTMLEncodingL * @param TMsvId, service id * @return TBool, ETrue if uses HTML encoding */ TBool ServiceUsesMHTMLEncodingL( TMsvId aServiceId ); /** * DeleteEmailWithoutServiceL * Deletes all the invisible mail entries which service cannot be found */ void DeleteEmailWithoutServiceL(); private: // Data CImumInternalApi& iMailboxApi; CMsvEntry* iEntry; };#endif