--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarengines/versit2/inc/ICalBase.h Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,705 @@
+#ifndef ICALBASE_H
+#define ICALBASE_H/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Holds the definition of CICalBase.
+*
+*/
+
+
+
+// System includes
+#include <e32base.h> // CBase
+
+// Forward declarations.
+class CICalContentLineReader;
+class CICalContentLineWriter;
+class CICalProperty;
+class CICalComponent;
+class CICalValue;
+
+/**
+Abstract base class of all classes representing iCalendar components.
+@publishedPartner
+*/
+class CICalBase : public CBase
+ {
+public: // Enumeration.
+ enum TICalComponentType
+ {
+ /** An invalid or X-custom component. */
+ EICalInvalid,
+ /** A VCALENDAR component.*/
+ EICalCalendar,
+ /** A VEVENT component.*/
+ EICalEvent,
+ /** A VTODO component.*/
+ EICalTodo,
+ /** A VJOURNAL component.*/
+ EICalJournal,
+ /** A VALARM component.*/
+ EICalAlarm,
+ /** A VFREEBUSY component.*/
+ EICalFreeBusy,
+ /** A VTIMEZONE component.*/
+ EICalTimeZone,
+ /** A STANDARD component.*/
+ EICalStandard,
+ /** A DAYLIGHT component.*/
+ EICalDaylight
+ };
+public: // Enumeration.
+ enum TICalMethod
+ {
+ /** No method specified. */
+ EMethodNone,
+ /** The RFC2445-defined method value 'Publish'. */
+ EMethodPublish,
+ /** The RFC2445-defined method value 'Request'. */
+ EMethodRequest,
+ /** The RFC2445-defined method value 'Reply'. */
+ EMethodReply,
+ /** The RFC2445-defined method value 'Add'. */
+ EMethodAdd,
+ /** The RFC2445-defined method value 'Cancel'. */
+ EMethodCancel,
+ /** The RFC2445-defined method value 'Refresh'. */
+ EMethodRefresh,
+ /** The RFC2445-defined method value 'Counter'. */
+ EMethodCounter,
+ /** The RFC2445-defined method value 'DeclineCounter'. */
+ EMethodDeclineCounter
+ };
+protected:
+ enum TICalComponentMethodBitMasks
+ {
+ EMaskEventNone = 1 << 0,
+ EMaskEventPublish = 1 << 1,
+ EMaskEventRequest = 1 << 2,
+ EMaskEventReply = 1 << 3,
+ EMaskEventAdd = 1 << 4,
+ EMaskEventCancel = 1 << 5,
+ EMaskEventRefresh = 1 << 6,
+ EMaskEventCounter = 1 << 7,
+ EMaskEventDeclineCounter = 1 << 8,
+ EMaskTodoNone = 1 << 9,
+ EMaskTodoPublish = 1 << 10,
+ EMaskTodoRequest = 1 << 11,
+ EMaskTodoReply = 1 << 12,
+ EMaskTodoAdd = 1 << 13,
+ EMaskTodoCancel = 1 << 14,
+ EMaskTodoRefresh = 1 << 15,
+ EMaskTodoCounter = 1 << 16,
+ EMaskTodoDeclineCounter = 1 << 17,
+ EMaskJournalNone = 1 << 18,
+ EMaskJournalPublish = 1 << 19,
+ EMaskJournalAdd = 1 << 20,
+ EMaskJournalCancel = 1 << 21,
+ EMaskFreeBusyNone = 1 << 22,
+ EMaskFreeBusyPublish = 1 << 23,
+ EMaskFreeBusyRequest = 1 << 24,
+ EMaskFreeBusyReply = 1 << 25,
+ EMaskAlarmAny = 1 << 26,
+ EMaskTimezoneAny = 1 << 27,
+ EMaskTimezoneIntervalAny = 1 << 28
+ };
+ enum TICalComponentMethodFlags
+ {
+ EICalAttendeeFlags = EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventRefresh |
+ EMaskEventCounter |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoRefresh |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalCancel |
+ EMaskFreeBusyRequest |
+ EMaskFreeBusyReply,
+
+ EICalDtStampFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventRefresh |
+ EMaskEventCounter |
+ EMaskEventDeclineCounter|
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoRefresh |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel |
+ EMaskFreeBusyPublish |
+ EMaskFreeBusyRequest |
+ EMaskFreeBusyReply,
+
+ EICalDtStartFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel |
+ EMaskFreeBusyPublish |
+ EMaskFreeBusyRequest |
+ EMaskFreeBusyReply,
+
+ EICalOrganizerFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventRefresh |
+ EMaskEventCounter |
+ EMaskEventDeclineCounter|
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel |
+ EMaskFreeBusyPublish |
+ EMaskFreeBusyRequest |
+ EMaskFreeBusyReply,
+
+ EICalSummaryFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCounter |
+ EMaskTodoCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalUIDFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventRefresh |
+ EMaskEventCounter |
+ EMaskEventDeclineCounter|
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoRefresh |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel |
+ EMaskFreeBusyRequest |
+ EMaskFreeBusyReply,
+
+ EICalRecurrenceIdFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventCancel |
+ EMaskEventRefresh |
+ EMaskEventCounter |
+ EMaskEventDeclineCounter|
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoCancel |
+ EMaskTodoRefresh |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalCancel,
+
+ EICalSequenceFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskEventDeclineCounter|
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalAttachFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalCategoriesFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalClassFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalCommentFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventRefresh |
+ EMaskEventCounter |
+ EMaskEventDeclineCounter|
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel |
+ EMaskFreeBusyPublish |
+ EMaskFreeBusyRequest |
+ EMaskFreeBusyReply,
+
+ EICalContactFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel |
+ EMaskFreeBusyPublish |
+ EMaskFreeBusyRequest |
+ EMaskFreeBusyReply,
+
+ EICalCreatedFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalDescriptionFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalDtEndFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskFreeBusyPublish |
+ EMaskFreeBusyRequest |
+ EMaskFreeBusyReply,
+
+ EICalFreeBusyFlags = EMaskFreeBusyPublish |
+ EMaskFreeBusyReply,
+
+ EICalDueFlags = EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter,
+
+ EICalDurationFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter,
+
+ EICalExDateFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalExRuleFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalGeoFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter,
+
+ EICalLastModifiedFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalLocationFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter,
+
+ EICalPercentCompleteFlags = EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter,
+
+ EICalPriorityFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoPublish |
+ EMaskTodoDeclineCounter,
+
+ EICalRDateFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalRelatedToFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalRequestStatusFlags = EMaskEventRequest |
+ EMaskEventCounter |
+ EMaskEventDeclineCounter|
+ EMaskTodoReply |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskFreeBusyReply,
+
+ EICalResourcesFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter,
+
+ EICalRRuleFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalStatusFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel,
+
+ EICalTranspFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter,
+
+ EICalUrlFlags = EMaskEventPublish |
+ EMaskEventRequest |
+ EMaskEventReply |
+ EMaskEventAdd |
+ EMaskEventCancel |
+ EMaskEventCounter |
+ EMaskTodoPublish |
+ EMaskTodoRequest |
+ EMaskTodoReply |
+ EMaskTodoAdd |
+ EMaskTodoCancel |
+ EMaskTodoCounter |
+ EMaskTodoDeclineCounter |
+ EMaskJournalPublish |
+ EMaskJournalAdd |
+ EMaskJournalCancel |
+ EMaskFreeBusyPublish |
+ EMaskFreeBusyReply,
+
+
+
+
+ // EICalClassFlags = 0b00000001111010111111010111111,
+
+
+
+ };
+public: // Destruction.
+ ~CICalBase();
+
+public: // Methods.
+ IMPORT_C CICalProperty& AddPropertyL(const TDesC& aName, const TDesC& aValue);
+ IMPORT_C CICalProperty& AddPropertyL(const TDesC& aName, CICalValue* aValue);
+ IMPORT_C CICalComponent& AddComponentL(TICalComponentType aType);
+
+ IMPORT_C const RPointerArray<CICalComponent>& Components() const;
+ IMPORT_C const RPointerArray<CICalProperty>& Properties() const;
+
+ IMPORT_C const TDesC& TypeStringL() const;
+ IMPORT_C TICalComponentType Type() const;
+
+ IMPORT_C TBool ComponentExists(TICalComponentType aType) const;
+ IMPORT_C const CICalProperty* FindProperty(const TDesC& aName) const;
+
+ void InternalizeL(CICalContentLineReader& aReader);
+ void ExternalizeL(CICalContentLineWriter& aWriter) const;
+
+ static TICalComponentType TypeFromNameL(const TDesC& aName);
+
+protected: // Construction.
+ CICalBase();
+
+protected: // Methods.
+ const TDesC& TypeStringL(TICalComponentType aType) const;
+ virtual TBool ValidatePropertyImpl(const TDesC& aName) const = 0;
+ TBool ValidateProperty(const TDesC& aName) const;
+ virtual TBool ValidateComponent(TICalComponentType aType) const = 0;
+
+private: // Methods.
+ CICalComponent* CreateComponentL(TICalComponentType aType);
+ CICalProperty* CreatePropertyL(const TDesC& aName);
+
+protected: // Attributes.
+ RPointerArray<CICalComponent> iComponents;
+ RPointerArray<CICalProperty> iProperties;
+
+ TICalComponentType iComponentType;
+ TICalMethod iMethod;
+ TUint32 iComponentMethodBitMask;
+ };
+
+#endif // ICALBASE_H
+
+// End of File