meetingrequest/mrversit2/inc/cesmricalbase.h
changeset 0 8466d47a6819
equal deleted inserted replaced
-1:000000000000 0:8466d47a6819
       
     1 /*
       
     2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Holds the definition of CESMRICalBase.
       
    15 *
       
    16 *
       
    17 */
       
    18 
       
    19 #ifndef CESMRICALBASE_H
       
    20 #define CESMRICALBASE_H
       
    21 
       
    22 // System includes
       
    23 #include <e32base.h>    // CBase
       
    24 
       
    25 // Forward declarations.
       
    26 class CESMRICalContentLineReader;
       
    27 class CESMRICalContentLineWriter;
       
    28 class CESMRICalProperty;
       
    29 class CESMRICalComponent;
       
    30 class CESMRICalValue;
       
    31 
       
    32 /**
       
    33  *Abstract base class of all classes representing iCalendar components.
       
    34  *@publishedPartner
       
    35  */
       
    36 class CESMRICalBase : public CBase
       
    37     {
       
    38 public: // Enumeration.
       
    39     enum TICalComponentType
       
    40         {
       
    41         /** An invalid or X-custom component. */
       
    42         EICalInvalid,
       
    43         /** A VCALENDAR component.*/
       
    44         EICalCalendar,
       
    45         /** A VEVENT component.*/
       
    46         EICalEvent,
       
    47         /** A VTODO component.*/
       
    48         EICalTodo,
       
    49         /** A VJOURNAL component.*/
       
    50         EICalJournal,
       
    51         /** A VALARM component.*/
       
    52         EICalAlarm,
       
    53         /** A VFREEBUSY component.*/
       
    54         EICalFreeBusy,
       
    55         /** A VTIMEZONE component.*/
       
    56         EICalTimeZone,
       
    57         /** A STANDARD component.*/
       
    58         EICalStandard,
       
    59         /** A DAYLIGHT component.*/
       
    60         EICalDaylight
       
    61         };
       
    62 public: // Enumeration.
       
    63     enum TICalMethod
       
    64         {
       
    65         /** No method specified. */
       
    66         EMethodNone,
       
    67         /** The RFC2445-defined method value 'Publish'. */
       
    68         EMethodPublish,
       
    69         /** The RFC2445-defined method value 'Request'. */
       
    70         EMethodRequest,
       
    71         /** The RFC2445-defined method value 'Reply'. */
       
    72         EMethodReply,
       
    73         /** The RFC2445-defined method value 'Add'. */
       
    74         EMethodAdd,
       
    75         /** The RFC2445-defined method value 'Cancel'. */
       
    76         EMethodCancel,
       
    77         /** The RFC2445-defined method value 'Refresh'. */
       
    78         EMethodRefresh,
       
    79         /** The RFC2445-defined method value 'Counter'. */
       
    80         EMethodCounter,
       
    81         /** The RFC2445-defined method value 'DeclineCounter'. */
       
    82         EMethodDeclineCounter
       
    83         };
       
    84 protected:
       
    85     enum TICalComponentMethodBitMasks
       
    86         {
       
    87         EMaskEventNone              = 1 << 0,
       
    88         EMaskEventPublish           = 1 << 1,
       
    89         EMaskEventRequest           = 1 << 2,
       
    90         EMaskEventReply             = 1 << 3,
       
    91         EMaskEventAdd               = 1 << 4,
       
    92         EMaskEventCancel            = 1 << 5,
       
    93         EMaskEventRefresh           = 1 << 6,
       
    94         EMaskEventCounter           = 1 << 7,
       
    95         EMaskEventDeclineCounter    = 1 << 8,
       
    96         EMaskTodoNone               = 1 << 9,
       
    97         EMaskTodoPublish            = 1 << 10,
       
    98         EMaskTodoRequest            = 1 << 11,
       
    99         EMaskTodoReply              = 1 << 12,
       
   100         EMaskTodoAdd                = 1 << 13,
       
   101         EMaskTodoCancel             = 1 << 14,
       
   102         EMaskTodoRefresh            = 1 << 15,
       
   103         EMaskTodoCounter            = 1 << 16,
       
   104         EMaskTodoDeclineCounter     = 1 << 17,
       
   105         EMaskJournalNone            = 1 << 18,
       
   106         EMaskJournalPublish         = 1 << 19,
       
   107         EMaskJournalAdd             = 1 << 20,
       
   108         EMaskJournalCancel          = 1 << 21,
       
   109         EMaskFreeBusyNone           = 1 << 22,
       
   110         EMaskFreeBusyPublish        = 1 << 23,
       
   111         EMaskFreeBusyRequest        = 1 << 24,
       
   112         EMaskFreeBusyReply          = 1 << 25,
       
   113         EMaskAlarmAny               = 1 << 26,
       
   114         EMaskTimezoneAny            = 1 << 27,
       
   115         EMaskTimezoneIntervalAny    = 1 << 28
       
   116         };
       
   117     enum TICalComponentMethodFlags
       
   118         {
       
   119         EICalAttendeeFlags =        EMaskEventRequest       |
       
   120                                     EMaskEventReply         |
       
   121                                     EMaskEventAdd           |
       
   122                                     EMaskEventCancel        |
       
   123                                     EMaskEventRefresh       |
       
   124                                     EMaskEventCounter       |
       
   125                                     EMaskTodoRequest        |
       
   126                                     EMaskTodoReply          |
       
   127                                     EMaskTodoAdd            |
       
   128                                     EMaskTodoCancel         |
       
   129                                     EMaskTodoRefresh        |
       
   130                                     EMaskTodoCounter        |
       
   131                                     EMaskTodoDeclineCounter |
       
   132                                     EMaskJournalCancel      |
       
   133                                     EMaskFreeBusyRequest    |
       
   134                                     EMaskFreeBusyReply,
       
   135 
       
   136         EICalDtStampFlags =         EMaskEventPublish       |
       
   137                                     EMaskEventRequest       |
       
   138                                     EMaskEventReply         |
       
   139                                     EMaskEventAdd           |
       
   140                                     EMaskEventCancel        |
       
   141                                     EMaskEventRefresh       |
       
   142                                     EMaskEventCounter       |
       
   143                                     EMaskEventDeclineCounter|
       
   144                                     EMaskTodoPublish        |
       
   145                                     EMaskTodoRequest        |
       
   146                                     EMaskTodoReply          |
       
   147                                     EMaskTodoAdd            |
       
   148                                     EMaskTodoCancel         |
       
   149                                     EMaskTodoRefresh        |
       
   150                                     EMaskTodoCounter        |
       
   151                                     EMaskTodoDeclineCounter |
       
   152                                     EMaskJournalPublish     |
       
   153                                     EMaskJournalAdd         |
       
   154                                     EMaskJournalCancel      |
       
   155                                     EMaskFreeBusyPublish    |
       
   156                                     EMaskFreeBusyRequest    |
       
   157                                     EMaskFreeBusyReply,
       
   158 
       
   159         EICalDtStartFlags =         EMaskEventPublish       |
       
   160                                     EMaskEventRequest       |
       
   161                                     EMaskEventReply         |
       
   162                                     EMaskEventAdd           |
       
   163                                     EMaskEventCancel        |
       
   164                                     EMaskEventCounter       |
       
   165                                     EMaskTodoPublish        |
       
   166                                     EMaskTodoRequest        |
       
   167                                     EMaskTodoReply          |
       
   168                                     EMaskTodoAdd            |
       
   169                                     EMaskTodoCancel         |
       
   170                                     EMaskTodoCounter        |
       
   171                                     EMaskTodoDeclineCounter |
       
   172                                     EMaskJournalPublish     |
       
   173                                     EMaskJournalAdd         |
       
   174                                     EMaskJournalCancel      |
       
   175                                     EMaskFreeBusyPublish    |
       
   176                                     EMaskFreeBusyRequest    |
       
   177                                     EMaskFreeBusyReply,
       
   178 
       
   179         EICalOrganizerFlags =       EMaskEventPublish       |
       
   180                                     EMaskEventRequest       |
       
   181                                     EMaskEventReply         |
       
   182                                     EMaskEventAdd           |
       
   183                                     EMaskEventCancel        |
       
   184                                     EMaskEventRefresh       |
       
   185                                     EMaskEventCounter       |
       
   186                                     EMaskEventDeclineCounter|
       
   187                                     EMaskTodoPublish        |
       
   188                                     EMaskTodoRequest        |
       
   189                                     EMaskTodoReply          |
       
   190                                     EMaskTodoAdd            |
       
   191                                     EMaskTodoCancel         |
       
   192                                     EMaskTodoCounter        |
       
   193                                     EMaskTodoDeclineCounter |
       
   194                                     EMaskJournalPublish     |
       
   195                                     EMaskJournalAdd         |
       
   196                                     EMaskJournalCancel      |
       
   197                                     EMaskFreeBusyPublish    |
       
   198                                     EMaskFreeBusyRequest    |
       
   199                                     EMaskFreeBusyReply,
       
   200 
       
   201         EICalSummaryFlags =         EMaskEventPublish       |
       
   202                                     EMaskEventRequest       |
       
   203                                     EMaskEventReply         |
       
   204                                     EMaskEventAdd           |
       
   205                                     EMaskEventCancel        |
       
   206                                     EMaskEventCounter       |
       
   207                                     EMaskTodoPublish        |
       
   208                                     EMaskTodoRequest        |
       
   209                                     EMaskTodoReply          |
       
   210                                     EMaskTodoAdd            |
       
   211                                     EMaskTodoCounter        |
       
   212                                     EMaskTodoCounter        |
       
   213                                     EMaskJournalPublish     |
       
   214                                     EMaskJournalAdd         |
       
   215                                     EMaskJournalCancel,
       
   216 
       
   217         EICalUIDFlags =             EMaskEventPublish       |
       
   218                                     EMaskEventRequest       |
       
   219                                     EMaskEventReply         |
       
   220                                     EMaskEventAdd           |
       
   221                                     EMaskEventCancel        |
       
   222                                     EMaskEventRefresh       |
       
   223                                     EMaskEventCounter       |
       
   224                                     EMaskEventDeclineCounter|
       
   225                                     EMaskTodoPublish        |
       
   226                                     EMaskTodoRequest        |
       
   227                                     EMaskTodoReply          |
       
   228                                     EMaskTodoAdd            |
       
   229                                     EMaskTodoCancel         |
       
   230                                     EMaskTodoRefresh        |
       
   231                                     EMaskTodoCounter        |
       
   232                                     EMaskTodoDeclineCounter |
       
   233                                     EMaskJournalPublish     |
       
   234                                     EMaskJournalAdd         |
       
   235                                     EMaskJournalCancel      |
       
   236                                     EMaskFreeBusyRequest    |
       
   237                                     EMaskFreeBusyReply,
       
   238 
       
   239         EICalRecurrenceIdFlags =    EMaskEventPublish       |
       
   240                                     EMaskEventRequest       |
       
   241                                     EMaskEventReply         |
       
   242                                     EMaskEventCancel        |
       
   243                                     EMaskEventRefresh       |
       
   244                                     EMaskEventCounter       |
       
   245                                     EMaskEventDeclineCounter|
       
   246                                     EMaskTodoPublish        |
       
   247                                     EMaskTodoRequest        |
       
   248                                     EMaskTodoReply          |
       
   249                                     EMaskTodoCancel         |
       
   250                                     EMaskTodoRefresh        |
       
   251                                     EMaskTodoCounter        |
       
   252                                     EMaskTodoDeclineCounter |
       
   253                                     EMaskJournalPublish     |
       
   254                                     EMaskJournalCancel,
       
   255 
       
   256         EICalSequenceFlags =        EMaskEventPublish       |
       
   257                                     EMaskEventRequest       |
       
   258                                     EMaskEventReply         |
       
   259                                     EMaskEventAdd           |
       
   260                                     EMaskEventCancel        |
       
   261                                     EMaskEventCounter       |
       
   262                                     EMaskEventDeclineCounter|
       
   263                                     EMaskTodoPublish        |
       
   264                                     EMaskTodoRequest        |
       
   265                                     EMaskTodoReply          |
       
   266                                     EMaskTodoAdd            |
       
   267                                     EMaskTodoCancel         |
       
   268                                     EMaskTodoCounter        |
       
   269                                     EMaskTodoDeclineCounter |
       
   270                                     EMaskJournalPublish     |
       
   271                                     EMaskJournalAdd         |
       
   272                                     EMaskJournalCancel,
       
   273 
       
   274         EICalAttachFlags =          EMaskEventPublish       |
       
   275                                     EMaskEventRequest       |
       
   276                                     EMaskEventReply         |
       
   277                                     EMaskEventAdd           |
       
   278                                     EMaskEventCancel        |
       
   279                                     EMaskEventCounter       |
       
   280                                     EMaskTodoPublish        |
       
   281                                     EMaskTodoRequest        |
       
   282                                     EMaskTodoReply          |
       
   283                                     EMaskTodoAdd            |
       
   284                                     EMaskTodoCancel         |
       
   285                                     EMaskTodoCounter        |
       
   286                                     EMaskTodoDeclineCounter |
       
   287                                     EMaskJournalPublish     |
       
   288                                     EMaskJournalAdd         |
       
   289                                     EMaskJournalCancel,
       
   290 
       
   291         EICalCategoriesFlags =      EMaskEventPublish       |
       
   292                                     EMaskEventRequest       |
       
   293                                     EMaskEventReply         |
       
   294                                     EMaskEventAdd           |
       
   295                                     EMaskEventCancel        |
       
   296                                     EMaskEventCounter       |
       
   297                                     EMaskTodoPublish        |
       
   298                                     EMaskTodoRequest        |
       
   299                                     EMaskTodoReply          |
       
   300                                     EMaskTodoAdd            |
       
   301                                     EMaskTodoCancel         |
       
   302                                     EMaskTodoCounter        |
       
   303                                     EMaskTodoDeclineCounter |
       
   304                                     EMaskJournalPublish     |
       
   305                                     EMaskJournalAdd         |
       
   306                                     EMaskJournalCancel,
       
   307 
       
   308         EICalClassFlags =           EMaskEventPublish       |
       
   309                                     EMaskEventRequest       |
       
   310                                     EMaskEventReply         |
       
   311                                     EMaskEventAdd           |
       
   312                                     EMaskEventCancel        |
       
   313                                     EMaskEventCounter       |
       
   314                                     EMaskTodoPublish        |
       
   315                                     EMaskTodoRequest        |
       
   316                                     EMaskTodoReply          |
       
   317                                     EMaskTodoAdd            |
       
   318                                     EMaskTodoCancel         |
       
   319                                     EMaskTodoCounter        |
       
   320                                     EMaskTodoDeclineCounter |
       
   321                                     EMaskJournalPublish     |
       
   322                                     EMaskJournalAdd         |
       
   323                                     EMaskJournalCancel,
       
   324 
       
   325         EICalCommentFlags =         EMaskEventPublish       |
       
   326                                     EMaskEventRequest       |
       
   327                                     EMaskEventReply         |
       
   328                                     EMaskEventAdd           |
       
   329                                     EMaskEventCancel        |
       
   330                                     EMaskEventRefresh       |
       
   331                                     EMaskEventCounter       |
       
   332                                     EMaskEventDeclineCounter|
       
   333                                     EMaskTodoPublish        |
       
   334                                     EMaskTodoRequest        |
       
   335                                     EMaskTodoReply          |
       
   336                                     EMaskTodoAdd            |
       
   337                                     EMaskTodoCancel         |
       
   338                                     EMaskTodoDeclineCounter |
       
   339                                     EMaskJournalPublish     |
       
   340                                     EMaskJournalAdd         |
       
   341                                     EMaskJournalCancel      |
       
   342                                     EMaskFreeBusyPublish    |
       
   343                                     EMaskFreeBusyRequest    |
       
   344                                     EMaskFreeBusyReply,
       
   345 
       
   346         EICalContactFlags =         EMaskEventPublish       |
       
   347                                     EMaskEventRequest       |
       
   348                                     EMaskEventReply         |
       
   349                                     EMaskEventAdd           |
       
   350                                     EMaskEventCancel        |
       
   351                                     EMaskEventCounter       |
       
   352                                     EMaskTodoPublish        |
       
   353                                     EMaskTodoRequest        |
       
   354                                     EMaskTodoReply          |
       
   355                                     EMaskTodoAdd            |
       
   356                                     EMaskTodoCancel         |
       
   357                                     EMaskTodoCounter        |
       
   358                                     EMaskTodoDeclineCounter |
       
   359                                     EMaskJournalPublish     |
       
   360                                     EMaskJournalAdd         |
       
   361                                     EMaskJournalCancel      |
       
   362                                     EMaskFreeBusyPublish    |
       
   363                                     EMaskFreeBusyRequest    |
       
   364                                     EMaskFreeBusyReply,
       
   365 
       
   366         EICalCreatedFlags =         EMaskEventPublish       |
       
   367                                     EMaskEventRequest       |
       
   368                                     EMaskEventReply         |
       
   369                                     EMaskEventAdd           |
       
   370                                     EMaskEventCancel        |
       
   371                                     EMaskEventCounter       |
       
   372                                     EMaskTodoPublish        |
       
   373                                     EMaskTodoRequest        |
       
   374                                     EMaskTodoReply          |
       
   375                                     EMaskTodoAdd            |
       
   376                                     EMaskTodoCancel         |
       
   377                                     EMaskTodoCounter        |
       
   378                                     EMaskTodoDeclineCounter |
       
   379                                     EMaskJournalPublish     |
       
   380                                     EMaskJournalAdd         |
       
   381                                     EMaskJournalCancel,
       
   382 
       
   383         EICalDescriptionFlags =     EMaskEventPublish       |
       
   384                                     EMaskEventRequest       |
       
   385                                     EMaskEventReply         |
       
   386                                     EMaskEventAdd           |
       
   387                                     EMaskEventCancel        |
       
   388                                     EMaskEventCounter       |
       
   389                                     EMaskTodoPublish        |
       
   390                                     EMaskTodoRequest        |
       
   391                                     EMaskTodoReply          |
       
   392                                     EMaskTodoAdd            |
       
   393                                     EMaskTodoCancel         |
       
   394                                     EMaskTodoCounter        |
       
   395                                     EMaskTodoDeclineCounter |
       
   396                                     EMaskJournalPublish     |
       
   397                                     EMaskJournalAdd         |
       
   398                                     EMaskJournalCancel,
       
   399 
       
   400         EICalDtEndFlags =           EMaskEventPublish       |
       
   401                                     EMaskEventRequest       |
       
   402                                     EMaskEventReply         |
       
   403                                     EMaskEventAdd           |
       
   404                                     EMaskEventCancel        |
       
   405                                     EMaskEventCounter       |
       
   406                                     EMaskFreeBusyPublish    |
       
   407                                     EMaskFreeBusyRequest    |
       
   408                                     EMaskFreeBusyReply,
       
   409 
       
   410         EICalFreeBusyFlags =        EMaskFreeBusyPublish    |
       
   411                                     EMaskFreeBusyReply,
       
   412 
       
   413         EICalDueFlags =             EMaskTodoPublish        |
       
   414                                     EMaskTodoRequest        |
       
   415                                     EMaskTodoReply          |
       
   416                                     EMaskTodoAdd            |
       
   417                                     EMaskTodoCancel         |
       
   418                                     EMaskTodoCounter        |
       
   419                                     EMaskTodoDeclineCounter,
       
   420 
       
   421         EICalDurationFlags =        EMaskEventPublish       |
       
   422                                     EMaskEventRequest       |
       
   423                                     EMaskEventReply         |
       
   424                                     EMaskEventAdd           |
       
   425                                     EMaskEventCancel        |
       
   426                                     EMaskEventCounter       |
       
   427                                     EMaskTodoPublish        |
       
   428                                     EMaskTodoRequest        |
       
   429                                     EMaskTodoReply          |
       
   430                                     EMaskTodoAdd            |
       
   431                                     EMaskTodoCancel         |
       
   432                                     EMaskTodoCounter        |
       
   433                                     EMaskTodoDeclineCounter,
       
   434 
       
   435         EICalExDateFlags =          EMaskEventPublish       |
       
   436                                     EMaskEventRequest       |
       
   437                                     EMaskEventReply         |
       
   438                                     EMaskEventAdd           |
       
   439                                     EMaskEventCancel        |
       
   440                                     EMaskEventCounter       |
       
   441                                     EMaskTodoPublish        |
       
   442                                     EMaskTodoRequest        |
       
   443                                     EMaskTodoReply          |
       
   444                                     EMaskTodoAdd            |
       
   445                                     EMaskTodoCancel         |
       
   446                                     EMaskTodoCounter        |
       
   447                                     EMaskTodoDeclineCounter |
       
   448                                     EMaskJournalPublish     |
       
   449                                     EMaskJournalAdd         |
       
   450                                     EMaskJournalCancel,
       
   451 
       
   452         EICalExRuleFlags =          EMaskEventPublish       |
       
   453                                     EMaskEventRequest       |
       
   454                                     EMaskEventReply         |
       
   455                                     EMaskEventAdd           |
       
   456                                     EMaskEventCancel        |
       
   457                                     EMaskEventCounter       |
       
   458                                     EMaskTodoPublish        |
       
   459                                     EMaskTodoRequest        |
       
   460                                     EMaskTodoReply          |
       
   461                                     EMaskTodoAdd            |
       
   462                                     EMaskTodoCancel         |
       
   463                                     EMaskTodoCounter        |
       
   464                                     EMaskTodoDeclineCounter |
       
   465                                     EMaskJournalPublish     |
       
   466                                     EMaskJournalAdd         |
       
   467                                     EMaskJournalCancel,
       
   468 
       
   469         EICalGeoFlags =             EMaskEventPublish       |
       
   470                                     EMaskEventRequest       |
       
   471                                     EMaskEventReply         |
       
   472                                     EMaskEventAdd           |
       
   473                                     EMaskEventCancel        |
       
   474                                     EMaskEventCounter       |
       
   475                                     EMaskTodoPublish        |
       
   476                                     EMaskTodoRequest        |
       
   477                                     EMaskTodoReply          |
       
   478                                     EMaskTodoAdd            |
       
   479                                     EMaskTodoCancel         |
       
   480                                     EMaskTodoCounter        |
       
   481                                     EMaskTodoDeclineCounter,
       
   482 
       
   483         EICalLastModifiedFlags =    EMaskEventPublish       |
       
   484                                     EMaskEventRequest       |
       
   485                                     EMaskEventReply         |
       
   486                                     EMaskEventAdd           |
       
   487                                     EMaskEventCancel        |
       
   488                                     EMaskEventCounter       |
       
   489                                     EMaskTodoPublish        |
       
   490                                     EMaskTodoRequest        |
       
   491                                     EMaskTodoReply          |
       
   492                                     EMaskTodoAdd            |
       
   493                                     EMaskTodoCancel         |
       
   494                                     EMaskTodoCounter        |
       
   495                                     EMaskTodoDeclineCounter |
       
   496                                     EMaskJournalPublish     |
       
   497                                     EMaskJournalAdd         |
       
   498                                     EMaskJournalCancel,
       
   499 
       
   500         EICalLocationFlags =        EMaskEventPublish       |
       
   501                                     EMaskEventRequest       |
       
   502                                     EMaskEventReply         |
       
   503                                     EMaskEventAdd           |
       
   504                                     EMaskEventCancel        |
       
   505                                     EMaskEventCounter       |
       
   506                                     EMaskTodoPublish        |
       
   507                                     EMaskTodoRequest        |
       
   508                                     EMaskTodoReply          |
       
   509                                     EMaskTodoAdd            |
       
   510                                     EMaskTodoCancel         |
       
   511                                     EMaskTodoCounter        |
       
   512                                     EMaskTodoDeclineCounter,
       
   513 
       
   514         EICalPercentCompleteFlags = EMaskTodoPublish        |
       
   515                                     EMaskTodoRequest        |
       
   516                                     EMaskTodoReply          |
       
   517                                     EMaskTodoAdd            |
       
   518                                     EMaskTodoCancel         |
       
   519                                     EMaskTodoCounter        |
       
   520                                     EMaskTodoDeclineCounter,
       
   521 
       
   522         EICalPriorityFlags =        EMaskEventPublish       |
       
   523                                     EMaskEventRequest       |
       
   524                                     EMaskEventReply         |
       
   525                                     EMaskEventAdd           |
       
   526                                     EMaskEventCancel        |
       
   527                                     EMaskEventCounter       |
       
   528                                     EMaskTodoRequest        |
       
   529                                     EMaskTodoReply          |
       
   530                                     EMaskTodoAdd            |
       
   531                                     EMaskTodoCancel     |
       
   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 public: // Destruction.
       
   658     ~CESMRICalBase();
       
   659 
       
   660 public: // Methods.
       
   661     /**
       
   662      * Creates a new property with a value from the given parameters, adds it to
       
   663      * this object and returns a modifiable reference to it.
       
   664      * @param aName Name of the property to add.
       
   665      * @param aValue Value of the property to add.
       
   666      * @return A reference to a new property owned by this object.
       
   667      * @leave Leaves with KErrUnsupportedProperty if the given property is not valid.
       
   668      * for this component.
       
   669      * @publishedPartner
       
   670      */
       
   671     IMPORT_C CESMRICalProperty& AddPropertyL(const TDesC& aName, const TDesC& aValue);
       
   672     
       
   673     /**
       
   674      * Creates a new property with a value and adds it to this object, returning a
       
   675      * reference to it. Ownership of aValue is transferred and it will be deleted if
       
   676      * this function leaves.
       
   677      * @leave Leaves with KErrPropertyHasNoValue if aValue is Null.
       
   678      * @leave Leaves with KErrUnsupportedProperty if the given property is not valid.
       
   679      * @return A new property
       
   680      * @publishedPartner
       
   681      */
       
   682     IMPORT_C CESMRICalProperty& AddPropertyL(const TDesC& aName, CESMRICalValue* aValue);
       
   683     
       
   684     /**
       
   685      * Creates a new component, adds it to this object, and returns a modifiable
       
   686      * reference to it.
       
   687      * @param aType The type of component to be created.
       
   688      * @return A new component
       
   689      * @leave Leaves with KErrUnsupportedComponent if the given component is not a
       
   690      * valid subcomponent for this object.
       
   691      * @publishedPartner
       
   692      */
       
   693     IMPORT_C CESMRICalComponent& AddComponentL(TICalComponentType aType);
       
   694 
       
   695     /**
       
   696      * Access function for the component array.
       
   697      * @return The array of components as a constant reference.
       
   698      * @publishedPartner
       
   699      */
       
   700     IMPORT_C const RPointerArray<CESMRICalComponent>& Components() const;
       
   701     
       
   702     /**
       
   703      * Access function for the property array.
       
   704      * @return The array of properties as a constant reference.
       
   705      * @publishedPartner
       
   706      */
       
   707     IMPORT_C const RPointerArray<CESMRICalProperty>& Properties() const;
       
   708 
       
   709     /**
       
   710      * Returns the descriptor form of this component type.
       
   711      * @return The descriptor form of this component type.
       
   712      * @publishedPartner
       
   713      */
       
   714     IMPORT_C const TDesC& TypeStringL() const;
       
   715     
       
   716     /**
       
   717      * Access method returning the concrete type as an enumeration.
       
   718      * @return The type of the concrete derived class.
       
   719      * @publishedPartner
       
   720      */
       
   721     IMPORT_C TICalComponentType Type() const;
       
   722 
       
   723     /**
       
   724      * Checks for a component already existing in current object's sub-components
       
   725      * @param aType The type of the component to check.
       
   726      * @return ETrue if the property does exist, EFalse otherwise
       
   727      * @publishedPartner
       
   728      */
       
   729     IMPORT_C TBool ComponentExists(TICalComponentType aType) const;
       
   730     
       
   731     /**
       
   732      * Finds the first property with a particular name and returns a pointer to it.
       
   733      * Ownership is not passed out.
       
   734      * @param aName The name of the property to search for.
       
   735      * @return A pointer to the property, or NULL.
       
   736      * @publishedPartner
       
   737      */
       
   738     IMPORT_C const CESMRICalProperty* FindProperty(const TDesC& aName) const;
       
   739 
       
   740     /**
       
   741      * Takes a line reader and reads lines from it until the end of the component is
       
   742      * located. Any other END:, or an end of file, are treated as errors.
       
   743      * @param aReader The line reader to read from.
       
   744      * @leave Leaves with KErrCorrupt if the component is corrupt.
       
   745      * @internalTechnology
       
   746      */
       
   747     void InternalizeL(CESMRICalContentLineReader& aReader);
       
   748     
       
   749     /**
       
   750      * Takes a line writer and exports this component, including all owned properties
       
   751      * and sub components, to it.
       
   752      * @param aWriter the writer to export to.
       
   753      * @internalTechnology
       
   754      */
       
   755     void ExternalizeL(CESMRICalContentLineWriter& aWriter) const;
       
   756 
       
   757     /**
       
   758      * Converts between a TICalComponentType and the type as a descriptor.
       
   759      * @param aName The type as a descriptor.
       
   760      * @return The type as an enumeration.
       
   761      * @leave KErrCorrupt if this is not a valid type.
       
   762      * @internalTechnology
       
   763      */
       
   764     static TICalComponentType TypeFromNameL(const TDesC& aName);
       
   765 
       
   766 protected:  // Construction.
       
   767     CESMRICalBase();
       
   768 
       
   769 protected:  // Methods.
       
   770     /**
       
   771      * Converts between a TICalComponentType and the type as a descriptor.
       
   772      * @param aType The type as an enumeration.
       
   773      * @return The type as a descriptor.
       
   774      * @leave KErrCorrupt if this is not a valid type.
       
   775      * @internalTechnology
       
   776      */
       
   777     const TDesC& TypeStringL(TICalComponentType aType) const;
       
   778     
       
   779     TBool ValidateProperty(const TDesC& aName) const;
       
   780 
       
   781 protected:  // must be implemented by subclasses 
       
   782     virtual TBool ValidatePropertyImpl(const TDesC& aName) const = 0;
       
   783     virtual TBool ValidateComponent(TICalComponentType aType) const = 0;
       
   784 
       
   785 private:    // Implementation.
       
   786     CESMRICalComponent* CreateComponentL(TICalComponentType aType);
       
   787     CESMRICalProperty* CreatePropertyL(const TDesC& aName);
       
   788 
       
   789 protected:  // Data.
       
   790     RPointerArray<CESMRICalComponent> iComponents;//own
       
   791     RPointerArray<CESMRICalProperty> iProperties;//own
       
   792 
       
   793     TICalComponentType iComponentType;//own
       
   794     TICalMethod iMethod;
       
   795     TUint32 iComponentMethodBitMask;
       
   796     };
       
   797 
       
   798 #endif  // CESMRICALBASE_H
       
   799 
       
   800 // End of File