attendee.h
Go to the documentation of this file.
00001 /* 00002 This file is part of the kcalcore library. 00003 00004 Copyright (c) 2001-2003 Cornelius Schumacher <schumacher@kde.org> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License as published by the Free Software Foundation; either 00009 version 2 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Library General Public License for more details. 00015 00016 You should have received a copy of the GNU Library General Public License 00017 along with this library; see the file COPYING.LIB. If not, write to 00018 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00019 Boston, MA 02110-1301, USA. 00020 */ 00029 #ifndef KCALCORE_ATTENDEE_H 00030 #define KCALCORE_ATTENDEE_H 00031 00032 #include <QtCore/QMetaType> 00033 00034 #include "kcalcore_export.h" 00035 #include "customproperties.h" 00036 #include "person.h" 00037 00038 namespace KCalCore { 00039 00057 class KCALCORE_EXPORT Attendee : private Person 00058 { 00059 public: 00060 using Person::setEmail; 00061 using Person::email; 00062 using Person::setName; 00063 using Person::name; 00064 using Person::fullName; 00065 00070 enum PartStat { 00071 NeedsAction, 00072 Accepted, 00073 Declined, 00074 Tentative, 00075 Delegated, 00076 Completed, 00077 InProcess, 00078 None 00079 }; 00080 00084 enum Role { 00085 ReqParticipant, 00086 OptParticipant, 00087 NonParticipant, 00088 Chair 00089 }; 00090 00094 typedef QSharedPointer<Attendee> Ptr; 00095 00099 typedef QVector<Ptr> List; 00100 00113 Attendee( const QString &name, const QString &email, 00114 bool rsvp = false, PartStat status = None, 00115 Role role = ReqParticipant, const QString &uid = QString() ); 00116 00122 Attendee( const Attendee &attendee ); 00123 00127 ~Attendee(); 00128 00136 void setRole( Role role ); 00137 00143 Role role() const; 00144 00152 void setUid ( const QString &uid ); 00153 00159 QString uid() const; 00160 00168 void setStatus( PartStat status ); 00169 00175 PartStat status() const; 00176 00185 void setRSVP( bool rsvp ); 00186 00192 bool RSVP() const; 00193 00199 bool operator==( const Attendee &attendee ) const; 00200 00206 bool operator!=( const Attendee &attendee ) const; 00207 00214 void setDelegate( const QString &delegate ); 00215 00220 QString delegate() const; 00221 00228 void setDelegator( const QString &delegator ); 00229 00234 QString delegator() const; 00235 00241 void setCustomProperty( const QByteArray &xname, const QString &xvalue ); 00242 00246 CustomProperties &customProperties(); 00247 00251 const CustomProperties &customProperties() const; 00252 00258 Attendee &operator=( const Attendee &attendee ); 00259 00260 private: 00261 //@cond PRIVATE 00262 class Private; 00263 Private *const d; 00264 //@endcond 00265 00266 friend KCALCORE_EXPORT QDataStream &operator<<( QDataStream &s, 00267 const KCalCore::Attendee::Ptr &attendee ); 00268 friend KCALCORE_EXPORT QDataStream &operator>>( QDataStream &s, 00269 KCalCore::Attendee::Ptr &attendee ); 00270 }; 00271 00277 KCALCORE_EXPORT QDataStream &operator<<( QDataStream &stream, 00278 const KCalCore::Attendee::Ptr &attendee ); 00279 00285 KCALCORE_EXPORT QDataStream &operator>>( QDataStream &stream, KCalCore::Attendee::Ptr &attendee ); 00286 } 00287 00288 //@cond PRIVATE 00289 Q_DECLARE_TYPEINFO( KCalCore::Attendee::Ptr, Q_MOVABLE_TYPE ); 00290 Q_DECLARE_METATYPE( KCalCore::Attendee::Ptr ) 00291 //@endcond 00292 00293 #endif