calendarui/globaldata/inc/calenglobaldata.h
branchRCL_3
changeset 65 12af337248b1
parent 60 96907930389d
child 66 bd7edf625bdd
equal deleted inserted replaced
60:96907930389d 65:12af337248b1
     9 * Initial Contributors:
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description:   Global Data for Calendar application
    14 * Description:  Global Data for Calendar application
    15 *
    15 *
    16 */
    16 */
    17 
       
    18 
    17 
    19 #ifndef CALENGLOBALDATA_H
    18 #ifndef CALENGLOBALDATA_H
    20 #define CALENGLOBALDATA_H
    19 #define CALENGLOBALDATA_H
    21 
    20 
    22 //  INCLUDES
    21 //  INCLUDES
    23 #include <e32base.h>
    22 #include <e32base.h>
    24 #include <w32std.h>
    23 #include <w32std.h>
    25 #include <CMRUtils.h>                   // MMRUtilsObserver
    24 #include <calprogresscallback.h>
    26 #include <cmrmailboxutils.h>
    25 #include <qglobal.h>		// IMPORT_C macro
    27 #include <calennotificationhandler.h>   // MCalenNotificationHandler
    26 #include "calennotificationhandler.h"   // MCalenNotificationHandler
    28 #include <calsession.h>             // Calendar database session
    27 
    29 #include <calinstanceview.h>        // Calendar Instance view
    28 #ifdef  CALENGLOBALDATA_DLL
    30 #include <calentryview.h>           // Calendar Entry view
    29 #define CALENGLOBALDATA_EXPORT Q_DECL_EXPORT
    31 #include <e32hashtab.h>                 //RHashSet
    30 #else
    32 
    31 #define CALENGLOBALDATA_EXPORT Q_DECL_IMPORT
    33 #include "calendbchangenotifier.h"      // MCalenDBChangeObserver
    32 #endif
    34 
       
    35 #include <calenmulticaluids.hrh>
       
    36 
       
    37 
    33 
    38 // FORWARD DECLARATIONS
    34 // FORWARD DECLARATIONS
    39 class CMRMailboxUtils;                  // Mailbox utilities
       
    40 class CCalSession;                      // Calendar session
    35 class CCalSession;                      // Calendar session
    41 class CCalEntryView;                    // Calendar entry view
    36 class CCalEntryView;                    // Calendar entry view
    42 class CCalInstanceView;                 // Calendar instance view
    37 class CCalInstanceView;                 // Calendar instance view
    43 class CCalenInterimUtils2;              // Provides helper functions to CalInterimApi
    38 class CalenDbChangeNotifier;           // Issues notifications of database changes
    44 class CCalenSend;                       // Sending interface
       
    45 class CCalenDbChangeNotifier;           // Issues notifications of database changes
       
    46 class MCalenContextChangeObserver;      // Context changes
    39 class MCalenContextChangeObserver;      // Context changes
    47 struct TKeyEvent;
    40 class CalenContextImpl;                // context implementation
    48 class CCalenContextImpl;                // context implementation
       
    49 class MCalenContext;
    41 class MCalenContext;
    50 class CCalenFileMapping;
       
    51 class CCalenInfo;
       
    52 class CCalCalendarInfo;
       
    53 
    42 
    54 // CLASS DECLARATION
    43 // CLASS DECLARATION
    55 
    44 
    56 /**
    45 /**
    57 *  CCalenGlobalData is a singleton using Thread local storage
    46 *  CCalenGlobalData is a singleton using Thread local storage
    64 *       CCalenInterimUtils2
    53 *       CCalenInterimUtils2
    65 *       CCalenSend
    54 *       CCalenSend
    66 *       CCalenDbChangeNotifier
    55 *       CCalenDbChangeNotifier
    67 *       CCalenContext
    56 *       CCalenContext
    68 */
    57 */
    69 NONSHARABLE_CLASS(CCalenGlobalData) : public CBase,
    58 class CCalenGlobalData : public CBase,
    70                                       public MMRUtilsObserver,
    59                                  public MCalenNotificationHandler
    71                                       public MCalenNotificationHandler
       
    72     {
    60     {
    73     public:  // Constructors and destructor
    61     public:  // Constructors and destructor
    74         /**
    62         /**
    75          * The only classes that should call NewL are the controller
    63          * The only classes that should call NewL are the controller
    76          * and server classes. Otherwise use InstanceL.
    64          * and server classes. Otherwise use InstanceL.
    77          * Doesn't take ownership of aNotifier.
    65          * Doesn't take ownership of aNotifier.
    78          */
    66          */
    79         IMPORT_C static CCalenGlobalData*
    67         CALENGLOBALDATA_EXPORT static CCalenGlobalData*
    80                             NewL( MCalProgressCallBack& aCalCallBack,
    68                             NewL( MCalProgressCallBack& aCalCallBack,
    81                                   MCalenContextChangeObserver* aNotifier=NULL,
    69                                   MCalenContextChangeObserver* aNotifier=NULL );
    82                                   MCalenDBChangeObserver* aDBNotifier=NULL);
       
    83 
    70 
    84         /**
    71         /**
    85         * Constructor.  Returns a new instance of CCalenGlobalData if
    72         * Constructor.  Returns a new instance of CCalenGlobalData if
    86         * none exists, or returns the existing instance.
    73         * none exists, or returns the existing instance.
    87         * @return CCalenGlobalData pointer
    74         * @return CCalenGlobalData pointer
    88         */
    75         */
    89         IMPORT_C static CCalenGlobalData* InstanceL();
    76         CALENGLOBALDATA_EXPORT static CCalenGlobalData* InstanceL();
    90 
    77 
    91         /**
    78         /**
    92         * Constructs CCalenGlobalData with an existing CCalSession.  It
    79         * Constructs CCalenGlobalData with an existing CCalSession.  It
    93         * is the responsibility of the caller to ensure that the session
    80         * is the responsibility of the caller to ensure that the session
    94         * remains open until ALL references to the CCalenGlobalData have been
    81         * remains open until ALL references to the CCalenGlobalData have been
    97         * CCalenGlobalData has previously been initialised with the same
    84         * CCalenGlobalData has previously been initialised with the same
    98         * external CCalSession, the  existing instance will be returned.
    85         * external CCalSession, the  existing instance will be returned.
    99         * @param aSession initialised calendar session
    86         * @param aSession initialised calendar session
   100         * @return CCalenGlobalData pointer
    87         * @return CCalenGlobalData pointer
   101         */
    88         */
   102         IMPORT_C static CCalenGlobalData* InstanceL(CCalSession& aSession);
    89         CALENGLOBALDATA_EXPORT static CCalenGlobalData* InstanceL(CCalSession& aSession);
   103 
    90 
   104         /**
    91         /**
   105         * Non-leaving version of constructor. Returns an instance of
    92         * Non-leaving version of constructor. Returns an instance of
   106         * CCalenGlobalData if one exists or NULL otherwise
    93         * CCalenGlobalData if one exists or NULL otherwise
   107         */
    94         */
   108         IMPORT_C static CCalenGlobalData* Instance();
    95         CALENGLOBALDATA_EXPORT static CCalenGlobalData* Instance();
   109 
    96 
   110         /**
    97         /**
   111         * CCalenGlobalData is a reference counting singleton.  Call Release()
    98         * CCalenGlobalData is a reference counting singleton.  Call Release()
   112         * when you are done with it, it will clean itself up when it needs to
    99         * when you are done with it, it will clean itself up when it needs to
   113         */
   100         */
   114         IMPORT_C void Release();
   101         CALENGLOBALDATA_EXPORT void Release();
   115 
   102 
   116     public: // New functions
   103     public: // New functions
   117 
   104         
   118         /**
       
   119         * Returns a reference to the mailbox utils
       
   120         * @return reference to a CMRMailboxUtils
       
   121         */
       
   122         IMPORT_C CMRMailboxUtils& MRMailboxUtilsL();
       
   123 
       
   124         /**
       
   125         * Returns a reference to the mr utils
       
   126         * @return reference to a CMRUtils
       
   127         */
       
   128         IMPORT_C CMRUtils& MeetingRequestUtilsL();
       
   129 
       
   130         /**
   105         /**
   131         * Returns a reference to the calendar session
   106         * Returns a reference to the calendar session
   132         * @return reference to a CCalSession
   107         * @return reference to a CCalSession
   133         */
   108         */
   134         IMPORT_C CCalSession& CalSessionL();
   109         CALENGLOBALDATA_EXPORT CCalSession& CalSessionL();
   135         
       
   136         /**
       
   137         * Returns a reference to the calendar session
       
   138         * @param aCalendar filename for which session to be returned
       
   139         * @return reference to a CCalSession from array of sessions
       
   140         */
       
   141         IMPORT_C CCalSession& CalSessionL(const TDesC& aCalendar);
       
   142 
   110 
   143         /**
   111         /**
   144         * Returns a pointer to the calendar instance view
   112         * Returns a pointer to the calendar instance view
   145         * if it has been constructed otherwise it
   113         * if it has been constructed otherwise it
   146         * returns NULL and constructs the instance view
   114         * returns NULL and constructs the instance view
   147         * asynchronously.
   115         * asynchronously.
   148         * @return pointer to a CCalInstanceView
   116         * @return pointer to a CCalInstanceView
   149         */
   117         */
   150         IMPORT_C CCalInstanceView* InstanceViewL();
   118         CALENGLOBALDATA_EXPORT CCalInstanceView* InstanceViewL();
   151 
   119 
   152         /**
   120        /**
   153         * Returns a pointer to the calendar instance view
       
   154         * if it has been constructed otherwise it
       
   155         * returns NULL and constructs the instance view
       
   156         * asynchronously.
       
   157         * @param aCollectionIds array of collection ids for which we need to 
       
   158         * create the instanceview
       
   159         * @return pointer to a CCalInstanceView
       
   160         */
       
   161         IMPORT_C CCalInstanceView* InstanceViewL(
       
   162                                     const RArray<TInt>& aCollectionIds );
       
   163         
       
   164         /**
       
   165         * Returns a pointer to the calendar entry view
   121         * Returns a pointer to the calendar entry view
   166         * if it has been constructed otherwise it
   122         * if it has been constructed otherwise it
   167         * returns NULL and constructs the entry view
   123         * returns NULL and constructs the entry view
   168         * asynchronously.
   124         * asynchronously.
   169         * @return pointer to a CCalEntryView
   125         * @return pointer to a CCalEntryView
   170         */
   126         */
   171         IMPORT_C CCalEntryView* EntryViewL();
   127         CALENGLOBALDATA_EXPORT CCalEntryView* EntryViewL();
   172         
       
   173         /**
       
   174         * Returns a pointer to the calendar entry view
       
   175         * if it has been constructed otherwise it
       
   176         * returns NULL and constructs the entry view
       
   177         * asynchronously.
       
   178         * @param aCollectionId collection id to which we need to create entryview
       
   179         * @return pointer to a CCalEntryView
       
   180         */
       
   181         IMPORT_C CCalEntryView* EntryViewL(const TCalCollectionId aCollectionId );
       
   182 
       
   183 
   128 
   184         /**
   129         /**
   185         * Returns information does complete entry view exist
   130         * Returns information does complete entry view exist
   186         * @return ETrue if exists EFalse if does not exist.
   131         * @return ETrue if exists EFalse if does not exist.
   187         */
   132         */
   188         IMPORT_C TBool EntryViewExists();
   133         CALENGLOBALDATA_EXPORT TBool EntryViewExists();
   189 
       
   190         /**
       
   191         * Returns a reference to the interim utils
       
   192         * @return reference to a CCalenInterimUtils2
       
   193         */
       
   194         IMPORT_C CCalenInterimUtils2& InterimUtilsL();
       
   195 
       
   196         /**
       
   197         * Returns a reference to the CCalenSend
       
   198         * @return reference to a CCalenSend
       
   199         */
       
   200         IMPORT_C CCalenSend& CalenSendL();
       
   201 
       
   202         /**
       
   203         * Returns information whether the default mailbox if retrieved
       
   204         * @return ETrue if successful EFalse if not
       
   205         */
       
   206         IMPORT_C TBool AttemptToRetrieveDefaultMailboxL( CMRMailboxUtils::TMailboxInfo& aDefaultMailbox);
       
   207 
       
   208         /**
       
   209         * Returns information whether events if queued successfully
       
   210         * @return ETrue if event is queued EFalse if it doesn't
       
   211         */
       
   212         IMPORT_C TBool QueueKeyEvent(const TKeyEvent& aEvent, TEventCode aType);
       
   213 
       
   214         /**
       
   215         * Returns information whether a keyevent is fetched successfully
       
   216         * @return ETrue if a keyevent is retieved EFalse if no more queued events
       
   217         */
       
   218         IMPORT_C TBool GetQueuedKeyEvent(TKeyEvent& aEvent, TEventCode& aType);
       
   219 
       
   220         /**
       
   221         * Reset events queue
       
   222         * @return void
       
   223         */
       
   224         IMPORT_C void ResetKeyEventQueue();
       
   225 
   134 
   226         /**
   135         /**
   227         * Returns a reference to the calendar context
   136         * Returns a reference to the calendar context
   228         * @return reference to a CCalenContext
   137         * @return reference to a CCalenContext
   229         */
   138         */
   230         IMPORT_C MCalenContext& Context();
   139         CALENGLOBALDATA_EXPORT MCalenContext& Context();
   231 
       
   232         
       
   233         /*
       
   234          * Initializes multiple db related objects
       
   235          * @return void
       
   236          */
       
   237         IMPORT_C void InitializeGlobalDataL();
       
   238         
       
   239         /*
       
   240 		* Gets meta db id from collection id 
       
   241 		* @param  cColId collection id for which db id has to be returned
       
   242 		* @return TInt Db id for callection id
       
   243 		*/
       
   244         IMPORT_C TInt GetDbIdFromCollectionIdL(const TCalCollectionId aColId );
       
   245         
       
   246 		/**
       
   247 		* @brief adds new calendar file and sets calendar info to it
       
   248 		*	 
       
   249 		* @param aCalendarInfo pointer to the calendar info which is being
       
   250 		* set to calsession
       
   251 		*/
       
   252         IMPORT_C void AddCalendarL(CCalCalendarInfo* aCalendarInfo);
       
   253 			
       
   254 		/**
       
   255 		* @brief removes dead calendar files from the file system
       
   256 		*/
       
   257         IMPORT_C void RemoveDeadCalendarsL();
       
   258         
       
   259         /**
       
   260         * @brief removes calendar file from the file system
       
   261         * 
       
   262         *  @param aCalendarFileName Name of the calendar file to be deleted.
       
   263         */
       
   264         IMPORT_C void RemoveCalendarL(const TDesC& aCalendarFileName);
       
   265 		
       
   266 		/**
       
   267 		* @brief updated calendar info for the calendar file
       
   268 		* 
       
   269 		* @param aCalendarInfo pointer to the calendar info which is being
       
   270 		* set to calsession
       
   271 		*/
       
   272         IMPORT_C void UpdateCalendarL(CCalCalendarInfo* aCalendarInfo);
       
   273 		
       
   274 		/**
       
   275 		* @brief  Get Calendar file name for the given collectionid
       
   276 		* 
       
   277 		* @param cColId collection id for which db id has to be returned
       
   278 		* @param aCalendarFileName calendar file name
       
   279 		*/
       
   280         IMPORT_C const TDesC& GetCalFileNameForCollectionId( 
       
   281                 const TCalCollectionId aColId);
       
   282 		
       
   283 		/**
       
   284 		* @brief Get all available calendar info
       
   285 		*
       
   286 		* @param  returns the list of available calendar info iterating 
       
   287 		* through all calendars
       
   288 		*/
       
   289         IMPORT_C void GetAllCalendarInfoL(RPointerArray<CCalCalendarInfo>& aCalendarInfoList);
       
   290 		
       
   291     public:    // from MMRUtilsObserver
       
   292         void HandleCalEngStatus( TMRUtilsCalEngStatus aStatus );
       
   293 
   140 
   294     public: // MCalenNotificationHandler
   141     public: // MCalenNotificationHandler
   295         void HandleNotification( const TCalenNotification aNotification );
   142         void HandleNotification( const TCalenNotification aNotification );
   296 
   143 
   297 
       
   298     private: // methods
       
   299         /**
       
   300         * Prompt the user to select their default meeting request mailbox. If the user cancels,
       
   301         * the function returns KErrCancel, otherwise it returns the index of the newly
       
   302         * selected mailbox. This function does not set the default mailbox, but rather returns
       
   303         * the index of the given array to which the default should be set.
       
   304         * @param aMailboxes array of all the mailboxes currently available.
       
   305         * @return KErrCancel if the user declined to set a default, otherwise the index
       
   306         * in aMailboxes to which the default should be set
       
   307         */
       
   308         TInt PromptToSelectDefaultMailboxL(RArray<CMRMailboxUtils::TMailboxInfo>& aMailboxes);
       
   309 
       
   310     private:
   144     private:
   311         /**
   145         /**
   312         * C++ constructor.
   146         * C++ constructor.
   313         *
   147         *
   314         */
   148         */
   316 
   150 
   317         /**
   151         /**
   318         * By default Symbian 2nd phase constructor is private. 
   152         * By default Symbian 2nd phase constructor is private. 
   319         * Doesn't take ownership of aNotifier.
   153         * Doesn't take ownership of aNotifier.
   320         */
   154         */
   321         void ConstructL( MCalenContextChangeObserver* aNotifier,
   155         void ConstructL(MCalenContextChangeObserver* aNotifier );
   322                                 MCalenDBChangeObserver* aDBNotifier);
       
   323 
   156 
   324         /**
   157         /**
   325         * Private Destructor.  Users of this class should call Release() instead
   158         * Private Destructor.  Users of this class should call Release() instead
   326         */
   159         */
   327         ~CCalenGlobalData();
   160         ~CCalenGlobalData();
   332         * created by the CCalenGlobalData
   165         * created by the CCalenGlobalData
   333         */
   166         */
   334         void SetSessionL(CCalSession* aSession);
   167         void SetSessionL(CCalSession* aSession);
   335 
   168 
   336         /**
   169         /**
   337         * Create entr yview
   170         * Create entryview
   338         * @return void 
       
   339         */
   171         */
   340         void CreateEntryViewL();
   172         void CreateEntryViewL();
   341         
   173         
   342         /**
   174         /**
   343         * Create instanceview
   175         * Create instanceview
   344         * @return void 
       
   345         */
   176         */
   346         void CreateInstanceViewL();
   177         void CreateInstanceViewL();
   347 
   178 
   348         /**
   179         /**
   349         * Create instanceview
       
   350         * @param aCollectionIds array of collection ids instance view
       
   351         * @return void
       
   352         */
       
   353         void CreateInstanceViewL(const RArray<TInt>& aCollectionIds);
       
   354         
       
   355         /**
       
   356         * Handle clean up after entryview/ instanceview being created
   180         * Handle clean up after entryview/ instanceview being created
   357         * @param aSuccess status of completion of instamce/entry view
       
   358         * @return void
       
   359         */
   181         */
   360         void ViewCreationCompleted( TBool aSuccess );
   182         void ViewCreationCompleted( TBool aSuccess );
   361         
   183 
   362         /*
   184     private:
   363          * Create new session for calendar name
       
   364          * @param aCalendar calendar filename 
       
   365          * @return referance to CCalSession 
       
   366          */
       
   367         CCalSession& CreateNewSessionL( const TDesC& aCalendar );
       
   368         
       
   369         /*
       
   370          * Create entry view for session
       
   371          * @param session referance to CCalSession
       
   372          * @return void 
       
   373          */
       
   374         void  CreateEntryViewL(CCalSession& session);
       
   375         
       
   376         /*
       
   377          * Constructs mapping between symbian calendar file and metabd info
       
   378          * @return TBool status of construction
       
   379          */
       
   380         TBool ConstructFileMappingL();
       
   381         
       
   382         /*
       
   383          * Find filemapping object based on calendar name
       
   384          * @param aName calendar filename
       
   385          * @param aFileMapping referance for RPointerArray find method.
       
   386          * @return TBool find status
       
   387          */
       
   388         static TBool CalenInfoIdentifierL( const HBufC* aName,
       
   389                                                 const CCalenFileMapping& aFileMapping);
       
   390         
       
   391         
       
   392         /*
       
   393          * Find CCalCalendarInfo object based on calendar filename
       
   394          * @param aFileName pointer to filename.
       
   395          * @param CCalCalendarInfo referance for RPointerArray find method.
       
   396          * @return TBool find status 
       
   397          */
       
   398         static TBool CalenCalendarInfoIdentiferL(const HBufC* aFileName,
       
   399                                                         const CCalCalendarInfo& aCalendarInfo);
       
   400         
       
   401         /*
       
   402          * @brief create new session for calendar name
       
   403          * 
       
   404          * @param aCalendar calendar filename 
       
   405          * @return referance to CCalSession 
       
   406          */
       
   407         CCalSession& CreateNewSessionL( const TDesC& aCalendar,
       
   408                 const CCalCalendarInfo& aCalendarInfo );
       
   409         
       
   410         /*
       
   411          * @brief Find filemapping object based on collection id
       
   412          * 
       
   413          * @param aCollectionId collection id 
       
   414          * @param aFileMapping referance for RPointerArray find method.
       
   415          * @return TBool find status
       
   416          */
       
   417         static TBool CalenFileMapIdentifierForColId(const TCalCollectionId* aId,
       
   418                              const CCalenFileMapping& aFileMapping );
       
   419 
       
   420 		/**
       
   421 		* @brief Construct calendarlist using calendar iterator  
       
   422 		*/
       
   423 		void ConstructCalendarsListL();
       
   424 		
       
   425 		/**
       
   426 		* @brief Update calendarlist whenever CalendarInfoUpdated notification is received.  
       
   427 		*/
       
   428 		void UpdateCalendarListL();
       
   429 		
       
   430 		/**
       
   431 		* @brief gets default calendar information
       
   432 		* 
       
   433 		* @return CCalCalendarInfo returns pointer to default calendar info
       
   434 		*/
       
   435 		CCalCalendarInfo* GetDefaultCalendarInfoL();
       
   436 		
       
   437 		/**
       
   438 		* @brief Handles the notification ECalenNotifyCalendarInfoCreated
       
   439 		* Adds a new calendar to the available calendar list in calendar app
       
   440 		*/
       
   441 		void HandleCalendarInfoCreatedL();
       
   442 		
       
   443 		/**
       
   444 		* @brief Handles the notification ECalenNotifyCalendarInfoUpdated
       
   445 		* Updates a new calendar in the available calendar list in calendar app
       
   446 		*/
       
   447 		void HandleCalendarInfoUpdatedL();
       
   448 		
       
   449 		/**
       
   450 		* @brief Handles the notification ECalenNotifyCalendarFileDeleted
       
   451 		* Deletes a calendar from the calendar list
       
   452 		*/
       
   453 		void HandleCalendarFileDeletedL();
       
   454 		
       
   455 		/*
       
   456 		 * @brief Delete all missed alarms for deleted calendar 
       
   457 		 * @param aCalendarFilename filename of the calendar for which missed 
       
   458 		 *        alarms should be deleted
       
   459 		 * @return void       
       
   460 		 */
       
   461 		void DeleteCalendarMissedAlarmsL(const TDesC& aCalendarFilename);
       
   462 
       
   463 	private:
       
   464         // Member data owned by this class.  Member data is only initialised on first use
   185         // Member data owned by this class.  Member data is only initialised on first use
   465         CActiveSchedulerWait* iUtilsAs;
   186         
   466         CCalSession* iCalSession;
   187         CCalSession* iCalSession;
   467         CCalEntryView* iEntryView;
   188         CCalEntryView* iEntryView;
   468         CCalEntryView* iEntryViewCreation;
   189         CCalEntryView* iEntryViewCreation;
   469         CCalInstanceView* iInstanceView;
   190         CCalInstanceView* iInstanceView;
   470         CCalInstanceView* iInstanceViewCreation;
   191         CCalInstanceView* iInstanceViewCreation;
   471         CCalSession* iNewCalSession;
   192         CalenContextImpl* iContext;       
   472         CCalEntryView* iNewEntryView;
   193         TInt iRefCount;        
   473         CCalEntryView* iNewEntryViewCreation;
   194         TBool iGlobalDataOwnsCalSession;        
   474         CCalInstanceView* iNewInstanceView;
   195 
   475         CCalInstanceView* iNewInstanceViewCreation;
   196         /* We need queueing to avoid two immediate instance and entry view creation requests to symbian.
   476         CCalenInterimUtils2* iInterimUtils;
   197          * Though symbian handle two immediate requests ,this we require because we have only one observer
   477         CCalenSend* iSend;
   198          * for callback and we would not be able to differentiate whether instance view got created or entry view got created.
   478         CCalenContextImpl* iContext;
   199          * If we dont queue the second request, we may end up giving incomplete object to the caller function.
   479         CMRUtils* iMRUtils;
   200          */
   480         TInt iRefCount;
       
   481         TInt iCreateError;
       
   482         TBool iGlobalDataOwnsCalSession;
       
   483         TBool iGlobalDataOwnsEntryView;
       
   484         RPointerArray<CCalenFileMapping > iFileMappingArray;
       
   485         RHashMap<TInt, TInt> iHashDbidIndexMap;
       
   486 
       
   487         //Only used if meeting request solution exists on device, otherwise NULL
       
   488         CMRMailboxUtils* iMailboxUtils;
       
   489 
       
   490         struct TQueuedKeyEvent {
       
   491             TKeyEvent iEvent;
       
   492             TEventCode iType;
       
   493         };
       
   494 
       
   495         typedef void (CCalenGlobalData::*QueuedFunction)();
   201         typedef void (CCalenGlobalData::*QueuedFunction)();
   496         QueuedFunction iQueued;
   202         QueuedFunction iQueued;
   497 
   203 
   498         // Not owned by class. Needed for entry and instance view
   204         // Not owned by class. Needed for entry and instance view
   499         // creation.
   205         // creation.
   500         MCalProgressCallBack& iCalCallBack;
   206         MCalProgressCallBack& iCalCallBack;
   501         RArray< TQueuedKeyEvent > iKeyQueue;
   207         
   502         TBool iCalendarForcedExit;
   208                 
   503         CCalSession* iCalendarsSession;
       
   504         RPointerArray<CCalCalendarInfo> iCalendarInfoList;
       
   505         MCalenDBChangeObserver* iDBChangeNotifier;
       
   506     };
   209     };
   507 
   210 
   508 #endif  // CALENGLOBALDATA_H
   211 #endif  // CALENGLOBALDATA_H
   509 
   212 
   510 // End of File
   213 // End of File