1/*
2 This file is part of the kcal library.
3
4 Copyright (c) 2001-2003 Cornelius Schumacher <schumacher@kde.org>
5
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
10
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details.
15
16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 Boston, MA 02110-1301, USA.
20*/
21/**
22 @file
23 This file is part of the API for handling calendar data and
24 defines the Period class.
25
26 @brief
27 Represents a period of time.
28
29 @author Cornelius Schumacher \<schumacher@kde.org\>
30*/
31
32#ifndef KCAL_FREEBUSYPERIOD_H
33#define KCAL_FREEBUSYPERIOD_H
34
35#include "kcal_export.h"
36#include "duration.h"
37#include "period.h"
38
39#include <kdatetime.h>
40#include <QtCore/QList>
41
42namespace KCal {
43
44/**
45 The period can be defined by either a start time and an end time or
46 by a start time and a duration.
47*/
48class KCAL_DEPRECATED_EXPORT FreeBusyPeriod : public Period
49{
50 public:
51 /**
52 List of periods.
53 */
54 typedef QList<FreeBusyPeriod> List;
55
56 /**
57 Constructs a period without a duration.
58 */
59 FreeBusyPeriod();
60
61 /**
62 Constructs a period from @p start to @p end.
63
64 @param start the time the period begins.
65 @param end the time the period ends.
66 */
67 FreeBusyPeriod( const KDateTime &start, const KDateTime &end );
68
69 /**
70 Constructs a period from @p start and lasting @p duration.
71
72 @param start the time when the period starts.
73 @param duration how long the period lasts.
74 */
75 FreeBusyPeriod( const KDateTime &start, const Duration &duration );
76
77 /**
78 Constructs a period by copying another period object
79
80 @param period the period to copy
81 */
82
83 FreeBusyPeriod( const FreeBusyPeriod &period );
84
85 /**
86 Constructs a period by copying another period object
87
88 @param period the period to copy
89 */
90
91 FreeBusyPeriod( const Period &period );
92
93 /**
94 Destroys a period.
95 */
96 ~FreeBusyPeriod();
97
98 /**
99 Sets this period equal to the @p other one.
100
101 @param other is the other period to compare.
102 */
103 FreeBusyPeriod &operator=( const FreeBusyPeriod &other );
104
105 QString summary() const;
106 void setSummary( const QString &summary );
107 QString location() const;
108 void setLocation( const QString &location );
109
110 private:
111 //@cond PRIVATE
112 class Private;
113 Private *const d;
114 //@endcond
115};
116
117}
118
119#endif
120