williamr@2: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __CALINSTANCEVIEW_H__ williamr@2: #define __CALINSTANCEVIEW_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@4: #include williamr@4: #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS williamr@4: #include //this is publishedPartner so should not be included here in the SF version. williamr@4: #endif williamr@2: williamr@2: class CCalFindInstanceSettings; williamr@2: class CCalInstance; williamr@2: class CCalInstanceIterator; williamr@2: class CCalInstanceViewImpl; williamr@2: class CCalSession; williamr@2: class MCalProgressCallBack; williamr@2: class TCalTime; williamr@2: class CCalLiteEntry; williamr@2: class TAgnInstanceId; williamr@4: #ifdef SYMBIAN_SKIPPED_CALENDAR_ALARMS williamr@2: struct TASShdAlarmedInstanceParams; williamr@4: #endif williamr@4: williamr@4: #ifdef SYMBIAN_CALENDAR_ENHANCEDSEARCHANDSORT williamr@4: class CCalSortCriteria; williamr@4: class CCalSortCriterion; williamr@4: class RWriteStream; williamr@4: class CAgnSortCriteria; williamr@4: class TAgnSortCriterion; williamr@4: #endif williamr@2: williamr@2: /** View class for accessing instances of calendar entries. williamr@2: williamr@2: Once a session to a calendar file has been created, a view to the session williamr@2: can be created. williamr@2: williamr@2: An instance is a calendar entry, a repeated instance of a calendar entry, williamr@2: or an RDate added to an entry. williamr@2: williamr@2: This view can be used to search for instances and also to delete instances. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: NONSHARABLE_CLASS(CCalInstanceView) : public CBase williamr@2: { williamr@2: public: williamr@2: williamr@2: /** Parameter struct for storing search data. williamr@2: This contains a descriptor to store search text and an enum to describe the text search behaviour. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: class TCalSearchParams williamr@2: { williamr@2: public: williamr@2: IMPORT_C TCalSearchParams(const TDesC& aText, CalCommon::TCalSearchBehaviour aBehaviour); williamr@2: IMPORT_C const TDesC& Text() const; williamr@2: IMPORT_C CalCommon::TCalSearchBehaviour Behaviour() const; williamr@2: williamr@2: private: williamr@2: TPtrC iSearchText; williamr@2: CalCommon::TCalSearchBehaviour iSearchBehaviour; williamr@2: }; williamr@2: williamr@2: IMPORT_C static CCalInstanceView* NewL(CCalSession& aSession, MCalProgressCallBack& aProgressCallBack); williamr@2: IMPORT_C static CCalInstanceView* NewL(CCalSession& aSession); williamr@4: IMPORT_C static CCalInstanceView* NewL(RPointerArray& aSessions); williamr@4: IMPORT_C static CCalInstanceView* NewL(RPointerArray& aSessions, MCalProgressCallBack& aProgressCallBack); williamr@2: IMPORT_C ~CCalInstanceView(); williamr@2: williamr@2: IMPORT_C void FindInstanceL(RPointerArray& aInstanceList, williamr@2: CalCommon::TCalViewFilter aCalViewFilter, williamr@2: const CalCommon::TCalTimeRange& aTimeRange) const; williamr@2: williamr@2: IMPORT_C void FindInstanceL(RPointerArray& aMatchedInstanceList, williamr@2: CalCommon::TCalViewFilter aCalViewFilter, williamr@2: const CalCommon::TCalTimeRange& aTimeRange, williamr@2: const TCalSearchParams& aSearchParams) const; williamr@2: williamr@2: IMPORT_C CCalInstanceIterator* FindInstanceL(const CCalFindInstanceSettings& aSettings) const; williamr@4: williamr@4: IMPORT_C CCalInstanceIterator* FindInstanceL(const CCalFindInstanceSettings& aSettings, TCalLocalUid aLocalId, const TCalTime& aInstanceTime) const; williamr@4: IMPORT_C CCalInstanceIterator* FindInstanceByUidL(const TDesC8& aUid, const TCalTime& aInstanceTime) const; williamr@4: williamr@4: IMPORT_C CCalInstanceIterator* FindInstanceL(const CCalFindInstanceSettings& aSettings, TCalInstanceId& aInstanceId) const; williamr@4: IMPORT_C CCalInstanceIterator* FindInstanceByUidL(TCalCollectionId aCollectionId, const TDesC8& aUid, const TCalTime& aInstanceTime) const; williamr@4: williamr@4: IMPORT_C CCalInstance* FindInstanceL(TCalLocalUid aLocalId, const TCalTime& aInstanceTime) const; williamr@4: IMPORT_C CCalInstance* FindInstanceL(TCalInstanceId& aInstanceId) const; williamr@2: williamr@4: #ifdef SYMBIAN_SKIPPED_CALENDAR_ALARMS williamr@2: IMPORT_C void FindAlarmedInstanceL(RPointerArray& aAlarmedInstanceList, williamr@2: TASShdAlarmedInstanceParams aAlarmedInstanceParams) const; williamr@4: #endif williamr@2: williamr@2: IMPORT_C void DeleteL(CCalInstance* aInstance, CalCommon::TRecurrenceRange aWhichInstances); williamr@2: williamr@2: IMPORT_C TCalTime NextInstanceL(CalCommon::TCalViewFilter aCalViewFilter, const TCalTime& aStartDate) const; williamr@2: IMPORT_C TCalTime PreviousInstanceL(CalCommon::TCalViewFilter aCalViewFilter, const TCalTime& aStartDate) const; williamr@2: williamr@2: private: williamr@2: CCalInstanceView(); williamr@2: void ConstructL(CCalSession& aSession, MCalProgressCallBack* aProgressCallBack); williamr@4: void ConstructL(RPointerArray& aSessions, MCalProgressCallBack* aProgressCallBack); williamr@2: williamr@2: private: williamr@2: CCalInstanceViewImpl* iImpl; williamr@2: }; williamr@4: williamr@4: williamr@4: /** Class for specifying the search criteria for use in CCalInstanceView::FindInstanceL. williamr@2: williamr@4: @publishedAll williamr@2: @released williamr@2: */ williamr@2: NONSHARABLE_CLASS(CCalFindInstanceSettings) : public CBase williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CCalFindInstanceSettings* NewL(CalCommon::TCalViewFilter aFilter, const CalCommon::TCalTimeRange& aTimeRange); williamr@2: IMPORT_C ~CCalFindInstanceSettings(); williamr@2: williamr@2: IMPORT_C void SetFilter(CalCommon::TCalViewFilter aFilter); williamr@2: IMPORT_C void SetTimeRange(const CalCommon::TCalTimeRange& aTimeRange); williamr@2: IMPORT_C void SetTextSearchL(const CCalInstanceView::TCalSearchParams& aSearchParams); williamr@2: williamr@2: CalCommon::TCalSearchBehaviour Behaviour() const; williamr@2: CalCommon::TCalViewFilter Filter() const; williamr@4: const CalCommon::TCalTimeRange& TimeRange() const; williamr@2: const TDesC& Text() const; williamr@4: williamr@4: #ifdef SYMBIAN_CALENDAR_ENHANCEDSEARCHANDSORT williamr@4: IMPORT_C void SetPriorityRange(const CalCommon::TCalPriorityRange& aPriorityRange); williamr@4: williamr@4: IMPORT_C CCalSortCriteria& SortCriteria(); williamr@4: IMPORT_C const CCalSortCriteria& SortCriteria() const; williamr@4: #endif williamr@4: williamr@4: const CalCommon::TCalPriorityRange& PriorityRange() const; williamr@4: williamr@2: private: williamr@2: CCalFindInstanceSettings(CalCommon::TCalViewFilter aFilter, const CalCommon::TCalTimeRange& aTimeRange); williamr@4: void ConstructL(); williamr@2: williamr@2: private: williamr@2: CalCommon::TCalTimeRange iTimeRange; williamr@2: CalCommon::TCalViewFilter iFilter; williamr@2: HBufC* iSearchText; williamr@2: CalCommon::TCalSearchBehaviour iSearchBehaviour; williamr@4: CalCommon::TCalPriorityRange iPriorityRange; williamr@4: #ifdef SYMBIAN_CALENDAR_ENHANCEDSEARCHANDSORT williamr@4: CCalSortCriteria* iSortCriteria; williamr@4: #endif williamr@2: }; williamr@4: williamr@4: #ifdef SYMBIAN_CALENDAR_ENHANCEDSEARCHANDSORT williamr@4: /** Class for specifying the sort criteria for use in CCalInstanceView::FindInstanceL. williamr@4: williamr@4: @publishedAll williamr@4: @prototype williamr@4: */ williamr@4: NONSHARABLE_CLASS(CCalSortCriteria) : public CBase williamr@4: { williamr@4: public: williamr@4: IMPORT_C static CCalSortCriteria* NewL(); williamr@4: IMPORT_C ~CCalSortCriteria(); williamr@4: williamr@4: IMPORT_C void AppendCriterionL(CalCommon::TCalSortAttribute aAttr, CalCommon::TCalSortDirection aDir); williamr@4: IMPORT_C TInt Count() const; williamr@4: IMPORT_C const CCalSortCriterion& AtL(TInt aIndex) const; williamr@4: IMPORT_C void SetEntryTypeOrderL(const RArray& aTypeOrder); williamr@4: IMPORT_C const RArray& EntryTypeOrder() const; williamr@4: williamr@4: const CAgnSortCriteria& SortCriteria() const; williamr@2: williamr@4: private: williamr@4: CCalSortCriteria(); williamr@4: void ConstructL(); williamr@4: williamr@4: private: williamr@4: CAgnSortCriteria* iSortCriteria; williamr@4: RPointerArray iSortCriterionList; williamr@4: }; williamr@4: williamr@4: NONSHARABLE_CLASS(CCalSortCriterion) : public CBase williamr@4: { williamr@4: public: williamr@4: static CCalSortCriterion* NewL(const TAgnSortCriterion& aSortCriterion); williamr@4: ~CCalSortCriterion(); williamr@4: williamr@4: IMPORT_C CalCommon::TCalSortAttribute SortAttribute() const; williamr@4: IMPORT_C CalCommon::TCalSortDirection SortDirection() const; williamr@4: williamr@4: private: williamr@4: CCalSortCriterion(const TAgnSortCriterion& aSortCriterion); williamr@4: williamr@4: private: williamr@4: const TAgnSortCriterion& iSortCriterion; williamr@4: }; williamr@4: #endif williamr@4: williamr@2: #endif // __CALINSTANCEVIEW_H__