diff -r a3a1ae9acec6 -r da5135c61bad meetingrequest/mrdb/inc/cesmrcaldbmgr.h --- a/meetingrequest/mrdb/inc/cesmrcaldbmgr.h Mon Mar 15 12:39:10 2010 +0200 +++ b/meetingrequest/mrdb/inc/cesmrcaldbmgr.h Wed Mar 31 21:08:33 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2009 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" @@ -20,17 +20,24 @@ #define CESMRCALDBMGR_H #include +#include // #include "mesmrutilstombsext.h" // #include #include "cesmrcaldbbase.h" + class MMRUtilsObserver; class CCalSession; class CCalEntry; class CESMREntryCmdIteratorAO; class CESMRGraveyardCleaner; +class MESMRCalEntry; +class CCalEntryView; +class CCalInstanceView; +class CCalCalendarInfo; + /** * MESMRServicesCalDbMgr defines interface for calendar DB @@ -62,6 +69,14 @@ * @return instance view pointer, ownership not transferred */ virtual CCalInstanceView* NormalDbInstanceView() = 0; + + /** + * Accessor for Agenda Model CCalInstanceView owned by this utility. + * Returns a valid array of pointer if status is EAvailable or + * EAvailableWithoutTombs, otherwise NULL. + * @return instance view pointer, ownership not transferred + */ + virtual RPointerArray NormalDbAllCalenInstanceView() = 0; /** * Fetches entries from the Agenda Model based on time range. @@ -116,7 +131,7 @@ * @return KErrNone or a system wide error code */ virtual TInt DeleteEntryL( - const TDesC8& aUid ) = 0; + const TDesC8& aUid, TInt aCalenIndex ) = 0; /** * Deletes the given entry from the Agenda Model. @@ -124,7 +139,7 @@ * @return KErrNone or a system wide error code */ virtual TInt DeleteEntryL( - const TCalLocalUid& aLocalUid ) = 0; + const TCalLocalUid& aLocalUid, TInt aCalenIndex ) = 0; /** * Check entry: GUID, sequence number, existence in Agenda Model and @@ -182,6 +197,107 @@ * @return Reference to calendar server session. */ virtual CCalSession& CalSession() = 0; + + /** + * Finds matching calendar instance from calendar db. Ownership is + * transferred to caller. + * If instance cannot be found, NULL is returned. + * + * @param aCalDb Reference to cal db manager. + * @param aEntry Reference to calendar entry + * @return Pointer to calendar entry instance. + */ + virtual CCalInstance* FindInstanceL( + const CCalEntry& aEntry ) = 0; + + /** + * Get calendar's color by entry + * @param aEntry Reference to calendar entry + * @return calendar's color rgb value + */ + virtual TRgb GetCalendarColorByEntryL( MESMRCalEntry& aEntry ) = 0; + + /** + * Get multi-calendar name list + * @param aCalendarNameList Reference to name string array + */ + virtual void GetMultiCalendarNameListL( RArray& aCalendarNameList ) = 0; + + /** + * Get calendar's name by entry + * @param aEntry Reference to calendar entry + * @return calendar's name + */ + virtual TPtrC GetCalendarNameByEntryL( MESMRCalEntry& aEntry ) = 0; + + /** + * Get calendar's color by calendar name + * @param aCalendarName Reference to calendar name + * @return calendar's color rgb value + */ + virtual TRgb GetCalendarColorByNameL( TDesC& aCalendarName ) = 0; + + /* + * Set current calendar by pass calendar index to it + * @param aIndex current calendar index + */ + virtual void SetCurCalendarByIndex( TInt aIndex ) = 0; + + /* + * Set current calendar by pass calendar name to it + * @param aCalendarName current calendar name + */ + virtual void SetCurCalendarByNameL( TDesC& aCalendarName ) = 0; + + /* + * Set current calendar by pass entry + * @param aColId current calendar collectionID + */ + virtual void SetCurCalendarByColIdL( TInt aColId ) = 0; + + /* + * Set current calendar by pass entry + * @param aEntry entry which belongs current calendar + */ + virtual void SetCurCalendarByEntryL( MESMRCalEntry& aEntry ) = 0; + + /* + * Get color of current calendar + * @return current calendar's color(rgb value) + */ + virtual TRgb GetCurCalendarColor() = 0; + + /* + * Get colId of current calendar + * @return current calendar's colId + */ + virtual TInt GetCurCalendarColIdL() = 0; + + /* + * Get index of current calendar + * @return current calendar's index + */ + virtual TInt GetCurCalendarIndex() = 0; + + /* + * Get entryview by CCalEntry + * @param aCalEntry use to get calendar which aCalEntry belongs + * @return CCalEntryView aCalEntry belongs + */ + virtual CCalEntryView* EntryViewL(const CCalEntry& aCalEntry ) = 0; + + /* + * Get instanceview by CCalEntry + * @param aCalEntry use to get calendar which aCalEntry belongs + * @return a CCalInstanceView that aCalEntry belongs + */ + virtual CCalInstanceView* InstanceViewL(const CCalEntry& aCalEntry ) = 0; + + /* + * Get current entryview + * @return current entryView + */ + virtual CCalEntryView* EntryView() = 0; }; /** @@ -230,6 +346,7 @@ CCalEntryView* NormalDbEntryView(); CCalInstanceView* NormalDbInstanceView(); + RPointerArray NormalDbAllCalenInstanceView(); void FetchEntriesL( RPointerArray& aCalEntryArray, const CalCommon::TCalTimeRange& aTimeRange ); @@ -242,9 +359,9 @@ TInt UpdateEntryL( const CCalEntry& aCalEntry ); TInt DeleteEntryL( - const TDesC8& aUid ); + const TDesC8& aUid, TInt aCalenIndex ); TInt DeleteEntryL( - const TCalLocalUid& aLocalUid ); + const TCalLocalUid& aLocalUid, TInt aCalenIndex ); MESMRUtilsTombsExt::TESMRUtilsDbResult StoreEntryCondL( CCalEntry& aCalEntry, TBool aResurrect, @@ -260,6 +377,31 @@ void DeleteEntryCondL( const CalCommon::TCalTimeRange& aCalTimeRange ); CCalSession& CalSession(); + CCalInstance* FindInstanceL( + const CCalEntry& aEntry ); + + TRgb GetCalendarColorByEntryL( + MESMRCalEntry& aEntry); + void GetMultiCalendarNameListL( + RArray& aCalendarNameList); + TPtrC GetCalendarNameByEntryL( + MESMRCalEntry& aEntry); + TRgb GetCalendarColorByNameL( + TDesC& aCalendarName); + void SetCurCalendarByNameL( + TDesC& aCalendarName ); + void SetCurCalendarByIndex( + TInt aIndex ); + void SetCurCalendarByColIdL( + TInt aColId ); + void SetCurCalendarByEntryL( + MESMRCalEntry& aEntry ); + TRgb GetCurCalendarColor(); + TInt GetCurCalendarColIdL(); + TInt GetCurCalendarIndex(); + CCalEntryView* EntryViewL(const CCalEntry& aCalEntry ); + CCalInstanceView* InstanceViewL(const CCalEntry& aCalEntry ); + CCalEntryView* EntryView(); protected: // New functions /** @@ -355,6 +497,13 @@ */ void ConstructL(); +private: + TBool CheckSpaceBelowCriticalLevelL(); + /** + * Load multi calendar info to dbmgr + */ + void LoadMultiCalenInfoL(); + protected: // data /** @@ -369,10 +518,35 @@ CCalSession& iCalSession; /** + * Calendar session array, support multi calendar + * Own. + */ + RPointerArray iCalSessionArray; + + /** + * CCalEntryView array, support multi calendar + * Own. + */ + RPointerArray iCalEntryViewArray; + + /** + * CCalInstanceView array, support multi calendar + * Own. + */ + RPointerArray iCalInstanceViewArray; + + /** + * CCalCalendarInfo array, support multi calendar + * Own. + */ + RPointerArray iCalendarInfoArray; + + /** * Reference to cal db observer * */ MMRUtilsObserver& iObserver; + /** * Normal agenda database * Own. @@ -384,6 +558,9 @@ * Own. */ CESMREntryCmdIteratorAO* iCmdIterator; + +private: + TInt iCurCalenIndex; }; #endif // CESMRCALDBMGR_H