summaryrefslogtreecommitdiff
path: root/src/containers/kolabevent.h
blob: d4179cd2e6e82ec49b3ecff6e3b9c401b120df15 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
 * Copyright (C) 2011  Christian Mollekopf <mollekopf@kolabsys.com>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef KOLAB_EVENT_H
#define KOLAB_EVENT_H

#include <string>
#include <vector>
#include <boost/scoped_ptr.hpp>
#include "kolabcontainers.h"
namespace Kolab {

class Event {
public:
    Event();
    ~Event();
    Event(const Event &);
    void operator=(const Event &);
    
    bool isValid() const;
    
    void setUid(const std::string &);
    std::string uid() const;
    
    void setCreated(const cDateTime &);
    cDateTime created() const;
    
    void setLastModified(const cDateTime &);
    cDateTime lastModified() const;
    
    void setSequence(int);
    int sequence() const;
    
    void setClassification(Classification);
    Classification classification() const;

    void setCategories(const std::vector<std::string> &);
    void addCategory(const std::string &);
    std::vector<std::string> categories() const;
    
    void setStart(const cDateTime &);
    cDateTime start() const;
    
    void setEnd(const cDateTime &);
    cDateTime end() const;
    
    void setDuration(const Duration &);
    Duration duration() const;
    
    void setTransparency(bool isTransparent);
    bool transparency() const;
    
    void setRecurrenceRule(const RecurrenceRule &);
    RecurrenceRule recurrenceRule() const;
    
    void setRecurrenceDates(const std::vector<cDateTime> &);
    void addRecurrenceDate(const cDateTime &);
    std::vector<cDateTime> recurrenceDates() const;
    
    void setExceptionDates(const std::vector<cDateTime> &);
    void addExceptionDate(const cDateTime &);
    std::vector<cDateTime> exceptionDates() const;
    
    void setRecurrenceID(const cDateTime &, bool thisandfuture);
    cDateTime recurrenceID() const;
    bool thisAndFuture() const;
    
    void setSummary(const std::string &);
    std::string summary() const;
    
    void setDescription(const std::string &);
    std::string description() const;
    
    void setComment(const std::string &);
    std::string comment() const;
    
    void setPriority(int);
    int priority() const;
    
    void setStatus(Status);
    Status status() const;
    
    void setLocation(const std::string &);
    std::string location() const;
    
    void setOrganizer(const ContactReference &);
    ContactReference organizer() const;
    
    void setAttendees(const std::vector<Attendee> &);
    std::vector<Attendee> attendees() const;
    
    void setAttachments(const std::vector<Attachment> &);
    std::vector<Attachment> attachments() const;
    
    void setUrl(const std::string &);
    std::string url() const;
    
    void setCustomProperties(const std::vector<CustomProperty> &);
    std::vector<CustomProperty> customProperties() const;
    
    void setExceptions(const std::vector<Event> &);
    std::vector<Event> exceptions() const;
    
    void setAlarms(const std::vector<Alarm> &);
    std::vector<Alarm> alarms() const;

protected:
    struct Private;
    boost::scoped_ptr<Private> d;
};


}

#endif