diff -r 000000000000 -r 14df0fbfcc4e sapi_calendar/calendarservice/inc/calendardeleteentry.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sapi_calendar/calendarservice/inc/calendardeleteentry.h Mon Mar 30 12:51:10 2009 +0300 @@ -0,0 +1,169 @@ +/* +* 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: +* +*/ + + +#ifndef __CALENDARDELETEENTRY_H +#define __CALENDARDELETEENTRY_H + +class CAsyncRequestObserver; + + +/** + * This class provides functionality for deleting calendar entries. +*/ +class CCalendarDeleteEntry : public CCalendarASyncRequest/*, public CActive*/ + { + + /** + * TDeleteOption enum represents the delete options. + */ + enum TDeleteOption + { + EDeleteAll = 0, + EDeleteGUid, + EDeleteLUid, + EDeleteTimeRange, + EDeleteTmRngGUid, + EDeleteTmRngLUid + }; + + public: + + /** + * Two-phased constructor. + * @param CCalendarSessionInfo* a calendar session information. + * @param aFilter* Filter object. Function takes the ownership. + * @param MCalCallbackBase* + */ + static CCalendarDeleteEntry* NewL( CCalendarSessionInfo* aSessionInfo, + CCalendarFilter* aFilter, + CAsyncRequestObserver* aAsyncRequestObserver = NULL, + MCalCallbackBase* aNotifyCallback = NULL ); + + /** + * Destructor. + */ + virtual ~CCalendarDeleteEntry(); + + /** + * Delete Entries + */ + void DeleteL(); + + private: + + /** + * Default constructor. + * @param aSessionInfo It is an object of CCalSession Class which + * represents a channel of communication between a client thread + * and the calendar Server thread . + * @param aNotifyCallback It is a callback notification + */ + CCalendarDeleteEntry( CCalendarSessionInfo* aSessionInfo, + CAsyncRequestObserver* aAsyncRequestObserver = NULL, + MCalCallbackBase* aNotifyCallback = NULL ); + + void ConstructL( CCalendarFilter* aFilter ); + /** + * Initializes delete option based in input filter + */ + void InitializeDeleteOptionL(); + + /** + * Start Deleting Entries + */ + void StartDeleteL(); + + /** + * Delete All Entries with in calendar + */ + void DeleteAllL(); + + /** + * Delete Entries based in GlobalUid/LocalUid + * @param aLocalUid Deletion will Local Uid based if this is true. + */ + void DeleteUidL( TBool aLocalUid ); + + /** + * Delete Instances based on Time Range + */ + void DeleteTimeRangeL(); + + /** + * Delete Instances based on Time Range and Global Uid + */ + void DeleteTimeRangeWithGlobalUidL(); + + /** + * Delete Instances based on Time Range and Local Uid + */ + void DeleteTimeRangeWithLocalUidL(); + + /** + * Inherited from CActive class + */ + virtual void DoCancel(); + + /** + * Inherited from CActive class + */ + virtual void RunL(); + + /** + * Activates the request and call SetActive() function + */ + void ActivateRequest(TInt aReason); + + /** + * Gives the result for notification request. + */ + void NotifyRequestResult(TInt aReason); + + private: + + /** + * Calendar server session + * Not own. + */ + CCalendarSessionInfo* iSessionInfo; + + /** + * Callback Object + */ + MCalCallbackBase* iNotifyCallback; + + /** + * Filter Object + */ + CCalendarFilter* iFilter; + + /** + * Asynchronous request observer, Used to get infromed of completion or request + */ + CAsyncRequestObserver* iAsyncRequestObserver; + + /** + * Delete option selected, derived from Filter + */ + TDeleteOption iDeleteOption; + }; + + + + +#endif __CALENDARDELETEENTRY_H \ No newline at end of file