IMPSengine/messageencoder/wbxml/src/ImpsWbXmlData.cpp
changeset 0 094583676ce7
equal deleted inserted replaced
-1:000000000000 0:094583676ce7
       
     1 /*
       
     2 * Copyright (c) 2003 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:  Provides methods for CSP WBXML data handling
       
    15 *
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 #include    "ImpsWbXmlData.h"
       
    22 #include    "ImpsCommonEnums.h"
       
    23 #include    "ImpsWbXmlCommon.h"
       
    24 #include    "ImpsPresence.h"
       
    25 #include    "ImpsFundamental.h"
       
    26 
       
    27 // ==================== LOCAL FUNCTIONS ====================
       
    28 
       
    29 
       
    30 // ================= MEMBER FUNCTIONS =======================
       
    31 
       
    32 // C++ default constructor can NOT contain any code, that
       
    33 // might leave.
       
    34 //
       
    35 CImpsWbXmlData::CImpsWbXmlData()
       
    36     {
       
    37 
       
    38     }
       
    39 
       
    40 // default constructor can leave.
       
    41 void CImpsWbXmlData::ConstructL()
       
    42     {
       
    43 
       
    44     }
       
    45 
       
    46 // Two-phased constructor.
       
    47 CImpsWbXmlData* CImpsWbXmlData::NewL()
       
    48     {
       
    49      
       
    50     CImpsWbXmlData* self = new (ELeave) CImpsWbXmlData;
       
    51     CleanupStack::PushL( self );
       
    52     self->ConstructL();
       
    53     CleanupStack::Pop();
       
    54     return self;
       
    55     
       
    56     }
       
    57 
       
    58     
       
    59 // Destructor
       
    60 CImpsWbXmlData::~CImpsWbXmlData()
       
    61     {
       
    62     
       
    63     }
       
    64 
       
    65 
       
    66 // ---------------------------------------------------------
       
    67 // CImpsWbXmlData::GetWbXmlElementValue
       
    68 // method returns wbxml element value token corresponding to
       
    69 // given string
       
    70 // ---------------------------------------------------------
       
    71 //
       
    72 TUint32 CImpsWbXmlData::GetWbXmlElementValue(TInt aToken,TDesC*& aValue)
       
    73    {
       
    74 
       
    75     switch(aToken)
       
    76     {
       
    77 
       
    78     case    KImpsWbXmlOnlineStatus:                                             // OnlineStatus
       
    79     case    KImpsWbXmlRegistration:                                             // Registration
       
    80             if(!aValue->CompareF(KImpsTrue))         return(KImpsWbXmlTrue);         // True
       
    81             if(!aValue->CompareF(KImpsFalse))        return(KImpsWbXmlFalse);        // False
       
    82             break;
       
    83 
       
    84     case    KImpsWbXmlClientInfo:                                               // ClientInfo
       
    85             if(!aValue->CompareF(KImpsMobilePhone))  return(KImpsWbXmlMobilePhone);  // MobilePhone
       
    86             if(!aValue->CompareF(KImpsComputer))     return(KImpsWbXmlComputer);     // Computer
       
    87             if(!aValue->CompareF(KImpsPda))          return(KImpsWbXmlPda);          // Pda
       
    88             if(!aValue->CompareF(KImpsCli))          return(KImpsWbXmlCli);          // Cli
       
    89             if(!aValue->CompareF(KImpsOther))        return(KImpsWbXmlOther);        // Other
       
    90             break;
       
    91 
       
    92     case    KImpsWbXmlUserAvailability:                                         // UserAvailabilty
       
    93             if(!aValue->CompareF(KImpsAvailable))    return(KImpsWbXmlAvailable); 
       
    94             if(!aValue->CompareF(KImpsNotAvailable)) return(KImpsWbXmlNotAvailable); 
       
    95             if(!aValue->CompareF(KImpsDiscreet))     return(KImpsWbXmlDiscreet);
       
    96             break;
       
    97 
       
    98     case    KImpsWbXmlName:                                                     // Name
       
    99             if(!aValue->CompareF(KImpsName))             return(KImpsWbXmlNameValue);        // extension Name
       
   100             if(!aValue->CompareF(KImpsType))             return(KImpsWbXmlType);             // Type
       
   101             if(!aValue->CompareF(KImpsAccessType))       return(KImpsWbXmlAccessType);       // AccessType
       
   102             if(!aValue->CompareF(KImpsTopic))            return(KImpsWbXmlTopic);            // Topic
       
   103             if(!aValue->CompareF(KImpsPrivateMessaging)) return(KImpsWbXmlPrivateMessaging); // PrivateMessaging
       
   104             if(!aValue->CompareF(KImpsSearchable))       return(KImpsWbXmlSearchable);       // Searchable
       
   105             if(!aValue->CompareF(KImpsActiveUsers))      return(KImpsWbXmlActiveUsers);      // ActiveUsers
       
   106             if(!aValue->CompareF(KImpsMaxActiveUsers))   return(KImpsWbXmlMaxActiveUsers);   // MaxActiveUsers
       
   107             if(!aValue->CompareF(KImpsAutoJoin))         return(KImpsWbXmlAutoJoin);         // AutoJoin
       
   108             if(!aValue->CompareF(KImpsPrivilegeLevel))   return(KImpsWbXmlPrivilegeLevel);   // PriviledgeLevel
       
   109             if(!aValue->CompareF(KImpsAutoDelete))   	 return(KImpsWbXmlAutoDelete);       // AutoDelete
       
   110             if(!aValue->CompareF(KImpsValidity))   	 	 return(KImpsWbXmlValidityValue);    // Validity
       
   111             break;
       
   112 
       
   113     case    KImpsWbXmlAcceptedTransferEncoding:                                         // AcceptedTransferEncoding
       
   114     case    KImpsWbXmlContentEncoding:                                                  // ContentEncoding
       
   115             if(!aValue->CompareF(KImpsBASE64))           return(KImpsWbXmlBASE64);           // BASE64
       
   116             if(!aValue->CompareF(KImpsApplicationVndWapMmsMessage))	return KImpsWbXmlApplicationVndWapMmsMessage;
       
   117             if(!aValue->CompareF(KImpsApplicationXSms))	 return KImpsWbXmlApplicationXSms;
       
   118             break;
       
   119 
       
   120     case    KImpsWbXmlAcceptedContentType:                                              // AcceptedContentType
       
   121     case    KImpsWbXmlContentType:                                                      // ContentType
       
   122             if(!aValue->CompareF(KImpstextplain))        return(KImpsWbXmlTextPlain);        // text/plain
       
   123             break;
       
   124 
       
   125     case    KImpsWbXmlValue:                                                            // Value
       
   126             if(!aValue->CompareF(KImpsTrue))             return(KImpsWbXmlTrue);             // T
       
   127             if(!aValue->CompareF(KImpsFalse))            return(KImpsWbXmlFalse);            // F
       
   128             if(!aValue->CompareF(KImpsOpen16))           return(KImpsWbXmlOpen);             // Open
       
   129             if(!aValue->CompareF(KImpsRestricted))       return(KImpsWbXmlRestricted);       // Restricted
       
   130             if(!aValue->CompareF(KImpsPublic))           return(KImpsWbXmlPublic);           // Public
       
   131             if(!aValue->CompareF(KImpsPrivate))          return(KImpsWbXmlPrivate);          // Private
       
   132             if(!aValue->CompareF(KImpsAdmin))            return(KImpsWbXmlAdminValue);       // Admin
       
   133             if(!aValue->CompareF(KImpsMod))              return(KImpsWbXmlModValue);         // Mod
       
   134             break;
       
   135 
       
   136         default:
       
   137             break;
       
   138 
       
   139         }
       
   140         
       
   141     return(KImpsWbXmlDataNotFound);
       
   142     
       
   143     }
       
   144 
       
   145 // ---------------------------------------------------------
       
   146 // CImpsWbXmlData::GetWbXmlElementValue
       
   147 // method returns wbxml element value token corresponding to given
       
   148 // imps engine value and possible max string length
       
   149 // ---------------------------------------------------------
       
   150 //
       
   151 TUint32 CImpsWbXmlData::GetWbXmlElementValue(TInt aToken,TUint32 aValue, TInt& aMaxLength)
       
   152    {
       
   153 
       
   154     switch(aToken)
       
   155     {
       
   156 
       
   157     case    KImpsWbXmlSessionType:                              // SessionType
       
   158             if(aValue == EImpsInband) return(KImpsWbXmlInband);     // Inband
       
   159             if(aValue == EImpsOutband) return(KImpsWbXmlOutband);   // Outband
       
   160 //            break;
       
   161 
       
   162     case    KImpsWbXmlUserID:                           // UserID
       
   163     case    KImpsWbXmlName:                             // Name
       
   164     case    KImpsWbXmlSessionID:                        // SessionID
       
   165     case    KImpsWbXmlGroupID:                          // GroupID
       
   166     case    KImpsWbXmlMessageID:                        // MessageID
       
   167     case    KImpsWbXmlTransactionID:                    // TransactionID
       
   168     case    KImpsWbXmlPassword:                         // Password
       
   169     case    KImpsWbXmlSessionCookie:                    // SessionCookie
       
   170     case    KImpsWbXmlSName:                            // SName
       
   171     case    KImpsWbXmlValue:                            // Value
       
   172             aMaxLength = KImpsWbXmlMaxLength50;             // max 50 characters
       
   173             break;
       
   174 
       
   175     case    KImpsWbXmlSearchString:                     // SearchString
       
   176     case    KImpsWbXmlMessageURI:                       // MessageURI
       
   177     case    KImpsWbXmlContactList:                      // ContactList
       
   178     case    KImpsWbXmlDefaultContactList:               // DefaultContactList
       
   179     case    KImpsWbXmlInviteID:                         // InviteID
       
   180             aMaxLength = KImpsWbXmlMaxLength100;            // max 100 characters
       
   181             break;
       
   182 
       
   183     case    KImpsWbXmlDescription:                      // Description
       
   184     case    KImpsWbXmlDigestBytes:                      // DigestBytes
       
   185     case    KImpsWbXmlNonce:                            // Nonce
       
   186             aMaxLength = KImpsWbXmlMaxLength200;            // max 200 characters
       
   187             break;
       
   188 
       
   189     case    KImpsWbXmlInviteNote:                       // InviteNote
       
   190     case    KImpsWbXmlResponseNote:                     // ResponseNote
       
   191             aMaxLength = KImpsWbXmlMaxLength400;            // max 400 characters
       
   192             break;
       
   193 
       
   194     case    KImpsWbXmlTransactionMode:  // TransactionMode
       
   195             if(aValue == EImpsRequest) return(KImpsWbXmlRequest);   // Request
       
   196             if(aValue == EImpsResponse) return(KImpsWbXmlResponse); // Response
       
   197 //            break;
       
   198 
       
   199     case    KImpsWbXmlInitialDeliveryMethod:            // InitialDeliveryMethod
       
   200     case    KImpsWbXmlDeliveryMethod:                   // DeliveryMethod
       
   201             if(aValue == EImpsP) return(KImpsWbXmlDeliveryMethodP); // P
       
   202             if(aValue == EImpsN) return(KImpsWbXmlDeliveryMethodN); // N
       
   203 //            break;
       
   204 
       
   205     case    KImpsWbXmlPoll:                             // Poll
       
   206     case    KImpsWbXmlQualifier:                        // Qualifier
       
   207     case    KImpsWbXmlJoinGroup:                        // JoinGroup
       
   208     case    KImpsWbXmlJoinedRequest:                    // JoinedRequest
       
   209     case    KImpsWbXmlInUse:                            // InUse
       
   210     case    KImpsWbXmlCapabilityRequest:                // CapabilityRequest
       
   211     case    KImpsWbXmlAllFunctionsRequest:              // AllFunctionsRequest
       
   212     case    KImpsWbXmlAnyContent:                       // AnyContent
       
   213     case    KImpsWbXmlAcceptance:                       // Acceptance
       
   214     case    KImpsWbXmlCompletionFlag:                   // CompletionFlag
       
   215     case    KImpsWbXmlDefaultList:                      // DefaultList
       
   216     case    KImpsWbXmlDeliveryReport:                   // DeliveryReport
       
   217     case    KImpsWbXmlSubscribeNotification:            // SubscribeNotification
       
   218     case KImpsWbxmlReceiveList: 
       
   219     case KImpsWbxmlAutoSubscribe:
       
   220             if(aValue == TRUE) return(KImpsWbXmlTrue);      // True
       
   221             if(aValue == FALSE) return(KImpsWbXmlFalse);    // False
       
   222 //            break;
       
   223 
       
   224     case    KImpsWbXmlClientType:                                       // ClientType
       
   225             if(aValue == EImpsMOBILE_PHONE) return(KImpsWbXmlMobilePhone);  // True
       
   226             if(aValue == EImpsCOMPUTER)     return(KImpsWbXmlComputer);     // Computer
       
   227             if(aValue == EImpsPDA)          return(KImpsWbXmlPda);          // Pda
       
   228             if(aValue == EImpsCLI)          return(KImpsWbXmlCli);          // Cli
       
   229             if(aValue == EImpsOTHER)        return(KImpsWbXmlOther);        // Other
       
   230 //            break;
       
   231 
       
   232     case    KImpsWbXmlInviteType:                                   // InviteType
       
   233             if(aValue == EImpsGR)           return(KImpsWbXmlGR);       // GR
       
   234             if(aValue == EImpsIM)           return(KImpsWbXmlIM);       // IM
       
   235             if(aValue == EImpsPR)           return(KImpsWbXmlPR);       // PR
       
   236             if(aValue == EImpsSC)           return(KImpsWbXmlSC);       // SC
       
   237 //            break;
       
   238 
       
   239     case    KImpsWbXmlSupportedBearer:                              // SupportedBearer
       
   240             if(aValue == EImpsSMS)          return(KImpsWbXmlSMS);      // SMS
       
   241             if(aValue == EImpsWSP)          return(KImpsWbXmlWSP);      // WSP
       
   242             if(aValue == EImpsHTTP)         return(KImpsWbXmlHTTP);     // HTTP
       
   243             // if(aValue == EImpsHTTPS)     return(KImpsWbXmlHTTPS);    // HTTPS
       
   244 //            break;
       
   245 
       
   246     case    KImpsWbXmlSupportedCIRMethod:                           // SupportedCIRMethod
       
   247             if(aValue == EImpsWAPSMS)       return(KImpsWbXmlWAPSMS);   // WAPSMS
       
   248             if(aValue == EImpsWAPUDP)       return(KImpsWbXmlWAPUDP);   // WAPUDP
       
   249             if(aValue == EImpsSUDP)         return(KImpsWbXmlSUDP);     // SUDP
       
   250             if(aValue == EImpsSTCP)         return(KImpsWbXmlSTCP);     // STCP
       
   251 //            break;
       
   252 
       
   253     case    KImpsWbXmlCap:                                          // Cap
       
   254             if(aValue == EImpsCapSMS)       return(KImpsWbXmlSMS);      // SMS
       
   255             if(aValue == EImpsCapMMS)       return(KImpsWbXmlMMS);      // MMS
       
   256             if(aValue == EImpsCapIM)        return(KImpsWbXmlCapIM);    // IM
       
   257             if(aValue == EImpsCapEMAIL)     return(KImpsWbXmlEMAIL);    // EMAIL
       
   258             if(aValue == EImpsCapCALL)      return(KImpsWbXmlCALL);     // CALL
       
   259 //            break;
       
   260 
       
   261     case    KImpsWbXmlStatus:                                       // Presence Status
       
   262             if(aValue == 1) return(KImpsWbXmlOpen);                     // Open
       
   263             if(aValue == 2) return(KImpsWbXmlClosed);                   // Closed
       
   264 //            break;
       
   265 
       
   266     case    KImpsWbXmlSubscribeType:                                    // SubscribeType
       
   267             if(aValue == EImpsG)                    return(KImpsWbXmlG);    // G
       
   268             if(aValue == EImpsS)                    return(KImpsWbXmlS);    // S
       
   269             if(aValue == EImpsU)                    return(KImpsWbXmlU);    // U
       
   270 //            break;
       
   271 
       
   272     case    KImpsWbXmlSearchElement:                                                    // SearchElement
       
   273             if(aValue == EImpsUserID)               return(KImpsWbXmlUSER_ID);              // USER_ID
       
   274             if(aValue == EImpsUserFirstName)        return(KImpsWbXmlUSER_FIRST_NAME);      // USER_FIRST_NAME
       
   275             if(aValue == EImpsUserLastName)         return(KImpsWbXmlUSER_LAST_NAME);       // USER_LAST_NAME
       
   276             if(aValue == EImpsUserEmailAddress)     return(KImpsWbXmlUSER_EMAIL_ADDRESS);   // USER_EMAIL_ADDRESS
       
   277             if(aValue == EImpsUserAlias)            return(KImpsWbXmlUSER_ALIAS);           // USER_ALIAS
       
   278             if(aValue == EImpsUserOnlineStatus)     return(KImpsWbXmlUSER_ONLINE_STATUS);   // USER_ONLINE_STATUS
       
   279             if(aValue == EImpsUserMobileNumber)     return(KImpsWbXmlUSER_MOBILE_NUMBER);   // USER_MOBILE_NUMBER
       
   280             if(aValue == EImpsGroupID)              return(KImpsWbXmlGROUP_ID);             // GROUP_ID
       
   281             if(aValue == EImpsGroupName)            return(KImpsWbXmlGROUP_NAME);           // GROUP_NAME
       
   282             if(aValue == EImpsGroupTopic)           return(KImpsWbXmlGROUP_TOPIC);          // GROUP_TOPIC
       
   283             if(aValue == EImpsGroupUserIDJoined)    return(KImpsWbXmlGROUP_USER_ID_JOINED); // GROUP_USER_ID_JOINED
       
   284             if(aValue == EImpsGroupUserIDOwner)     return(KImpsWbXmlGROUP_USER_ID_OWNER);  // GROUP_USER_ID_OWER
       
   285 //            break;
       
   286 
       
   287     case    KImpsWbXmlURL:                                      // URL
       
   288             aMaxLength = KImpsWbXmlMaxLength200;                    // max 200 characters
       
   289             return(KImpsWbXmlHttp);                                 // http://
       
   290 //            break;
       
   291 
       
   292     case    KImpsWbXmlAcceptedTransferEncoding:                 // AcceptedTransferEncoding
       
   293     case    KImpsWbXmlContentEncoding:                          // ContentEncoding
       
   294             aMaxLength = KImpsWbXmlMaxLength50;                     // default max length = 50
       
   295             if(aValue == EImpsNone) return(KImpsWbXmlNone);         // None
       
   296             if(aValue == EImpsBASE64) return(KImpsWbXmlBASE64);     // BASE64
       
   297 //            break;
       
   298 
       
   299     case    KImpsWbXmlContentData:
       
   300         case KImpsWbXmlDirectContent:
       
   301         case KImpsWbXmlReferredContent:
       
   302             aMaxLength = KImpsWbXmlNoMaxLength;                     // no max length
       
   303             return(KImpsWbXmlDataNotFound);
       
   304 //            break;
       
   305 
       
   306         default:
       
   307             aMaxLength = KImpsWbXmlNoMaxLength;                     // no max length
       
   308 //            return(KImpsWbXmlDataNotFound);
       
   309             break;
       
   310         }
       
   311 
       
   312         return(KImpsWbXmlDataNotFound);
       
   313    }
       
   314 
       
   315 
       
   316 // ---------------------------------------------------------
       
   317 // CImpsWbXmlData::GetImpsEngineValue
       
   318 // method returns Imps engine value corresponding to given
       
   319 // wbxml element value token if exists
       
   320 // ---------------------------------------------------------
       
   321 //
       
   322 TInt CImpsWbXmlData::GetImpsEngineValue(TInt aToken,TInt aValue)
       
   323    {
       
   324 
       
   325 
       
   326     switch(aToken)
       
   327     {
       
   328 
       
   329     case    KImpsWbXmlSessionType:                              // SessionType
       
   330             if(aValue == KImpsWbXmlInband)  return(EImpsInband);    // Inband
       
   331             if(aValue == KImpsWbXmlOutband) return(EImpsOutband);   // Outband
       
   332             break;
       
   333 
       
   334     case    KImpsWbXmlTransactionMode:  // TransactionMode
       
   335             if(aValue == KImpsWbXmlRequest)  return(EImpsRequest);  // Request
       
   336             if(aValue == KImpsWbXmlResponse) return(EImpsResponse); // Response
       
   337             break;
       
   338 
       
   339     case    KImpsWbXmlInitialDeliveryMethod:                        // InitialDeliveryMethod
       
   340     case    KImpsWbXmlDeliveryMethod:                               // DeliveryMethod
       
   341             if(aValue == KImpsWbXmlDeliveryMethodP)  return(EImpsP);    // P
       
   342             if(aValue == KImpsWbXmlDeliveryMethodN)  return(EImpsN);    // N
       
   343             break;
       
   344 
       
   345     case    KImpsWbXmlPoll:                                 // Poll
       
   346     case    KImpsWbXmlQualifier:                            // Qualifier
       
   347     case    KImpsWbXmlCapabilityRequest:                    // CapabilityRequest
       
   348     case    KImpsWbXmlAllFunctionsRequest:                  // AllFunctionsRequest
       
   349     case    KImpsWbXmlJoinGroup:                            // JoinGroup
       
   350     case    KImpsWbXmlJoinedRequest:                        // JoinedRequest
       
   351     case    KImpsWbXmlInUse:                                // InUse
       
   352     case    KImpsWbXmlAnyContent:                           // AnyContent
       
   353     case    KImpsWbXmlAcceptance:                           // Acceptance
       
   354     case    KImpsWbXmlCompletionFlag:                       // CompletionFlag
       
   355     case    KImpsWbXmlDefaultList:                          // DefaultList
       
   356     case    KImpsWbXmlDeliveryReport:                       // DeliveryReport
       
   357     case    KImpsWbXmlSubscribeNotification:                // SubscribeNotification
       
   358             if(aValue == KImpsWbXmlTrue)  return(ETrue);        // True
       
   359             if(aValue == KImpsWbXmlFalse) return(EFalse);       // False
       
   360             break;
       
   361 
       
   362     case    KImpsWbXmlClientType:           // ClientType
       
   363             if(aValue == KImpsWbXmlMobilePhone) return(EImpsMOBILE_PHONE);  // MobilePhone
       
   364             if(aValue == KImpsWbXmlComputer)    return(EImpsCOMPUTER);      // Computer
       
   365             if(aValue == KImpsWbXmlPda)         return(EImpsPDA);           // Pda
       
   366             if(aValue == KImpsWbXmlCli)         return(EImpsCLI);           // Cli
       
   367             if(aValue == KImpsWbXmlOther)       return(EImpsOTHER);         // Other
       
   368             break;
       
   369 
       
   370     case    KImpsWbXmlInviteType:           // InviteType
       
   371             if(aValue == KImpsWbXmlGR )         return(EImpsGR);        // GR
       
   372             if(aValue == KImpsWbXmlIM )         return(EImpsIM);        // IM
       
   373             if(aValue == KImpsWbXmlPR )         return(EImpsPR);        // PR
       
   374             if(aValue == KImpsWbXmlSC )         return(EImpsSC);        // SC
       
   375             break;
       
   376 
       
   377     case    KImpsWbXmlSupportedBearer:      // SupportedBearer
       
   378             if(aValue == KImpsWbXmlSMS )        return(EImpsSMS);       // SMS
       
   379             if(aValue == KImpsWbXmlWSP )        return(EImpsWSP);       // WSP
       
   380             if(aValue == KImpsWbXmlHTTP )       return(EImpsHTTP);      // HTTP
       
   381             // if(aValue == KImpsWbXmlHTTPS )       return(EImpsHTTPS);     // HTTPS
       
   382             break;
       
   383 
       
   384     case    KImpsWbXmlSupportedCIRMethod:   // SupportedCIRMethod
       
   385             if(aValue == KImpsWbXmlWAPSMS)      return(EImpsWAPSMS);    // WAPSMS
       
   386             if(aValue == KImpsWbXmlWAPUDP)      return(EImpsWAPUDP);    // WAPUDP
       
   387             if(aValue == KImpsWbXmlSUDP)        return(EImpsSUDP);      // SUDP
       
   388             if(aValue == KImpsWbXmlSTCP)        return(EImpsSTCP);      // STCP
       
   389             break;
       
   390 
       
   391     case    KImpsWbXmlSubscribeType:        // SubscribeType
       
   392             if(aValue == KImpsWbXmlG)           return(EImpsG);         // G
       
   393             if(aValue == KImpsWbXmlS)           return(EImpsS);         // S
       
   394             if(aValue == KImpsWbXmlU)           return(EImpsU);         // U
       
   395             break;
       
   396 
       
   397     case    KImpsWbXmlSearchElement:        // SearchElement
       
   398             if(aValue == KImpsWbXmlUSER_ID )                return(EImpsUserID);                // USER_ID
       
   399             if(aValue == KImpsWbXmlUSER_FIRST_NAME )        return(EImpsUserFirstName);         // USER_FIRST_NAME
       
   400             if(aValue == KImpsWbXmlUSER_LAST_NAME )         return(EImpsUserLastName);          // USER_LAST_NAME
       
   401             if(aValue == KImpsWbXmlUSER_EMAIL_ADDRESS )     return(EImpsUserEmailAddress);      // USER_EMAIL_ADDRESS
       
   402             if(aValue == KImpsWbXmlUSER_ALIAS )             return(EImpsUserAlias);             // USER_ALIAS
       
   403             if(aValue == KImpsWbXmlUSER_ONLINE_STATUS )     return(EImpsUserOnlineStatus);      // USER_ONLINE_STATUS
       
   404             if(aValue == KImpsWbXmlUSER_MOBILE_NUMBER )     return(EImpsUserMobileNumber);      // USER_MOBILE_NUMBER
       
   405             if(aValue == KImpsWbXmlGROUP_ID )               return(EImpsGroupID);               // GROUP_ID
       
   406             if(aValue == KImpsWbXmlGROUP_NAME )             return(EImpsGroupName);             // GROUP_NAME
       
   407             if(aValue == KImpsWbXmlGROUP_TOPIC )            return(EImpsGroupTopic);            // GROUP_TOPIC
       
   408             if(aValue == KImpsWbXmlGROUP_USER_ID_JOINED )   return(EImpsGroupUserIDJoined);     // GROUP_USER_ID_JOINED
       
   409             if(aValue == KImpsWbXmlGROUP_USER_ID_OWNER )    return(EImpsGroupUserIDOwner);      // GROUP_USER_ID_OWER
       
   410             break;
       
   411 
       
   412     case    KImpsWbXmlAcceptedTransferEncoding:                 // AcceptedTransferEncoding
       
   413     case    KImpsWbXmlContentEncoding:                          // ContentEncoding
       
   414             if(aValue ==KImpsWbXmlNone )    return(EImpsNone);      // None
       
   415             if(aValue ==KImpsWbXmlBASE64 )  return(EImpsBASE64);    // BASE64 
       
   416             break;
       
   417 
       
   418     case    KImpsWbXmlCap:                  // Cap
       
   419             if(aValue == KImpsWbXmlSMS)     return(EImpsCapSMS);    // SMS
       
   420             if(aValue == KImpsWbXmlMMS)     return(EImpsCapMMS);    // MMS
       
   421             if(aValue == KImpsWbXmlCapIM)   return(EImpsCapIM);     // IM / (CommC/Cap)
       
   422             if(aValue == KImpsWbXmlIM)
       
   423             {
       
   424                 TInt value = EImpsCapIM;
       
   425                 if((aToken & KImpsMaskCodePage) == KImpsCodePagePresence)
       
   426                 {
       
   427                     value = EImpsCapIM;
       
   428                 }
       
   429                 return(value);
       
   430             }
       
   431             if(aValue == KImpsWbXmlEMAIL)   return(EImpsCapEMAIL);  // EMAIL
       
   432             if(aValue == KImpsWbXmlCALL)    return(EImpsCapCALL);   // CALL
       
   433             break;
       
   434 
       
   435     case    KImpsWbXmlStatus:                                   // Presence Status
       
   436             if(aValue == KImpsWbXmlOpen)    return(1);              // Open
       
   437             if(aValue == KImpsWbXmlClosed)  return(2);              // Closed
       
   438             break;
       
   439 
       
   440         default:
       
   441             break;
       
   442         }
       
   443 
       
   444         return(KErrNotFound);   
       
   445    }
       
   446 
       
   447 
       
   448 // ---------------------------------------------------------
       
   449 // CImpsWbXmlData::GetWbXmlStringValue
       
   450 // method returns possible string corresponding to given token
       
   451 // ---------------------------------------------------------
       
   452 //
       
   453 TPtrC8 CImpsWbXmlData::GetWbXmlStringValue(TInt aToken,TInt aValue)
       
   454    {
       
   455         
       
   456     TPtrC8 p(KNullDesC8);
       
   457     switch(aToken)
       
   458     {
       
   459 
       
   460     case    KImpsWbXmlDigestSchema:                                    // DigestSchema
       
   461             if(aValue == EImpsPWD)          return TPtrC8(KImpsPWD);       // PWD
       
   462             if(aValue == EImpsSHA)          return TPtrC8(KImpsSHA);       // SHA
       
   463             if(aValue == EImpsMD4)          return TPtrC8(KImpsMD4);       // MD4
       
   464             if(aValue == EImpsMD5)          return TPtrC8(KImpsMD5);       // MD4
       
   465             if(aValue == EImpsMD6)          return TPtrC8(KImpsMD6);       // MD4
       
   466             break;
       
   467 
       
   468     case    KImpsWbXmlSupportedBearer:                                 // SupportedBearer
       
   469             if(aValue == EImpsHTTPS)        return TPtrC8(KImpsHTTPS);     // HTTPS
       
   470             break;
       
   471 
       
   472         default:
       
   473             return(p);   
       
   474         }
       
   475         return(p);
       
   476    }
       
   477 
       
   478 // ---------------------------------------------------------
       
   479 // CImpsWbXmlData::GetImpsEngineDesc8Value
       
   480 // method returns possible prefix string corresponding to given token
       
   481 // ---------------------------------------------------------
       
   482 //
       
   483 TPtrC8 CImpsWbXmlData::GetImpsEngineDesc8Value(TInt aToken,TInt aValue)
       
   484    {
       
   485         
       
   486     TPtrC8 p(KNullDesC8);
       
   487     switch(aToken)
       
   488     {
       
   489 
       
   490     case    KImpsWbXmlURL:          // URL
       
   491             if(aValue == KImpsWbXmlHttp)    return TPtrC8(KImpsHttp8);     // http
       
   492             if(aValue == KImpsWbXmlHttps)   return TPtrC8(KImpsHttps8);    // Https
       
   493             break;
       
   494         
       
   495     default:    
       
   496         return(p);   
       
   497         
       
   498     }
       
   499 
       
   500     return(p);
       
   501    
       
   502     }
       
   503 
       
   504 // ---------------------------------------------------------
       
   505 // CImpsWbXmlData::GetImpsEngineDescValue
       
   506 // method returns possible string corresponding to given token
       
   507 // ---------------------------------------------------------
       
   508 //
       
   509 TPtrC CImpsWbXmlData::GetImpsEngineDescValue(TInt aToken,TInt aValue)
       
   510    {
       
   511     
       
   512     TPtrC p(KNullDesC);
       
   513     
       
   514     switch(aToken)
       
   515     {
       
   516         
       
   517     case    KImpsWbXmlOnlineStatus:                                        // OnlineStatus
       
   518     case    KImpsWbXmlRegistration:                                        // Registration
       
   519             if(aValue == KImpsWbXmlTrue)        return TPtrC(KImpsTrue);       // True
       
   520             if(aValue == KImpsWbXmlFalse)       return TPtrC(KImpsFalse);      // False
       
   521             break;
       
   522 
       
   523     case    KImpsWbXmlClientInfo:                                           // ClientInfo
       
   524             if(aValue == KImpsWbXmlMobilePhone) return TPtrC(KImpsMobilePhone); // MobilePhone
       
   525             if(aValue == KImpsWbXmlComputer)    return TPtrC(KImpsComputer);    // Computer
       
   526             if(aValue == KImpsWbXmlPda)         return TPtrC(KImpsPda);         // Pda
       
   527             if(aValue == KImpsWbXmlCli)         return TPtrC(KImpsCli);         // Cli
       
   528             if(aValue == KImpsWbXmlOther)       return TPtrC(KImpsOther);       // Other
       
   529             break;
       
   530 
       
   531     case    KImpsWbXmlUserAvailability:                                     // UserAvailabilty
       
   532             if(aValue == KImpsWbXmlAvailable)   return TPtrC(KImpsAvailable);          // 
       
   533             if(aValue == KImpsWbXmlNotAvailable) return TPtrC(KImpsNotAvailable);     // 
       
   534             if(aValue == KImpsWbXmlDiscreet)    return TPtrC(KImpsDiscreet);          // 
       
   535             break;
       
   536 
       
   537     case    KImpsWbXmlURL:                                                  // URL
       
   538             if(aValue == KImpsWbXmlHttp)        return TPtrC(KImpsHttp);        // Http
       
   539             if(aValue == KImpsWbXmlHttps)       return TPtrC(KImpsHttps);       // Https
       
   540             break;
       
   541 
       
   542     case    KImpsWbXmlName:                                                 // Name
       
   543             if(aValue == KImpsWbXmlNameValue)      return TPtrC(KImpsName);        // extension Name
       
   544             if(aValue == KImpsWbXmlType)           return TPtrC(KImpsType);        // Type
       
   545             if(aValue == KImpsWbXmlAccessType)     return TPtrC(KImpsAccessType);  // Type
       
   546             if(aValue == KImpsWbXmlTopic)          return TPtrC(KImpsTopic);       // Topic
       
   547             if(aValue == KImpsWbXmlPrivateMessaging)    return TPtrC(KImpsPrivateMessaging);    // PrivateMessaging
       
   548             if(aValue == KImpsWbXmlSearchable)     return TPtrC(KImpsSearchable);   // Searchable
       
   549             if(aValue == KImpsWbXmlActiveUsers)    return TPtrC(KImpsActiveUsers);  // ActiveUsers
       
   550             if(aValue == KImpsWbXmlMaxActiveUsers) return TPtrC(KImpsMaxActiveUsers);  // MaxActiveUsers
       
   551             if(aValue == KImpsWbXmlAutoJoin)       return TPtrC(KImpsAutoJoin);        // AutoJoin
       
   552             if(aValue == KImpsWbXmlPrivilegeLevel) return TPtrC(KImpsPrivilegeLevel);    // PriviledgeLevel
       
   553             if(aValue == KImpsWbXmlDisplayName)    return TPtrC(KImpsDisplayName);      // DisplayName
       
   554             if(aValue == KImpsWbXmlDefault)        return TPtrC(KImpsDefault);          // Default
       
   555             if(aValue == KImpsWbXmlAutoDelete)     return TPtrC(KImpsAutoDelete);       // AutoDelete
       
   556             if(aValue == KImpsWbXmlValidityValue)       return TPtrC(KImpsValidity);         // Validity
       
   557              
       
   558             break;
       
   559 
       
   560     case    KImpsWbXmlValue:                                                // Value
       
   561             if(aValue == KImpsWbXmlTrue)        return TPtrC(KImpsTrue);        // T
       
   562             if(aValue == KImpsWbXmlFalse)       return TPtrC(KImpsFalse);       // F
       
   563             if(aValue == KImpsWbXmlOpen)        return TPtrC(KImpsOpen16);      // Open
       
   564             if(aValue == KImpsWbXmlRestricted)  return TPtrC(KImpsRestricted);  // Restricted
       
   565             if(aValue == KImpsWbXmlPublic)      return TPtrC(KImpsPublic);      // Public
       
   566             if(aValue == KImpsWbXmlPrivate)     return TPtrC(KImpsPrivate);     // Private
       
   567             if(aValue == KImpsWbXmlAdminValue)  return TPtrC(KImpsAdmin);       // Admin
       
   568             if(aValue == KImpsWbXmlModValue)    return TPtrC(KImpsMod);         // Mod
       
   569             break;
       
   570 
       
   571     case    KImpsWbXmlContentType:                                          // ContentType
       
   572     case    KImpsWbXmlAcceptedContentType:                                  // AcceptedContentType
       
   573             if(aValue == KImpsWbXmlTextPlain)   return TPtrC(KImpstextplain);   // text/plain
       
   574             if (aValue == KImpsWbXmlApplicationVndWapMmsMessage)	return TPtrC(KImpsApplicationVndWapMmsMessage);
       
   575             if (aValue == KImpsWbXmlApplicationXSms)	return TPtrC(KImpsApplicationXSms);
       
   576             break;
       
   577     
       
   578     default:
       
   579             if ( aValue == KImpsWbXmlIM ) 
       
   580                 {
       
   581                 return TPtrC(KImpsIM);
       
   582                 }
       
   583             return(p);   
       
   584 
       
   585     }
       
   586     
       
   587     return(p);
       
   588    
       
   589     }
       
   590 
       
   591 // ---------------------------------------------------------
       
   592 // CImpsWbXmlData::GetImpsEngineValue
       
   593 // method returns imps engine value corresponding to
       
   594 // given string
       
   595 // ---------------------------------------------------------
       
   596 //
       
   597 TUint32 CImpsWbXmlData::GetImpsEngineValue(TInt aToken,TPtrC8 aValue)
       
   598    {
       
   599 
       
   600     
       
   601     switch(aToken)
       
   602     {
       
   603 
       
   604     case    KImpsWbXmlStatus:                                  // Status
       
   605             if(!aValue.CompareF(TPtrC8(KImpsOpen)))    return(1);   // True
       
   606             if(!aValue.CompareF(TPtrC8(KImpsClosed)))  return(2);   // False
       
   607             break;
       
   608 
       
   609     case    KImpsWbXmlDigestSchema:                                 // DigestSchema
       
   610             if(!aValue.CompareF(TPtrC8(KImpsPWD)))     return(EImpsPWD); // PWD
       
   611             if(!aValue.CompareF(TPtrC8(KImpsSHA)))     return(EImpsSHA); // SHA
       
   612             if(!aValue.CompareF(TPtrC8(KImpsMD4)))     return(EImpsMD4); // MD4
       
   613             if(!aValue.CompareF(TPtrC8(KImpsMD5)))     return(EImpsMD5); // MD5
       
   614             if(!aValue.CompareF(TPtrC8(KImpsMD6)))     return(EImpsMD6); // MD6
       
   615             break;
       
   616 
       
   617     case    KImpsWbXmlSupportedBearer:                                 // SupportedBearer
       
   618             if(!aValue.CompareF(TPtrC8(KImpsHTTPS)))   return(EImpsHTTPS);  // HTTPS
       
   619             break;
       
   620         
       
   621     case    KImpsWbXmlContentEncoding:
       
   622     case	KImpsWbXmlAcceptedTransferEncoding:
       
   623         if(!aValue.CompareF(TPtrC8(KImpsBASE64_8)))   return(EImpsBASE64); // BASE64
       
   624         if(!aValue.CompareF(TPtrC8(KImpsNone_8)))   return(EImpsNone);  // None
       
   625         break;
       
   626             
       
   627     default:
       
   628             break;
       
   629     
       
   630     }
       
   631 
       
   632     return(KImpsWbXmlDataNotFound);
       
   633 
       
   634     }
       
   635 
       
   636 
       
   637 // ---------------------------------------------------------
       
   638 // CImpsWbXmlData::GetWbXmlAttributeTokenValue
       
   639 // method returns attribute token value (integer)
       
   640 // ---------------------------------------------------------
       
   641 //
       
   642 TUint CImpsWbXmlData::GetWbXmlAttributeTokenValue(TInt aToken, TImpsCspVersion aCspVersion)
       
   643    {
       
   644     
       
   645     switch(aToken)
       
   646     {
       
   647         case    KImpsWbXmlWV_CSP_Message:       // WV-CSP-Message
       
   648             return aCspVersion == EImpsCspVersion11 ? KImpsWbXmlCsp11Xmlns : KImpsWbXmlCsp12Xmlns;
       
   649 
       
   650         case    KImpsWbXmlPresenceSubList:      // PresenceSubList
       
   651             return aCspVersion == EImpsCspVersion11 ? KImpsWbXmlPa11Xmlns : KImpsWbXmlPa12Xmlns;
       
   652 
       
   653         case    KImpsWbXmlTransactionContent:   // TransactionContent
       
   654             return aCspVersion == EImpsCspVersion11 ? KImpsWbXmlTrc11Xmlns : KImpsWbXmlTrc12Xmlns;
       
   655             
       
   656 //    case KImpsWbXmlExtBlock: 
       
   657             
       
   658         default:
       
   659             break;
       
   660         
       
   661     }
       
   662     
       
   663     return(0);   
       
   664    
       
   665     }
       
   666 
       
   667 // ---------------------------------------------------------
       
   668 // CImpsWbXmlData::GetWbXmlAttributeStringValue
       
   669 // method returns attribute token value (string)
       
   670 // ---------------------------------------------------------
       
   671 //
       
   672 TPtrC8 CImpsWbXmlData::GetWbXmlAttributeStringValue(TInt aToken, TImpsCspVersion aCspVersion)
       
   673    {
       
   674     
       
   675     TPtrC8 p(KNullDesC8);
       
   676     
       
   677     switch(aToken)
       
   678     {
       
   679         case    KImpsWbXmlWV_CSP_Message:       // WV-CSP-Message
       
   680         case    KImpsWbXmlPresenceSubList:      // PresenceSubList
       
   681         case    KImpsWbXmlTransactionContent:   // TransactionContent
       
   682             return aCspVersion == EImpsCspVersion11 ? TPtrC8(KImpsMessageVersion11): TPtrC8(KImpsMessageVersion12);
       
   683 
       
   684             default:
       
   685             break;
       
   686         
       
   687     }
       
   688     
       
   689     return(p);   
       
   690    
       
   691     }
       
   692 
       
   693 /*
       
   694 const TDesC8& CImpsWbXmlData::GetAttributeStringByToken(TInt aToken)
       
   695     {
       
   696     switch (aToken) 
       
   697         {
       
   698         case KImpsWbXmlTrc12Xmlns:
       
   699             return KImpsTRC12Xmlns();
       
   700             break;
       
   701         case KImpsWbXmlPa12Xmlns:
       
   702             return KImpsPA12Xmlns();
       
   703             break;
       
   704 
       
   705         case KImpsWbXmlCsp12Xmlns:
       
   706             return KImpsCSP12Xmlns();
       
   707         default:;
       
   708         }
       
   709     }
       
   710 */
       
   711 //  End of File  
       
   712