00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __MULTI_CALENDAR_H__
00017 #define __MULTI_CALENDAR_H__
00018
00019
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
00089
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
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
00818
00819 int iMaxId;
00820
00821
00822 string AppName;
00823
00824 static CMulticalendar *pMc;
00827 };
00828
00829 #endif