libkcal
freebusy.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KCAL_FREEBUSY_H
00023 #define KCAL_FREEBUSY_H
00024
00025 #include <qdatetime.h>
00026 #include <qvaluelist.h>
00027 #include <qptrlist.h>
00028
00029 #include "period.h"
00030 #include "calendar.h"
00031
00032 #include "incidencebase.h"
00033
00034 namespace KCal {
00035
00036 typedef QValueList<Period> PeriodList;
00040 class LIBKCAL_EXPORT FreeBusy : public IncidenceBase
00041 {
00042 public:
00043 FreeBusy();
00044 FreeBusy( const QDateTime &start, const QDateTime &end );
00045 FreeBusy( Calendar *calendar, const QDateTime &start,
00046 const QDateTime &end );
00047 FreeBusy( PeriodList busyPeriods );
00048
00049 ~FreeBusy();
00050
00051 QCString type() const { return "FreeBusy"; }
00052
00053 virtual QDateTime dtEnd() const;
00054 bool setDtEnd( const QDateTime &end );
00055
00056 PeriodList busyPeriods() const;
00057
00059 void addPeriod( const QDateTime &start, const QDateTime &end );
00060 void addPeriod( const QDateTime &start, const Duration &dur );
00064 void addPeriods( const PeriodList & );
00065 void sortList();
00066
00067 void merge( FreeBusy *freebusy );
00068
00069 private:
00070 bool accept( Visitor &v ) { return v.visit( this ); }
00071
00072 bool addLocalPeriod( const QDateTime &start, const QDateTime &end );
00073
00074 QDateTime mDtEnd;
00075 PeriodList mBusyPeriods;
00076 Calendar *mCalendar;
00077
00078 class Private;
00079 Private *d;
00080 };
00081
00082 }
00083
00084 #endif
|