include/Common.h

Go to the documentation of this file.
00001 
00021 #ifndef _COMMON_H__
00022 #define _COMMON_H__
00023 
00024 #include <vector>
00025 #include <algorithm>
00026 #include <list>
00027 #include <string>
00028 #include <iostream>
00029 #include <sqlite3.h>
00030 #include <assert.h>
00031 #include "CMulticalendar.h"
00032 #include "DbCalls.h"
00033 #include "CCalendar.h"
00034 #include "CCalendarDB.h"
00035 #include "CComponent.h"
00036 #include "CComponentDetails.h"
00037 #include "CEvent.h"
00038 #include "CTodo.h"
00039 #include "CJournal.h"
00040 #include "CRecurrence.h"
00041 #include "CalendarLog.h"
00042 #include "CParameters.h"
00043 #include <clockd/libtime.h>
00044 using namespace std;
00045 using std::vector;
00046 using std::string;
00047 
00048 
00051 //const char SEMI_COLON[] =  ";"; 
00052 const char DEFAULT_CALENDAR[] = "Private";
00053 const char SYNCHRONIZED_CALENDAR[] = "Synchronized";
00054 const char OPAQUE[] = "OPAQUE";
00055 const char TRANSPERANCY[] = "TRANSPARENT";
00056 const char BEGIN[] = "begin";
00057 const char END[] = "end";
00058 const char MAXID[] = "MaxId";
00059 const char CALAPP[] = "CALENDAR-UI";
00062 const char BEGIN_EVENT[] = "BEGIN:VEVENT";
00063 const char END_EVENT[] = "END:VEVENT";
00064 const char BEGIN_TODO[] = "BEGIN:VTODO";
00065 const char END_TODO[] = "END:VTODO";
00066 const char BEGIN_JOURNAL[] = "BEGIN:VJOURNAL";
00067 const char END_JOURNAL[] = "END:VJOURNAL";
00068 const char BEGIN_CALENDAR[] = "BEGIN:VCALENDAR";
00069 const char END_CALENDAR[] = "END:VCALENDAR";
00070 const char BEGIN_ALARM[] = "BEGIN:VALARM";
00071 const char END_ALARM[] = "END:VALARM";
00072 const char ICS_DEFAULT_CALENDAR_NAME[] = "imported calendar-%";
00073 const char ICS_CALNAME_SEPERATOR[] = "-";
00074 const char ICS_FILENAME_SEPERATOR[] = "file://";
00075 const char V_EVENT[] = "VEVENT";
00076 const char V_TODO[] = "VTODO";
00077 const char VJOURNAL[] = "VJOURNAL";
00078 const char RDATE[] = "RDATE";
00079 const char EXDATE[] = "EXDATE";
00080 const char RDATE_COL[] = "RDATE:";
00081 const char EXDATE_COL[] = "EXDATE:";
00082 const char RRULE[] = "RRULE";
00083 const char EXRULE[] = "EXRULE";
00084 const char RRULE_COL[] = "RRULE:";
00085 const char EXRULE_COL[] = "EXRULE:";
00086 const char A_ALARM[] = "AALARM";
00087 const char DAILY[] = "DAILY";
00088 const char WEEKLY[] = "WEEKLY";
00089 const char MONTHLY[] = "MONTHLY";
00090 const char YEARLY[] = "YEARLY";
00091 const char WEEKDAY[] = "WEEKLY;BYDAY=MO,TU,WE,TH,FR";
00092 const char UNTIL_ICAL[] = "UNTIL=";
00093 const char PUBLIC[] = "PUBLIC";
00094 const char PRIVATE[] = "PRIVATE";
00095 const char CONFIDENTIAL[] = "CONFIDENTIAL";
00096 const char ALTREP[] = "ALTREP=";
00097 const char DOUBLE_QUOTE[] = "\"";
00098 const char LANG[] = "LANGUAGE=";
00099 
00102 const char DCREATED[] = "DCREATED:";
00103 const char RSVP_YES[] = "RSVP=YES";
00104 const char RSVP_NO[] = "RSVP=NO";
00105 const char PARTSTAT_SENT[] = "STATUS=SENT";
00106 const char PARTSTAT_CONFIRMED[] = "STATUS=CONFIRMED";
00107 const char STATUS_SENT[] = "STATUS:SENT";
00108 const char STATUS_DECLINED[] = "STATUS:DECLINED";
00109 const char STATUS_DELEGATED[] = "STATUS:DELEGATED";
00110 const char STATUS_ACCEPTED[] = "STATUS:ACCEPTED";
00111 const char STATUS_NEEDS_ACTION[] = "STATUS:NEEDS ACTION";
00112 const char STATUS_CONFIRMED[] = "STATUS:CONFIRMED";
00113 const char STATUS_TENTATIVE[] = "STATUS:TENTATIVE";
00114 const char STATUS_COMPLETED[] = "STATUS:COMPLETED";
00115 const char ROLE_ATTENDEE[] = "ROLE=ATTENDEE";
00116 const char ROLE_ORGANIZER[] = "ROLE=ORGANIZER";
00117 const char ROLE_OWNER[] = "ROLE=OWNER";
00118 const char ROLE_DELEGATE[] = "ROLE=DELEGATE";
00119 const char EXPECT[] = "EXPECT=";
00120 const char TRANSP_ZERO[] = "TRANSP:0";
00121 const char TRANSP_ONE[] = "TRANSP:1";
00122 const char TRANSP_GT_ONE[] = "TRANSP:>1";
00123 const char MON_DAY[] = "MO";
00124 const char TUES_DAY[] = "TU";
00125 const char WEDNES_DAY[] = "WE";
00126 const char THURS_DAY[] = "TH";
00127 const char FRI_DAY[] = "FR";
00128 const char SATUR_DAY[] = "SA";
00129 const char COMMA[] = ",";
00130 const char HYPHEN[] = "-";
00131 const char PLUS[] = "+";
00132 const char HASH[] = "#";
00133 const char SUN_DAY[] = "SU";
00134 const char COUNT_VCAL[] = ";COUNT=";
00135 const char UNTIL_VCAL[] = ";UNTIL=";
00136 const char FREQ_DAILY[] = "FREQ=DAILY";
00137 const char FREQ_WEEKLY[] = "FREQ=WEEKLY";
00138 const char FREQ_MONTHLY[] = "FREQ=MONTHLY";
00139 const char FREQ_YEARLY[] = "FREQ=YEARLY";
00140 const char INTERVAL_VCAL[] = ";INTERVAL="; 
00141 const char BY_MONTH_VCAL[] = ";BYMONTH="; 
00142 const char BY_MONTHDAY_VCAL[] = ";BYMONTHDAY=";
00143 const char BY_DAY_VCAL[] = ";BYDAY="; 
00144 const char WKSTRT_SU_VCAL[] = ";WKST=SU";
00145 const char UNTIL[] = "UNTIL";
00146 const char COUNT[] = "COUNT";
00147 const char FREQUENCY[] = "FREQ";
00148 const char INTERVAL[] = "INTERVAL";
00149 const char BY_DAY[] = "BYDAY";
00150 const char BY_MONTHDAY[] = "BYMONTHDAY";
00151 const char BY_MONTH[] = "BYMONTH";
00152 const char TZID[] = "TZID";
00153 const char PERIOD[] = "PERIOD";
00154 const char DATE[] = "DATE";
00155 const char DURATION[] = "DURATION";
00156 const char REPEAT[] = "REPEAT";
00157 const char ACTION_AUDIO[] = "ACTION:AUDIO";
00158 const char DURATION_COL[] = "DURATION:";
00159 const char REPEAT_COL[] = "REPEAT:";
00160 const char DALARM[] = "DALARM";
00161 const char PALARM[] = "PALARM";
00162 const char M[] = "M";
00163 const char P[] = "P";
00164 const char Y[]= "Y";
00165 const char D[] = "D";
00166 const char W[] = "W";
00167 const char HASH_ZERO[] = "#0";
00168 const char TIMEZONE[] = "T000000Z";
00169 const char TRIGGER_VALUE_DATE_TIME[] = "TRIGGER;VALUE=DATE-TIME:";
00170 const char ALARM_TYPE_WAVE_VALUE[] = "AALARM;TYPE=WAVE;VALUE=CONTENT-ID:"; 
00171 const char AUDIO_ALARM_DELIMITER[] = ":=;,"; 
00172 const char DATE_DELIMITER[] = ":=;,/"; 
00173 const char VCALRULE_DELIMITER[] = ":=;,";
00174 const char ZEROSEMI[] = "0;";
00175 const int ZEROSEC =  0;
00176 const int THREEOOSEC = 300;
00177 const int NINEOOSEC = 900;
00178 const int HALFHOUR = 1800;
00179 const int ONEHOUR = 3600;
00180 const int THREEHOUR = 10800;
00181 const int ONEDAY = 86400;
00182 const int HALFDAY = 43200;
00183 const int TENSEVEN = 17;
00184 const int THREE = 3;
00185 const int EIGHT = 8;
00186 const int MAX_ALARM_TIME = 9;
00187 const int altime[MAX_ALARM_TIME] = { ZEROSEC,
00188     ZEROSEC,
00189     THREEOOSEC,
00190     NINEOOSEC,
00191     HALFHOUR ,
00192     ONEHOUR,
00193     THREEHOUR ,
00194     ONEDAY ,
00195     HALFDAY
00196 };
00197 
00200 const int ZERO = 0;
00201 const int ONE = 1;
00202 const int HUNDRED = 100;
00203 const int NINETEEN_HUNDRED = 1900;
00204 const int NINE = 9;
00205 const int EXTERNAL_ENTRY = 8;
00206 const int SUCCESS = 1;
00207 const int FAILURE = 0;
00208 const int NULLID = -1;
00209 const int MAX_ENTRIES = 100;
00210 const int MAX_ENTRY_COL = 10;
00211 const int MAX_JOUR_COL = 7;
00212 const int MAX_TODO_COL = 13;
00213 const int MAX_APRIM_COL = 7;
00214 const int MAX_ORZER_COL = 6;
00215 const int MAXSIZE = 32;
00216 const int MACLENGTH = 18;
00217 const int MAX_RECUR = 6;
00218 const int ADDRESSLENGTH = 6;
00219 const int HEX_252 = 0xfc; 
00220 const int HEX_3 = 0x03; 
00221 const int HEX_240 = 0xf0; 
00222 const int HEX_15 = 0x0f; 
00223 const int HEX_192 = 0xc0; 
00224 const int HEX_63 = 0x3f; 
00227 const int DEFAULT_ICS_CALNAME_LENGTH = 15;
00228 const int ICS_FILENAME_SEPERATOR_LENGTH = 6;
00229 const int ALARM_DUR_DIFF1 = 600;
00230 const int ALARM_DUR_DIFF2 = 1350;
00231 const int ALARM_DUR_DIFF3 = 2700;
00232 const int ALARM_DUR_DIFF4 = 7200;
00233 const int SEC_IN_HR = 3600;
00234 
00237 const char DESCRIPTION[] = "DESCRIPTION";
00238 const char SUMMARY[] = "SUMMARY";
00239 const char RESOURCES[] = "RESOURCES";
00240 const char CATEGORIES[] = "CATEGORIES";
00241 const char ATTDEE[]    = "ATTEND";
00242 const char ORGZER[]    = "ORGNI";
00243 const char ATTACH[]    = "ATTACH";
00244 const char ATTACH_ALARM[] = "ATTACH;FMTTYPE=audio/basic:";
00247 const char RELATEDTO[] = "RELATED-TO";
00248 const char COMMENT[] = "COMMENT";
00249 const char LOCATION[] = "LOCATION";
00250 const char CONTACT[] = "CONTACT";
00251 
00252 const char LANGUAGE[] = "LANGUAGE";
00253 const char ALTER[] = "ALTER";
00254 const char RELTYPE[] = "RELTYPE";
00255 const char FMTYPE[] = "FMTYPE";
00256 
00257 const char SENT[] = "SENTBY";
00258 const char CNAME[] = "CNAME";
00259 const char DIRPAR[] = "DIRPARAM";
00260 const char GNMAILTO[] = "MAILTO";
00261 const char ATCUTYPE[] = "CUTYPE";
00262 const char ATMEMBER[] = "MEMBER";
00263 const char ATROLE[] = "ROLE";
00264 const char ATPSTAT[] = "PSTAT";
00265 const char ATRSVP[] = "RSVP";
00266 const char ATDELEGATEES[] = "DELEGATEES";
00267 const char ATDELEGATOR[] = "DELEGATOR";
00271 const char COMMIT[] = "commit";
00272 const char ROLLBACK[] = "rollback";
00276 #define ASSERTION(X) assert(X);
00277 
00281 typedef enum {
00282     CNPARAM = 0,
00283     DIRPARAM,
00284     SENTBYPARAM,
00285     ORGLANGUAGE
00286 }OrganizerParms;
00287 
00288 typedef enum {
00289     CALENDAR_USER_TYPE = 0,
00290     MEMBER ,
00291     ROLE,
00292     PART_STATUS,
00293     RSVP,
00294     DELEGATEES,
00295     DELEGATOR,
00296     SENTBY,
00297     COMMON_NAME,
00298     DIR_PARAM,
00299     ATTLANGUAGE,
00300     MAILTO
00301 } AttendeeParms;
00302 
00303 typedef enum DATATYPE{
00304     STRING = 0,
00305     INTEGER,
00306     FLOAT,
00307     BOOL,
00308     NONE_TYPE
00309 };
00310 
00311 enum EntryType{
00312     ALL_ENTRIES = 0,
00313     EVENT,
00314     TODO,
00315     JOURNAL,
00316     BIRTHDAY
00317 };
00318 
00319 enum OPTION_TYPE {
00320 
00321     HAS_ATTENDEE = 1,
00322     HAS_ORGANIZER,
00323     HAS_RECURRENCE,
00324     HAS_ALARM,
00325     HAS_RECURRENCE_ALARM,
00326     HAS_PARTICIPANT,
00327     HAS_CATEGORIES,
00328     HAS_COMMENT,
00329     HAS_EXTRA
00330 };
00331 
00332 enum RecurrencType{
00333     E_NONE =0 ,
00334     E_DAILY,
00335     E_WEEKDAY,
00336     E_WEEKLY,
00337     E_MONTHLY,
00338     E_YEARLY,
00339     E_COMPLEX
00340 };
00341 
00342 enum entryType {
00343     E_CALENDAR = 0,
00344     E_EVENT,
00345     E_TODO,
00346     E_JOURNAL,
00347     E_BDAY,
00348     E_SPARE
00349 };
00350 
00351 enum columnId {
00352     DB_COLUMN_ID1 = 0,
00353     DB_COLUMN_ID2,
00354     DB_COLUMN_ID3,
00355     DB_COLUMN_ID4,
00356     DB_COLUMN_ID5,
00357     DB_COLUMN_ID6,
00358     DB_COLUMN_ID7,
00359     DB_COLUMN_ID8,
00360     DB_COLUMN_ID9,
00361     DB_COLUMN_ID10,
00362     DB_COLUMN_ID11,
00363     DB_COLUMN_ID12,
00364     DB_COLUMN_ID13,
00365     DB_COLUMN_ID14,
00366     DB_COLUMN_ID15,
00367     DB_COLUMN_ID16,
00368     DB_COLUMN_ID17,
00369     DB_COLUMN_ID18,
00370     DB_COLUMN_ID19,
00371     DB_COLUMN_ID20,
00372     DB_COLUMN_ID21,
00373     DB_COLUMN_ID22,
00374     DB_COLUMN_ID23,
00375     DB_COLUMN_ID24,
00376     DB_COLUMN_ID25,
00377     DB_COLUMN_ID26,
00378     DB_COLUMN_ID27,
00379     DB_COLUMN_ID28,
00380     DB_COLUMN_ID29,
00381     DB_COLUMN_ID30,
00382     DB_COLUMN_ID31,
00383     DB_COLUMN_ID32,
00384     DB_COLUMN_ID33,
00385     DB_COLUMN_ID34,
00386     DB_COLUMN_ID35
00387 };
00388 
00389 enum DaysOfWeek
00390 {
00391     Sunday    = 1,
00392     Monday    = 2,
00393     Tuesday   = 4,
00394     Wednesday = 8,
00395     Thursday  = 16,
00396     Friday    = 32,
00397     Saturday  = 64
00398 };
00399 
00400 enum RecurrenceType
00401 {
00402     RecursSecondly = 0,
00403     RecursMinutely ,
00404        RecursHourly   ,
00405     RecursDaily    ,
00406     RecursWeekly   ,
00407     RecursMonthly  ,
00408     RecursMonthNth ,
00409     RecursYearly   ,
00410     RecursYearNth  
00411 };
00412 
00413 typedef struct {
00414     RecurrenceType freq;
00415     char* interval;
00416     char* modifier;    
00417     char* duration;
00418 }RecurrenceItem;
00419 
00420 #endif

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