include/CMulticalendar.h

00001 /*
00002  * @file CMulticalendar.h
00003  * This file is part of Maemo calendar.
00004  * Copyright (C) 2008 Nokia Corporation. All rights reserved.
00005  *
00006  * Contact: Biris Ilias <ilias.biris@nokia.com>
00007  *
00008  * This software, including documentation, is protected by copyright 
00009  * controlled by Nokia Corporation. All rights are reserved. Copying, 
00010  * including reproducing, storing, adapting or translating, any or all
00011  * of this material requires the prior written consent of Nokia Corporation.
00012  * This material also contains confidential information which may not be
00013  * disclosed to others without the prior written consent of Nokia.
00014  */
00015 
00016 #ifndef __MULTI_CALENDAR_H__
00017 #define __MULTI_CALENDAR_H__
00018 
00019 /* Header files */
00020 #include <libical/ical.h>
00021 #include "CCalendar.h"
00022 #include "CComponent.h"
00023 #include "CCalendarDB.h"
00024 #include "CBdayEvent.h"
00025 #include <string>
00026 #include <vector>
00027 
00037 class CMulticalendar {
00038 
00039   public:
00040 
00049           CCalendar* getSynchronizedCalendar();
00059           CCalendar* getDefaultCalendar();
00071           bool getICSFileInfo(string szFileName,unsigned int& iEventCount,unsigned  int& iTodoCount,unsigned int& iJournalCount ,int& pErrorCode );
00077           string getSynchronizedCalendarName();
00078 
00086           string getCTCapXML();
00087 
00088           /*TODO: As import is done per calendar basis we have to move this 
00089            * function in CCalendar and provide a wrapper here */
00100           bool importIcsFileData(string szFileName,int iCalid,string &eventId,int& pErrorCode);
00111           int exportCalendarEntries(int iCalendarId,string szFileName,int& pErrorCode);
00112 
00124           bool deleteEventBeyond(int iCalId, time_t iUtc,int& pErrorCode);
00125 
00126 
00138           bool deleteTodosBeyond(int iCalId, time_t iUtc,int& pErrorCode);
00139 
00150           CCalendar *getCalendarByName(string szName,int& pErrorCode);
00151 
00152 
00165           bool deleteJournalsBeyond(int iCalId, time_t iUtc,int& pErrorCode);
00166 
00178           bool enableAutomaticDeletion(int iDayBefore,int& pErrorCode);
00179 
00192           vector < time_t > getRecurrentTimes(string szRRule, icaltimetype iDtStart,
00193                           time_t iViewEnd,int& pErrorCode);
00194 
00211           vector < CComponent * >getComponents(int iCalId, int iType, int iStDate, int iEndDatei,int& pErrorCode);
00212 
00213 
00220           int getNoofCalendars();
00235           int addCalendar(string szTitle, CalendarColour iColor, int iReadOnly,
00236                      int iVisible,CalendarType iType,string szCalendarTune,
00237                  string szCalendarVersion,int& pErrorCode);
00253           bool modifyCalendar(int iId ,string szTitle, CalendarColour iColor,
00254                       int iReadOnly,int iVisible,CalendarType iType,string szCalendarTune,
00255                       string szCalendarVersion,int& pErrorCode);
00256 
00265           bool deleteCalendar(int iCalId,int& pErrorCode);
00266 
00276           CCalendar *getCalendarById(int iCalId,int& pErrorCode);
00277 
00284           void setMaxId(int iMaxId);
00285 
00292           int getMaxId();
00300           int searchMaxId();
00317           vector < CComponent * > getComponentsAllCalendars( int iType, int iStDate, int iEndDate,
00318                   int iLimit,int iOffset,vector<int > &vCalid , int& pErrorCode);
00330           vector < CComponent * > getAllEventsTodosForCalendar(int iCalid, int iStDate,
00331                   int iEndDate, int iLimit , int iOffset,int& pErrorCode);
00332 
00344           bool addEvent(CEvent * pEvent, int iCalendarId,int& pErrorCode);
00345 
00354           bool modifyEvent(CEvent * pEvent, int iCalendarId,int& pErrorCode);
00355 
00364           bool deleteEvent(int iCalId, string sCompId,int& pErrorCode);
00365 
00366 
00377           bool  addTodo(CTodo * pTodo, int iCalendarId,int& pErrorCode);
00378 
00387           bool  modifyTodo(CTodo * pTodo, int iCalendarId,int& pErrorCode);
00388 
00397           bool  deleteTodo(int iCalId, string  sCompId,int& pErrorCode);
00398 
00399 
00408           bool  addJournal(CJournal * pJournal, int iCalendarId,int& pErrorCode);
00409 
00418           bool  modifyJournal(CJournal * pJournal, int iCalendarId,int& pErrorCode);
00419 
00428           bool  deleteJournal(int iCalId, string sCompId,int& pErrorCode);
00429 
00435           static CMulticalendar *MCInstance();
00436 
00444           int getEventCount(int iCalId,int& pErrorCode);
00445 
00453           int getTodoCount(int iCalId,int& pErrorCode);
00454 
00462           int getNoteCount(int iCalId,int& pErrorCode);
00463 
00474           vector < CCalendar * >getListCalFromMc();
00475 
00484           bool modifyCalendar(CCalendar* pCal,int& pErrorCode);
00485 
00496           int addCalendar(CCalendar* pCal,int& pErrorCode);
00505           int getNumOfUndoneTasks(int* iCalId,int& pErrorCode);
00512           int getNumOfAllDayEventsForToday(int& pErrorCode);
00522           vector <CComponent*>  getTodaysAllDay(int &pErrorCode);
00523 
00527           CMulticalendar();
00528 
00532           ~CMulticalendar();
00533 
00543           bool addBirthDay(CBdayEvent * pBday,int& pErrorCode);
00544 
00552           bool modifyBirthDay(CBdayEvent * pBday,int& pErrorCode);
00553 
00561           bool deleteBirthDay(string szEUid,int& pErrorCode);
00562 
00572           CCalendar *getCalendarByType(int iCalTypei,int& pErrorCode);
00573 
00593           vector < CComponent * > getComponents(int iCalId, int iType, int iStDate,
00594                           int iEndDate,int iLimit,int iOffset,int& pErrorCode);
00595 
00596 
00605           int setAutocommitOff ();
00606 
00607 
00616           bool commitAllChanges ();
00617 
00625           bool rollbackAllChanges ();
00626 
00639           bool setNextAlarm (int iCalendarId, string sComponentId,int& pErrorCode);
00640 
00647           void setApplicationName (string ApplicationName);
00654           string  getApplicationName ();
00661           bool checkCalendarNameExists(string szName);
00671           CComponent* getLatestComponent(int iType,time_t startdate,int ioffset,int& pErrorCode );
00678           string getDefaultCalendarName();
00690           CComponent* getPrevNextComponent(string szId , time_t iDateStart,
00691                   bool isPrev,int& iCalid,int& perrorcode);
00697           void MCdestroy();
00704           vector<CComponent*> popEventDetails (QueryResult* pQr);
00705 
00711           int getCalendarIdForComponent(string iI,int &pErrorCode);
00712 
00726           /*TODO: function should be made private*/
00727           vector <CCalendar *> getAllCalendars();
00736           CCalendar* getBirthdayCalendar();
00743           bool deleteBirthdaysForCalendar(int iCalid,int & pErrorCode);
00751           int getBdayEventCount(int iCalId,int& pErrorCode);
00752   private:
00753 
00764           vector<string> giveRecursiveExpiredEvents(int iCalId,int iType,int iDayBefore,int &pErrorCode);
00765 
00766               time_t getInstanceBeyond(string szRRule, icaltimetype iDtStart, time_t iViewEnd,int& pErrorCode);
00777           vector < string > giveExpiredEntries(int iCalId, int iType, int iConfiguredTime,int& pErrorCode);
00778 
00788           int getCount(int iCalId, int iType,int& pErrorCode);
00789 
00800           string generateRrule(int iRepeatType, time_t iUntil,int& pErrorCode);
00801 
00802 
00808           CMulticalendar(CMulticalendar & ref);
00809 
00814           CMulticalendar & operator=(CMulticalendar & calendardb);
00815 
00816           vector < CCalendar * >vCalendarList;  
00817           /* Max numeric id of component in DB 
00818            * populated at the time of construction*/    
00819           int iMaxId;
00820           /*application which us using the calendar backend can use to set the ID of it 
00821            */
00822           string AppName;
00823 
00824           static CMulticalendar *pMc; 
00827 };
00828 
00829 #endif

Generated on Tue Feb 24 16:21:31 2009 for calendar-backend by  doxygen 1.5.1