include/CRecurrenceRule.h

Go to the documentation of this file.
00001 
00017 #ifndef __RECURRENCE_RULE_H__
00018 #define __RECURRENCE_RULE_H__
00019 
00020 /* Headers */
00021 #include<libical/ical.h>
00022 #include<vector>
00023 #include <string>
00024 using std::string;
00025 using std::vector;
00026 
00027 /* Enum definitions */
00028 typedef enum FREQUENCY {
00029 
00030     SECONDLY_RECURRENCE = 0,
00031     MINUTELY_RECURRENCE = 1,
00032     HOURLY_RECURRENCE = 2,
00033     DAILY_RECURRENCE = 3,
00034     WEEKLY_RECURRENCE = 4,
00035     MONTHLY_RECURRENCE = 5,
00036     YEARLY_RECURRENCE = 6,
00037     NO_RECURRENCE = 7
00038 };
00039 
00040 typedef enum {
00041     SUNDAY = 0,
00042     MONDAY,
00043     TUESDAY,
00044     WEDNESDAY,
00045     THURSDAY,
00046     FRIDAY,
00047     SATURDAY
00048 } WeekDay;
00049 
00050 typedef enum {
00051     RECURRENCE_RULE = 0,
00052     EXCEPTION_RULE
00053 } RuleType;
00054 
00059 class CRecurrenceRule {
00060 
00061   public:
00062 
00066     CRecurrenceRule(CRecurrenceRule & ref);
00067 
00071     CRecurrenceRule & operator=(CRecurrenceRule & right);
00072 
00076     CRecurrenceRule();
00077 
00081     ~CRecurrenceRule();
00082 
00090     bool setRuleType(RuleType iType);
00091 
00100     RuleType getRuleType();
00101 
00112     bool rruleParser(string szRule);
00113 
00120     bool setRrule(string szRRule);
00121 
00128     string getRrule();
00129 
00137     bool setFrequency(FREQUENCY iValue);
00138 
00145     FREQUENCY getFrequency();
00146 
00153     bool setUntil(time_t iUntil);
00154 
00161     time_t getUntil();
00162 
00169     bool setCount(int iCount);
00170 
00177     int getCount();
00178 
00186     bool setSecond(vector < short > vSec);
00187 
00195     vector < short >getSecond();
00196 
00205     bool setMinute(vector < short > vMinute);
00206 
00214     vector < short >getMinute();
00215 
00223     bool setHour(vector < short > vHour);
00224 
00232     vector < short >getHour();
00233 
00242     bool setWeekDay(vector < short > vByWeekDay);
00243 
00252     vector < short >getWeekDay();
00253 
00260     bool setMonthDay(vector < short > vByMonthDay);
00261 
00268     vector < short >getMonthDay();
00269 
00277     bool setYearDay(vector < short > vByYearDay);
00278 
00285     vector < short >getYearDay();
00286 
00294     bool setWeekNumber(vector < short > vByWeekNumber);
00295 
00303     vector < short >getWeekNumber();
00304 
00312     bool setMonth(vector < short > vMonth);
00313 
00321     vector < short >getMonth();
00322 
00338     bool setPos(vector < short > vPosition);
00339 
00346     vector < short >getPos();
00347 
00364     bool setWeekStart(icalrecurrencetype_weekday start);
00365 
00373     icalrecurrencetype_weekday getWeekStart();
00374 
00380     bool setInterval(short interval);
00381 
00389     short getInterval();
00390 
00395     CRecurrenceRule(int iType, string szRRule);
00396 
00397   private:
00405     vector < short > convertArrayToVector(short array[], int iLengthMax);
00406     
00407     FREQUENCY iFreq; 
00409     string szRule; 
00411     int iCount; 
00413     short interval; 
00415     time_t iUntil; 
00417     RuleType iType; 
00427     icalrecurrencetype_weekday weekStart;
00428 
00429     //week start as per rfc Ical is 
00430     //week day  from which recuurenc
00431     // has to start. Our Calendar app supports SU
00432     // or MO for week start. 
00433     vector < short >vBySecond; 
00435     vector < short >vByMinute; 
00437     vector < short >vByHour; 
00439     vector < short >vByWeekDay; 
00441     vector < short >vByMonthDay; 
00443     vector < short >vByYearDay; 
00445     vector < short >vByWeekNumber; 
00447     vector < short >vByMonth; 
00449     vector < short >vBySetPos; 
00450 };
00451 
00452 #endif

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