calendarengines/versit2/inc/ICalBase.h
changeset 0 f979ecb2b13e
equal deleted inserted replaced
-1:000000000000 0:f979ecb2b13e
       
     1 #ifndef ICALBASE_H
       
     2 #define ICALBASE_H/*
       
     3 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
       
     4 * All rights reserved.
       
     5 * This component and the accompanying materials are made available
       
     6 * under the terms of "Eclipse Public License v1.0"
       
     7 * which accompanies this distribution, and is available
       
     8 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     9 *
       
    10 * Initial Contributors:
       
    11 * Nokia Corporation - initial contribution.
       
    12 *
       
    13 * Contributors:
       
    14 *
       
    15 * Description:   Holds the definition of CICalBase.
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 
       
    21 // System includes
       
    22 #include <e32base.h>	// CBase
       
    23 
       
    24 // Forward declarations.
       
    25 class CICalContentLineReader;
       
    26 class CICalContentLineWriter;
       
    27 class CICalProperty;
       
    28 class CICalComponent;
       
    29 class CICalValue;
       
    30 
       
    31 /**
       
    32 Abstract base class of all classes representing iCalendar components.
       
    33 @publishedPartner
       
    34 */
       
    35 class CICalBase : public CBase
       
    36 	{
       
    37 public:	// Enumeration.
       
    38 	enum TICalComponentType
       
    39 		{
       
    40 		/** An invalid or X-custom component. */
       
    41 		EICalInvalid,
       
    42 		/** A VCALENDAR component.*/
       
    43 		EICalCalendar,
       
    44 		/** A VEVENT component.*/
       
    45 		EICalEvent,
       
    46 		/** A VTODO component.*/
       
    47 		EICalTodo,
       
    48 		/** A VJOURNAL component.*/
       
    49 		EICalJournal,
       
    50 		/** A VALARM component.*/
       
    51 		EICalAlarm,
       
    52 		/** A VFREEBUSY component.*/
       
    53 		EICalFreeBusy,
       
    54 		/** A VTIMEZONE component.*/
       
    55 		EICalTimeZone,
       
    56 		/** A STANDARD component.*/
       
    57 		EICalStandard,
       
    58 		/** A DAYLIGHT component.*/
       
    59 		EICalDaylight
       
    60 		};
       
    61 public: // Enumeration.
       
    62 	enum TICalMethod
       
    63 		{
       
    64 		/** No method specified. */
       
    65 		EMethodNone,
       
    66 		/** The RFC2445-defined method value 'Publish'. */
       
    67 		EMethodPublish,
       
    68 		/** The RFC2445-defined method value 'Request'. */
       
    69 		EMethodRequest,
       
    70 		/** The RFC2445-defined method value 'Reply'. */
       
    71 		EMethodReply, 
       
    72 		/** The RFC2445-defined method value 'Add'. */
       
    73 		EMethodAdd,
       
    74 		/** The RFC2445-defined method value 'Cancel'. */
       
    75 		EMethodCancel,
       
    76 		/** The RFC2445-defined method value 'Refresh'. */
       
    77 		EMethodRefresh,
       
    78 		/** The RFC2445-defined method value 'Counter'. */
       
    79 		EMethodCounter,
       
    80 		/** The RFC2445-defined method value 'DeclineCounter'. */
       
    81 		EMethodDeclineCounter
       
    82 		};
       
    83 protected:
       
    84 	enum TICalComponentMethodBitMasks
       
    85 		{
       
    86 		EMaskEventNone				= 1 << 0,
       
    87 		EMaskEventPublish			= 1 << 1,
       
    88 		EMaskEventRequest			= 1 << 2,
       
    89 		EMaskEventReply				= 1 << 3,
       
    90 		EMaskEventAdd				= 1 << 4,
       
    91 		EMaskEventCancel			= 1 << 5,
       
    92 		EMaskEventRefresh			= 1 << 6,
       
    93 		EMaskEventCounter			= 1 << 7,
       
    94 		EMaskEventDeclineCounter	= 1 << 8,
       
    95 		EMaskTodoNone				= 1 << 9,
       
    96 		EMaskTodoPublish			= 1 << 10,
       
    97 		EMaskTodoRequest			= 1 << 11,
       
    98 		EMaskTodoReply				= 1 << 12,
       
    99 		EMaskTodoAdd				= 1 << 13,
       
   100 		EMaskTodoCancel				= 1 << 14,
       
   101 		EMaskTodoRefresh			= 1 << 15,
       
   102 		EMaskTodoCounter			= 1 << 16,
       
   103 		EMaskTodoDeclineCounter		= 1 << 17,
       
   104 		EMaskJournalNone			= 1 << 18,
       
   105 		EMaskJournalPublish			= 1 << 19,
       
   106 		EMaskJournalAdd				= 1 << 20,
       
   107 		EMaskJournalCancel			= 1 << 21,
       
   108 		EMaskFreeBusyNone			= 1 << 22,
       
   109 		EMaskFreeBusyPublish		= 1 << 23,
       
   110 		EMaskFreeBusyRequest		= 1 << 24,
       
   111 		EMaskFreeBusyReply			= 1 << 25,
       
   112 		EMaskAlarmAny				= 1 << 26,
       
   113 		EMaskTimezoneAny			= 1 << 27,
       
   114 		EMaskTimezoneIntervalAny	= 1 << 28
       
   115 		};
       
   116 	enum TICalComponentMethodFlags
       
   117 		{
       
   118 		EICalAttendeeFlags =		EMaskEventRequest		|
       
   119 									EMaskEventReply			|
       
   120 									EMaskEventAdd			|
       
   121 									EMaskEventCancel		|
       
   122 									EMaskEventRefresh		|
       
   123 									EMaskEventCounter		|
       
   124 									EMaskTodoRequest		|
       
   125 									EMaskTodoReply			|
       
   126 									EMaskTodoAdd			|
       
   127 									EMaskTodoCancel			|
       
   128 									EMaskTodoRefresh		|
       
   129 									EMaskTodoCounter		|
       
   130 									EMaskTodoDeclineCounter	|
       
   131 									EMaskJournalCancel		|
       
   132 									EMaskFreeBusyRequest	|
       
   133 									EMaskFreeBusyReply,
       
   134 		
       
   135 		EICalDtStampFlags =			EMaskEventPublish		|
       
   136 									EMaskEventRequest		|
       
   137 									EMaskEventReply			|
       
   138 									EMaskEventAdd			|
       
   139 									EMaskEventCancel		|
       
   140 									EMaskEventRefresh		|
       
   141 									EMaskEventCounter		|
       
   142 									EMaskEventDeclineCounter|
       
   143 									EMaskTodoPublish		|
       
   144 									EMaskTodoRequest		|
       
   145 									EMaskTodoReply			|
       
   146 									EMaskTodoAdd			|
       
   147 									EMaskTodoCancel			|
       
   148 									EMaskTodoRefresh		|
       
   149 									EMaskTodoCounter		|
       
   150 									EMaskTodoDeclineCounter	|
       
   151 									EMaskJournalPublish		|
       
   152 									EMaskJournalAdd			|
       
   153 									EMaskJournalCancel		|
       
   154 									EMaskFreeBusyPublish	|
       
   155 									EMaskFreeBusyRequest	|
       
   156 									EMaskFreeBusyReply,
       
   157 									
       
   158 		EICalDtStartFlags = 		EMaskEventPublish		|
       
   159 									EMaskEventRequest		|
       
   160 									EMaskEventReply			|
       
   161 									EMaskEventAdd			|
       
   162 									EMaskEventCancel		|
       
   163 									EMaskEventCounter		|
       
   164 									EMaskTodoPublish		|
       
   165 									EMaskTodoRequest		|
       
   166 									EMaskTodoReply			|
       
   167 									EMaskTodoAdd			|
       
   168 									EMaskTodoCancel			|
       
   169 									EMaskTodoCounter		|
       
   170 									EMaskTodoDeclineCounter	|
       
   171 									EMaskJournalPublish		|
       
   172 									EMaskJournalAdd			|
       
   173 									EMaskJournalCancel		|
       
   174 									EMaskFreeBusyPublish	|
       
   175 									EMaskFreeBusyRequest	|
       
   176 									EMaskFreeBusyReply,
       
   177 									
       
   178 		EICalOrganizerFlags = 		EMaskEventPublish		|
       
   179 									EMaskEventRequest		|
       
   180 									EMaskEventReply			|
       
   181 									EMaskEventAdd			|
       
   182 									EMaskEventCancel		|
       
   183 									EMaskEventRefresh		|
       
   184 									EMaskEventCounter		|
       
   185 									EMaskEventDeclineCounter|
       
   186 									EMaskTodoPublish		|
       
   187 									EMaskTodoRequest		|
       
   188 									EMaskTodoReply			|
       
   189 									EMaskTodoAdd			|
       
   190 									EMaskTodoCancel			|
       
   191 									EMaskTodoCounter		|
       
   192 									EMaskTodoDeclineCounter	|
       
   193 									EMaskJournalPublish		|
       
   194 									EMaskJournalAdd			|
       
   195 									EMaskJournalCancel		|
       
   196 									EMaskFreeBusyPublish	|
       
   197 									EMaskFreeBusyRequest	|
       
   198 									EMaskFreeBusyReply,
       
   199 									
       
   200 		EICalSummaryFlags =			EMaskEventPublish		|
       
   201 									EMaskEventRequest		|
       
   202 									EMaskEventReply			|
       
   203 									EMaskEventAdd			|
       
   204 									EMaskEventCancel		|
       
   205 									EMaskEventCounter		|
       
   206 									EMaskTodoPublish		|
       
   207 									EMaskTodoRequest		|
       
   208 									EMaskTodoReply			|
       
   209 									EMaskTodoAdd			|
       
   210 									EMaskTodoCounter		|
       
   211 									EMaskTodoCounter		|
       
   212 									EMaskJournalPublish		|
       
   213 									EMaskJournalAdd			|
       
   214 									EMaskJournalCancel,
       
   215 									
       
   216 		EICalUIDFlags = 			EMaskEventPublish		|
       
   217 									EMaskEventRequest		|
       
   218 									EMaskEventReply			|
       
   219 									EMaskEventAdd			|
       
   220 									EMaskEventCancel		|
       
   221 									EMaskEventRefresh		|
       
   222 									EMaskEventCounter		|
       
   223 									EMaskEventDeclineCounter|
       
   224 									EMaskTodoPublish		|
       
   225 									EMaskTodoRequest		|
       
   226 									EMaskTodoReply			|
       
   227 									EMaskTodoAdd			|
       
   228 									EMaskTodoCancel			|
       
   229 									EMaskTodoRefresh		|
       
   230 									EMaskTodoCounter		|
       
   231 									EMaskTodoDeclineCounter	|
       
   232 									EMaskJournalPublish		|
       
   233 									EMaskJournalAdd			|
       
   234 									EMaskJournalCancel		|
       
   235 									EMaskFreeBusyRequest	|
       
   236 									EMaskFreeBusyReply,
       
   237 									
       
   238 		EICalRecurrenceIdFlags = 	EMaskEventPublish		|
       
   239 									EMaskEventRequest		|
       
   240 									EMaskEventReply			|
       
   241 									EMaskEventCancel		|
       
   242 									EMaskEventRefresh		|
       
   243 									EMaskEventCounter		|
       
   244 									EMaskEventDeclineCounter|
       
   245 									EMaskTodoPublish		|
       
   246 									EMaskTodoRequest		|
       
   247 									EMaskTodoReply			|
       
   248 									EMaskTodoCancel			|
       
   249 									EMaskTodoRefresh		|
       
   250 									EMaskTodoCounter		|
       
   251 									EMaskTodoDeclineCounter	|
       
   252 									EMaskJournalPublish		|
       
   253 									EMaskJournalCancel,
       
   254 		
       
   255 		EICalSequenceFlags =		EMaskEventPublish		|
       
   256 									EMaskEventRequest		|
       
   257 									EMaskEventReply			|
       
   258 									EMaskEventAdd			|
       
   259 									EMaskEventCancel		|
       
   260 									EMaskEventCounter		|
       
   261 									EMaskEventDeclineCounter|
       
   262 									EMaskTodoPublish		|
       
   263 									EMaskTodoRequest		|
       
   264 									EMaskTodoReply			|
       
   265 									EMaskTodoAdd			|
       
   266 									EMaskTodoCancel			|
       
   267 									EMaskTodoCounter		|
       
   268 									EMaskTodoDeclineCounter	|
       
   269 									EMaskJournalPublish		|
       
   270 									EMaskJournalAdd			|
       
   271 									EMaskJournalCancel,
       
   272 									
       
   273 		EICalAttachFlags =			EMaskEventPublish		|
       
   274 									EMaskEventRequest		|
       
   275 									EMaskEventReply			|
       
   276 									EMaskEventAdd			|
       
   277 									EMaskEventCancel		|
       
   278 									EMaskEventCounter		|
       
   279 									EMaskTodoPublish		|
       
   280 									EMaskTodoRequest		|
       
   281 									EMaskTodoReply			|
       
   282 									EMaskTodoAdd			|
       
   283 									EMaskTodoCancel			|
       
   284 									EMaskTodoCounter		|
       
   285 									EMaskTodoDeclineCounter	|
       
   286 									EMaskJournalPublish		|
       
   287 									EMaskJournalAdd			|
       
   288 									EMaskJournalCancel,
       
   289 									
       
   290 		EICalCategoriesFlags = 		EMaskEventPublish		|
       
   291 									EMaskEventRequest		|
       
   292 									EMaskEventReply			|
       
   293 									EMaskEventAdd			|
       
   294 									EMaskEventCancel		|
       
   295 									EMaskEventCounter		|
       
   296 									EMaskTodoPublish		|
       
   297 									EMaskTodoRequest		|
       
   298 									EMaskTodoReply			|
       
   299 									EMaskTodoAdd			|
       
   300 									EMaskTodoCancel			|
       
   301 									EMaskTodoCounter		|
       
   302 									EMaskTodoDeclineCounter	|
       
   303 									EMaskJournalPublish		|
       
   304 									EMaskJournalAdd			|
       
   305 									EMaskJournalCancel,
       
   306 									
       
   307 		EICalClassFlags = 			EMaskEventPublish		|
       
   308 									EMaskEventRequest		|
       
   309 									EMaskEventReply			|
       
   310 									EMaskEventAdd			|
       
   311 									EMaskEventCancel		|
       
   312 									EMaskEventCounter		|
       
   313 									EMaskTodoPublish		|
       
   314 									EMaskTodoRequest		|
       
   315 									EMaskTodoReply			|
       
   316 									EMaskTodoAdd			|
       
   317 									EMaskTodoCancel			|
       
   318 									EMaskTodoCounter		|
       
   319 									EMaskTodoDeclineCounter	|
       
   320 									EMaskJournalPublish		|
       
   321 									EMaskJournalAdd			|
       
   322 									EMaskJournalCancel,
       
   323 									
       
   324 		EICalCommentFlags = 		EMaskEventPublish		|
       
   325 									EMaskEventRequest		|
       
   326 									EMaskEventReply			|
       
   327 									EMaskEventAdd			|
       
   328 									EMaskEventCancel		|
       
   329 									EMaskEventRefresh		|
       
   330 									EMaskEventCounter		|
       
   331 									EMaskEventDeclineCounter|
       
   332 									EMaskTodoPublish		|
       
   333 									EMaskTodoRequest		|
       
   334 									EMaskTodoReply			|
       
   335 									EMaskTodoAdd			|
       
   336 									EMaskTodoCancel			|
       
   337 									EMaskTodoDeclineCounter	|
       
   338 									EMaskJournalPublish		|
       
   339 									EMaskJournalAdd			|
       
   340 									EMaskJournalCancel		|
       
   341 									EMaskFreeBusyPublish	|
       
   342 									EMaskFreeBusyRequest	|
       
   343 									EMaskFreeBusyReply,
       
   344 									
       
   345 		EICalContactFlags = 		EMaskEventPublish		|
       
   346 									EMaskEventRequest		|
       
   347 									EMaskEventReply			|
       
   348 									EMaskEventAdd			|
       
   349 									EMaskEventCancel		|
       
   350 									EMaskEventCounter		|
       
   351 									EMaskTodoPublish		|
       
   352 									EMaskTodoRequest		|
       
   353 									EMaskTodoReply			|
       
   354 									EMaskTodoAdd			|
       
   355 									EMaskTodoCancel			|
       
   356 									EMaskTodoCounter		|
       
   357 									EMaskTodoDeclineCounter	|
       
   358 									EMaskJournalPublish		|
       
   359 									EMaskJournalAdd			|
       
   360 									EMaskJournalCancel		|
       
   361 									EMaskFreeBusyPublish	|
       
   362 									EMaskFreeBusyRequest	|
       
   363 									EMaskFreeBusyReply,
       
   364 									
       
   365 		EICalCreatedFlags = 		EMaskEventPublish		|
       
   366 									EMaskEventRequest		|
       
   367 									EMaskEventReply			|
       
   368 									EMaskEventAdd			|
       
   369 									EMaskEventCancel		|
       
   370 									EMaskEventCounter		|
       
   371 									EMaskTodoPublish		|
       
   372 									EMaskTodoRequest		|
       
   373 									EMaskTodoReply			|
       
   374 									EMaskTodoAdd			|
       
   375 									EMaskTodoCancel			|
       
   376 									EMaskTodoCounter		|
       
   377 									EMaskTodoDeclineCounter	|
       
   378 									EMaskJournalPublish		|
       
   379 									EMaskJournalAdd			|
       
   380 									EMaskJournalCancel,
       
   381 									
       
   382 		EICalDescriptionFlags = 	EMaskEventPublish		|
       
   383 									EMaskEventRequest		|
       
   384 									EMaskEventReply			|
       
   385 									EMaskEventAdd			|
       
   386 									EMaskEventCancel		|
       
   387 									EMaskEventCounter		|
       
   388 									EMaskTodoPublish		|
       
   389 									EMaskTodoRequest		|
       
   390 									EMaskTodoReply			|
       
   391 									EMaskTodoAdd			|
       
   392 									EMaskTodoCancel			|
       
   393 									EMaskTodoCounter		|
       
   394 									EMaskTodoDeclineCounter	|
       
   395 									EMaskJournalPublish		|
       
   396 									EMaskJournalAdd			|
       
   397 									EMaskJournalCancel,
       
   398 									
       
   399 		EICalDtEndFlags = 			EMaskEventPublish		|
       
   400 									EMaskEventRequest		|
       
   401 									EMaskEventReply			|
       
   402 									EMaskEventAdd			|
       
   403 									EMaskEventCancel		|
       
   404 									EMaskEventCounter		|
       
   405 									EMaskFreeBusyPublish	|
       
   406 									EMaskFreeBusyRequest	|
       
   407 									EMaskFreeBusyReply,
       
   408 									
       
   409 		EICalFreeBusyFlags = 		EMaskFreeBusyPublish	|
       
   410 									EMaskFreeBusyReply,
       
   411 									
       
   412 		EICalDueFlags =				EMaskTodoPublish		|
       
   413 									EMaskTodoRequest		|
       
   414 									EMaskTodoReply			|
       
   415 									EMaskTodoAdd			|
       
   416 									EMaskTodoCancel			|
       
   417 									EMaskTodoCounter		|
       
   418 									EMaskTodoDeclineCounter,
       
   419 									
       
   420 		EICalDurationFlags = 		EMaskEventPublish		|
       
   421 									EMaskEventRequest		|
       
   422 									EMaskEventReply			|
       
   423 									EMaskEventAdd			|
       
   424 									EMaskEventCancel		|
       
   425 									EMaskEventCounter		|
       
   426 									EMaskTodoPublish		|
       
   427 									EMaskTodoRequest		|
       
   428 									EMaskTodoReply			|
       
   429 									EMaskTodoAdd			|
       
   430 									EMaskTodoCancel			|
       
   431 									EMaskTodoCounter		|
       
   432 									EMaskTodoDeclineCounter,
       
   433 									
       
   434 		EICalExDateFlags = 			EMaskEventPublish		|
       
   435 									EMaskEventRequest		|
       
   436 									EMaskEventReply			|
       
   437 									EMaskEventAdd			|
       
   438 									EMaskEventCancel		|
       
   439 									EMaskEventCounter		|
       
   440 									EMaskTodoPublish		|
       
   441 									EMaskTodoRequest		|
       
   442 									EMaskTodoReply			|
       
   443 									EMaskTodoAdd			|
       
   444 									EMaskTodoCancel			|
       
   445 									EMaskTodoCounter		|
       
   446 									EMaskTodoDeclineCounter	|
       
   447 									EMaskJournalPublish		|
       
   448 									EMaskJournalAdd			|
       
   449 									EMaskJournalCancel,
       
   450 		
       
   451 		EICalExRuleFlags =			EMaskEventPublish		|
       
   452 									EMaskEventRequest		|
       
   453 									EMaskEventReply			|
       
   454 									EMaskEventAdd			|
       
   455 									EMaskEventCancel		|
       
   456 									EMaskEventCounter		|
       
   457 									EMaskTodoPublish		|
       
   458 									EMaskTodoRequest		|
       
   459 									EMaskTodoReply			|
       
   460 									EMaskTodoAdd			|
       
   461 									EMaskTodoCancel			|
       
   462 									EMaskTodoCounter		|
       
   463 									EMaskTodoDeclineCounter	|
       
   464 									EMaskJournalPublish		|
       
   465 									EMaskJournalAdd			|
       
   466 									EMaskJournalCancel,
       
   467 									
       
   468 		EICalGeoFlags = 			EMaskEventPublish		|
       
   469 									EMaskEventRequest		|
       
   470 									EMaskEventReply			|
       
   471 									EMaskEventAdd			|
       
   472 									EMaskEventCancel		|
       
   473 									EMaskEventCounter		|
       
   474 									EMaskTodoPublish		|
       
   475 									EMaskTodoRequest		|
       
   476 									EMaskTodoReply			|
       
   477 									EMaskTodoAdd			|
       
   478 									EMaskTodoCancel			|
       
   479 									EMaskTodoCounter		|
       
   480 									EMaskTodoDeclineCounter,
       
   481 									
       
   482 		EICalLastModifiedFlags = 	EMaskEventPublish		|
       
   483 									EMaskEventRequest		|
       
   484 									EMaskEventReply			|
       
   485 									EMaskEventAdd			|
       
   486 									EMaskEventCancel		|
       
   487 									EMaskEventCounter		|
       
   488 									EMaskTodoPublish		|
       
   489 									EMaskTodoRequest		|
       
   490 									EMaskTodoReply			|
       
   491 									EMaskTodoAdd			|
       
   492 									EMaskTodoCancel			|
       
   493 									EMaskTodoCounter		|
       
   494 									EMaskTodoDeclineCounter	|
       
   495 									EMaskJournalPublish		|
       
   496 									EMaskJournalAdd			|
       
   497 									EMaskJournalCancel,
       
   498 									
       
   499 		EICalLocationFlags = 		EMaskEventPublish		|
       
   500 									EMaskEventRequest		|
       
   501 									EMaskEventReply			|
       
   502 									EMaskEventAdd			|
       
   503 									EMaskEventCancel		|
       
   504 									EMaskEventCounter		|
       
   505 									EMaskTodoPublish		|
       
   506 									EMaskTodoRequest		|
       
   507 									EMaskTodoReply			|
       
   508 									EMaskTodoAdd			|
       
   509 									EMaskTodoCancel			|
       
   510 									EMaskTodoCounter		|
       
   511 									EMaskTodoDeclineCounter,
       
   512 		
       
   513 		EICalPercentCompleteFlags = EMaskTodoPublish		|
       
   514 									EMaskTodoRequest		|
       
   515 									EMaskTodoReply			|
       
   516 									EMaskTodoAdd			|
       
   517 									EMaskTodoCancel			|
       
   518 									EMaskTodoCounter		|
       
   519 									EMaskTodoDeclineCounter,
       
   520 									
       
   521 		EICalPriorityFlags = 		EMaskEventPublish		|
       
   522 									EMaskEventRequest		|
       
   523 									EMaskEventReply			|
       
   524 									EMaskEventAdd			|
       
   525 									EMaskEventCancel		|
       
   526 									EMaskEventCounter		|
       
   527 									EMaskTodoRequest		|
       
   528 									EMaskTodoReply			|
       
   529 									EMaskTodoAdd			|
       
   530 									EMaskTodoCancel		    |
       
   531 									EMaskTodoPublish        |
       
   532 									EMaskTodoDeclineCounter,
       
   533 									
       
   534 		EICalRDateFlags	= 			EMaskEventPublish		|
       
   535 									EMaskEventRequest		|
       
   536 									EMaskEventReply			|
       
   537 									EMaskEventAdd			|
       
   538 									EMaskEventCancel		|
       
   539 									EMaskEventCounter		|
       
   540 									EMaskTodoPublish		|
       
   541 									EMaskTodoRequest		|
       
   542 									EMaskTodoReply			|
       
   543 									EMaskTodoAdd			|
       
   544 									EMaskTodoCancel			|
       
   545 									EMaskTodoCounter		|
       
   546 									EMaskTodoDeclineCounter	|
       
   547 									EMaskJournalPublish		|
       
   548 									EMaskJournalAdd			|
       
   549 									EMaskJournalCancel,
       
   550 						
       
   551 		EICalRelatedToFlags = 		EMaskEventPublish		|
       
   552 									EMaskEventRequest		|
       
   553 									EMaskEventReply			|
       
   554 									EMaskEventAdd			|
       
   555 									EMaskEventCancel		|
       
   556 									EMaskEventCounter		|
       
   557 									EMaskTodoPublish		|
       
   558 									EMaskTodoRequest		|
       
   559 									EMaskTodoReply			|
       
   560 									EMaskTodoAdd			|
       
   561 									EMaskTodoCancel			|
       
   562 									EMaskTodoCancel			|
       
   563 									EMaskTodoCounter		|
       
   564 									EMaskTodoDeclineCounter	|
       
   565 									EMaskJournalPublish		|
       
   566 									EMaskJournalAdd			|
       
   567 									EMaskJournalCancel,
       
   568 									
       
   569 		EICalRequestStatusFlags = 	EMaskEventRequest		|
       
   570 									EMaskEventCounter		|
       
   571 									EMaskEventDeclineCounter|
       
   572 									EMaskTodoReply			|
       
   573 									EMaskTodoCounter		|
       
   574 									EMaskTodoDeclineCounter	|
       
   575 									EMaskFreeBusyReply,
       
   576 		
       
   577 		EICalResourcesFlags = 		EMaskEventPublish		|
       
   578 									EMaskEventRequest		|
       
   579 									EMaskEventReply			|
       
   580 									EMaskEventAdd			|
       
   581 									EMaskEventCancel		|
       
   582 									EMaskEventCounter		|
       
   583 									EMaskTodoPublish		|
       
   584 									EMaskTodoRequest		|
       
   585 									EMaskTodoReply			|
       
   586 									EMaskTodoAdd			|
       
   587 									EMaskTodoCancel			|
       
   588 									EMaskTodoCounter		|
       
   589 									EMaskTodoDeclineCounter,
       
   590 									
       
   591 		EICalRRuleFlags	= 			EMaskEventPublish		|
       
   592 									EMaskEventRequest		|
       
   593 									EMaskEventReply			|
       
   594 									EMaskEventAdd			|
       
   595 									EMaskEventCancel		|
       
   596 									EMaskEventCounter		|
       
   597 									EMaskTodoPublish		|
       
   598 									EMaskTodoRequest		|
       
   599 									EMaskTodoReply			|
       
   600 									EMaskTodoAdd			|
       
   601 									EMaskTodoCancel			|
       
   602 									EMaskTodoCounter		|
       
   603 									EMaskTodoDeclineCounter	|
       
   604 									EMaskJournalPublish		|
       
   605 									EMaskJournalAdd			|
       
   606 									EMaskJournalCancel,
       
   607 									
       
   608 		EICalStatusFlags = 			EMaskEventPublish		|
       
   609 									EMaskEventRequest		|
       
   610 									EMaskEventReply			|
       
   611 									EMaskEventAdd			|
       
   612 									EMaskEventCancel		|
       
   613 									EMaskEventCounter		|
       
   614 									EMaskTodoPublish		|
       
   615 									EMaskTodoRequest		|
       
   616 									EMaskTodoReply			|
       
   617 									EMaskTodoAdd			|
       
   618 									EMaskTodoCancel			|
       
   619 									EMaskTodoCounter		|
       
   620 									EMaskTodoDeclineCounter	|
       
   621 									EMaskJournalPublish		|
       
   622 									EMaskJournalAdd			|
       
   623 									EMaskJournalCancel,
       
   624 									
       
   625 		EICalTranspFlags = 			EMaskEventPublish		|
       
   626 									EMaskEventRequest		|
       
   627 									EMaskEventReply			|
       
   628 									EMaskEventAdd			|
       
   629 									EMaskEventCancel		|
       
   630 									EMaskEventCounter,
       
   631 									
       
   632 		EICalUrlFlags = 			EMaskEventPublish		|
       
   633 									EMaskEventRequest		|
       
   634 									EMaskEventReply			|
       
   635 									EMaskEventAdd			|
       
   636 									EMaskEventCancel		|
       
   637 									EMaskEventCounter		|
       
   638 									EMaskTodoPublish		|
       
   639 									EMaskTodoRequest		|
       
   640 									EMaskTodoReply			|
       
   641 									EMaskTodoAdd			|
       
   642 									EMaskTodoCancel			|
       
   643 									EMaskTodoCounter		|
       
   644 									EMaskTodoDeclineCounter	|
       
   645 									EMaskJournalPublish		|
       
   646 									EMaskJournalAdd			|
       
   647 									EMaskJournalCancel		|
       
   648 									EMaskFreeBusyPublish	|
       
   649 									EMaskFreeBusyReply,
       
   650 		
       
   651 		
       
   652 		
       
   653 		
       
   654 	//	EICalClassFlags			= 0b00000001111010111111010111111,
       
   655 		
       
   656 
       
   657 		
       
   658 		};
       
   659 public:	// Destruction.
       
   660 	~CICalBase();
       
   661 	
       
   662 public:	// Methods.
       
   663 	IMPORT_C CICalProperty& AddPropertyL(const TDesC& aName, const TDesC& aValue);
       
   664 	IMPORT_C CICalProperty& AddPropertyL(const TDesC& aName, CICalValue* aValue);
       
   665 	IMPORT_C CICalComponent& AddComponentL(TICalComponentType aType);
       
   666 	
       
   667 	IMPORT_C const RPointerArray<CICalComponent>& Components() const;
       
   668 	IMPORT_C const RPointerArray<CICalProperty>& Properties() const;
       
   669 	
       
   670 	IMPORT_C const TDesC& TypeStringL() const;
       
   671 	IMPORT_C TICalComponentType Type() const;
       
   672 	
       
   673 	IMPORT_C TBool ComponentExists(TICalComponentType aType) const;
       
   674 	IMPORT_C const CICalProperty* FindProperty(const TDesC& aName) const;
       
   675 		
       
   676 	void InternalizeL(CICalContentLineReader& aReader);
       
   677 	void ExternalizeL(CICalContentLineWriter& aWriter) const;
       
   678 	
       
   679 	static TICalComponentType TypeFromNameL(const TDesC& aName);
       
   680 
       
   681 protected:	// Construction.
       
   682 	CICalBase();
       
   683 	
       
   684 protected:	// Methods.
       
   685 	const TDesC& TypeStringL(TICalComponentType aType) const;
       
   686 	virtual TBool ValidatePropertyImpl(const TDesC& aName) const = 0;
       
   687 	TBool ValidateProperty(const TDesC& aName) const;	
       
   688 	virtual TBool ValidateComponent(TICalComponentType aType) const = 0;
       
   689 	
       
   690 private:	// Methods.
       
   691 	CICalComponent* CreateComponentL(TICalComponentType aType);
       
   692 	CICalProperty* CreatePropertyL(const TDesC& aName);
       
   693 
       
   694 protected:	// Attributes.
       
   695 	RPointerArray<CICalComponent> iComponents;
       
   696 	RPointerArray<CICalProperty> iProperties;
       
   697 	
       
   698 	TICalComponentType iComponentType;
       
   699 	TICalMethod iMethod;
       
   700 	TUint32 iComponentMethodBitMask;		
       
   701 	};
       
   702 
       
   703 #endif	// ICALBASE_H
       
   704 
       
   705 // End of File