IMPSengine/messageencoder/wbxml/src/ImpsWbXmlData.cpp
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IMPSengine/messageencoder/wbxml/src/ImpsWbXmlData.cpp	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,712 @@
+/*
+* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Provides methods for CSP WBXML data handling
+*
+*
+*/
+
+
+// INCLUDE FILES
+#include    "ImpsWbXmlData.h"
+#include    "ImpsCommonEnums.h"
+#include    "ImpsWbXmlCommon.h"
+#include    "ImpsPresence.h"
+#include    "ImpsFundamental.h"
+
+// ==================== LOCAL FUNCTIONS ====================
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CImpsWbXmlData::CImpsWbXmlData()
+    {
+
+    }
+
+// default constructor can leave.
+void CImpsWbXmlData::ConstructL()
+    {
+
+    }
+
+// Two-phased constructor.
+CImpsWbXmlData* CImpsWbXmlData::NewL()
+    {
+     
+    CImpsWbXmlData* self = new (ELeave) CImpsWbXmlData;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    
+    }
+
+    
+// Destructor
+CImpsWbXmlData::~CImpsWbXmlData()
+    {
+    
+    }
+
+
+// ---------------------------------------------------------
+// CImpsWbXmlData::GetWbXmlElementValue
+// method returns wbxml element value token corresponding to
+// given string
+// ---------------------------------------------------------
+//
+TUint32 CImpsWbXmlData::GetWbXmlElementValue(TInt aToken,TDesC*& aValue)
+   {
+
+    switch(aToken)
+    {
+
+    case    KImpsWbXmlOnlineStatus:                                             // OnlineStatus
+    case    KImpsWbXmlRegistration:                                             // Registration
+            if(!aValue->CompareF(KImpsTrue))         return(KImpsWbXmlTrue);         // True
+            if(!aValue->CompareF(KImpsFalse))        return(KImpsWbXmlFalse);        // False
+            break;
+
+    case    KImpsWbXmlClientInfo:                                               // ClientInfo
+            if(!aValue->CompareF(KImpsMobilePhone))  return(KImpsWbXmlMobilePhone);  // MobilePhone
+            if(!aValue->CompareF(KImpsComputer))     return(KImpsWbXmlComputer);     // Computer
+            if(!aValue->CompareF(KImpsPda))          return(KImpsWbXmlPda);          // Pda
+            if(!aValue->CompareF(KImpsCli))          return(KImpsWbXmlCli);          // Cli
+            if(!aValue->CompareF(KImpsOther))        return(KImpsWbXmlOther);        // Other
+            break;
+
+    case    KImpsWbXmlUserAvailability:                                         // UserAvailabilty
+            if(!aValue->CompareF(KImpsAvailable))    return(KImpsWbXmlAvailable); 
+            if(!aValue->CompareF(KImpsNotAvailable)) return(KImpsWbXmlNotAvailable); 
+            if(!aValue->CompareF(KImpsDiscreet))     return(KImpsWbXmlDiscreet);
+            break;
+
+    case    KImpsWbXmlName:                                                     // Name
+            if(!aValue->CompareF(KImpsName))             return(KImpsWbXmlNameValue);        // extension Name
+            if(!aValue->CompareF(KImpsType))             return(KImpsWbXmlType);             // Type
+            if(!aValue->CompareF(KImpsAccessType))       return(KImpsWbXmlAccessType);       // AccessType
+            if(!aValue->CompareF(KImpsTopic))            return(KImpsWbXmlTopic);            // Topic
+            if(!aValue->CompareF(KImpsPrivateMessaging)) return(KImpsWbXmlPrivateMessaging); // PrivateMessaging
+            if(!aValue->CompareF(KImpsSearchable))       return(KImpsWbXmlSearchable);       // Searchable
+            if(!aValue->CompareF(KImpsActiveUsers))      return(KImpsWbXmlActiveUsers);      // ActiveUsers
+            if(!aValue->CompareF(KImpsMaxActiveUsers))   return(KImpsWbXmlMaxActiveUsers);   // MaxActiveUsers
+            if(!aValue->CompareF(KImpsAutoJoin))         return(KImpsWbXmlAutoJoin);         // AutoJoin
+            if(!aValue->CompareF(KImpsPrivilegeLevel))   return(KImpsWbXmlPrivilegeLevel);   // PriviledgeLevel
+            if(!aValue->CompareF(KImpsAutoDelete))   	 return(KImpsWbXmlAutoDelete);       // AutoDelete
+            if(!aValue->CompareF(KImpsValidity))   	 	 return(KImpsWbXmlValidityValue);    // Validity
+            break;
+
+    case    KImpsWbXmlAcceptedTransferEncoding:                                         // AcceptedTransferEncoding
+    case    KImpsWbXmlContentEncoding:                                                  // ContentEncoding
+            if(!aValue->CompareF(KImpsBASE64))           return(KImpsWbXmlBASE64);           // BASE64
+            if(!aValue->CompareF(KImpsApplicationVndWapMmsMessage))	return KImpsWbXmlApplicationVndWapMmsMessage;
+            if(!aValue->CompareF(KImpsApplicationXSms))	 return KImpsWbXmlApplicationXSms;
+            break;
+
+    case    KImpsWbXmlAcceptedContentType:                                              // AcceptedContentType
+    case    KImpsWbXmlContentType:                                                      // ContentType
+            if(!aValue->CompareF(KImpstextplain))        return(KImpsWbXmlTextPlain);        // text/plain
+            break;
+
+    case    KImpsWbXmlValue:                                                            // Value
+            if(!aValue->CompareF(KImpsTrue))             return(KImpsWbXmlTrue);             // T
+            if(!aValue->CompareF(KImpsFalse))            return(KImpsWbXmlFalse);            // F
+            if(!aValue->CompareF(KImpsOpen16))           return(KImpsWbXmlOpen);             // Open
+            if(!aValue->CompareF(KImpsRestricted))       return(KImpsWbXmlRestricted);       // Restricted
+            if(!aValue->CompareF(KImpsPublic))           return(KImpsWbXmlPublic);           // Public
+            if(!aValue->CompareF(KImpsPrivate))          return(KImpsWbXmlPrivate);          // Private
+            if(!aValue->CompareF(KImpsAdmin))            return(KImpsWbXmlAdminValue);       // Admin
+            if(!aValue->CompareF(KImpsMod))              return(KImpsWbXmlModValue);         // Mod
+            break;
+
+        default:
+            break;
+
+        }
+        
+    return(KImpsWbXmlDataNotFound);
+    
+    }
+
+// ---------------------------------------------------------
+// CImpsWbXmlData::GetWbXmlElementValue
+// method returns wbxml element value token corresponding to given
+// imps engine value and possible max string length
+// ---------------------------------------------------------
+//
+TUint32 CImpsWbXmlData::GetWbXmlElementValue(TInt aToken,TUint32 aValue, TInt& aMaxLength)
+   {
+
+    switch(aToken)
+    {
+
+    case    KImpsWbXmlSessionType:                              // SessionType
+            if(aValue == EImpsInband) return(KImpsWbXmlInband);     // Inband
+            if(aValue == EImpsOutband) return(KImpsWbXmlOutband);   // Outband
+//            break;
+
+    case    KImpsWbXmlUserID:                           // UserID
+    case    KImpsWbXmlName:                             // Name
+    case    KImpsWbXmlSessionID:                        // SessionID
+    case    KImpsWbXmlGroupID:                          // GroupID
+    case    KImpsWbXmlMessageID:                        // MessageID
+    case    KImpsWbXmlTransactionID:                    // TransactionID
+    case    KImpsWbXmlPassword:                         // Password
+    case    KImpsWbXmlSessionCookie:                    // SessionCookie
+    case    KImpsWbXmlSName:                            // SName
+    case    KImpsWbXmlValue:                            // Value
+            aMaxLength = KImpsWbXmlMaxLength50;             // max 50 characters
+            break;
+
+    case    KImpsWbXmlSearchString:                     // SearchString
+    case    KImpsWbXmlMessageURI:                       // MessageURI
+    case    KImpsWbXmlContactList:                      // ContactList
+    case    KImpsWbXmlDefaultContactList:               // DefaultContactList
+    case    KImpsWbXmlInviteID:                         // InviteID
+            aMaxLength = KImpsWbXmlMaxLength100;            // max 100 characters
+            break;
+
+    case    KImpsWbXmlDescription:                      // Description
+    case    KImpsWbXmlDigestBytes:                      // DigestBytes
+    case    KImpsWbXmlNonce:                            // Nonce
+            aMaxLength = KImpsWbXmlMaxLength200;            // max 200 characters
+            break;
+
+    case    KImpsWbXmlInviteNote:                       // InviteNote
+    case    KImpsWbXmlResponseNote:                     // ResponseNote
+            aMaxLength = KImpsWbXmlMaxLength400;            // max 400 characters
+            break;
+
+    case    KImpsWbXmlTransactionMode:  // TransactionMode
+            if(aValue == EImpsRequest) return(KImpsWbXmlRequest);   // Request
+            if(aValue == EImpsResponse) return(KImpsWbXmlResponse); // Response
+//            break;
+
+    case    KImpsWbXmlInitialDeliveryMethod:            // InitialDeliveryMethod
+    case    KImpsWbXmlDeliveryMethod:                   // DeliveryMethod
+            if(aValue == EImpsP) return(KImpsWbXmlDeliveryMethodP); // P
+            if(aValue == EImpsN) return(KImpsWbXmlDeliveryMethodN); // N
+//            break;
+
+    case    KImpsWbXmlPoll:                             // Poll
+    case    KImpsWbXmlQualifier:                        // Qualifier
+    case    KImpsWbXmlJoinGroup:                        // JoinGroup
+    case    KImpsWbXmlJoinedRequest:                    // JoinedRequest
+    case    KImpsWbXmlInUse:                            // InUse
+    case    KImpsWbXmlCapabilityRequest:                // CapabilityRequest
+    case    KImpsWbXmlAllFunctionsRequest:              // AllFunctionsRequest
+    case    KImpsWbXmlAnyContent:                       // AnyContent
+    case    KImpsWbXmlAcceptance:                       // Acceptance
+    case    KImpsWbXmlCompletionFlag:                   // CompletionFlag
+    case    KImpsWbXmlDefaultList:                      // DefaultList
+    case    KImpsWbXmlDeliveryReport:                   // DeliveryReport
+    case    KImpsWbXmlSubscribeNotification:            // SubscribeNotification
+    case KImpsWbxmlReceiveList: 
+    case KImpsWbxmlAutoSubscribe:
+            if(aValue == TRUE) return(KImpsWbXmlTrue);      // True
+            if(aValue == FALSE) return(KImpsWbXmlFalse);    // False
+//            break;
+
+    case    KImpsWbXmlClientType:                                       // ClientType
+            if(aValue == EImpsMOBILE_PHONE) return(KImpsWbXmlMobilePhone);  // True
+            if(aValue == EImpsCOMPUTER)     return(KImpsWbXmlComputer);     // Computer
+            if(aValue == EImpsPDA)          return(KImpsWbXmlPda);          // Pda
+            if(aValue == EImpsCLI)          return(KImpsWbXmlCli);          // Cli
+            if(aValue == EImpsOTHER)        return(KImpsWbXmlOther);        // Other
+//            break;
+
+    case    KImpsWbXmlInviteType:                                   // InviteType
+            if(aValue == EImpsGR)           return(KImpsWbXmlGR);       // GR
+            if(aValue == EImpsIM)           return(KImpsWbXmlIM);       // IM
+            if(aValue == EImpsPR)           return(KImpsWbXmlPR);       // PR
+            if(aValue == EImpsSC)           return(KImpsWbXmlSC);       // SC
+//            break;
+
+    case    KImpsWbXmlSupportedBearer:                              // SupportedBearer
+            if(aValue == EImpsSMS)          return(KImpsWbXmlSMS);      // SMS
+            if(aValue == EImpsWSP)          return(KImpsWbXmlWSP);      // WSP
+            if(aValue == EImpsHTTP)         return(KImpsWbXmlHTTP);     // HTTP
+            // if(aValue == EImpsHTTPS)     return(KImpsWbXmlHTTPS);    // HTTPS
+//            break;
+
+    case    KImpsWbXmlSupportedCIRMethod:                           // SupportedCIRMethod
+            if(aValue == EImpsWAPSMS)       return(KImpsWbXmlWAPSMS);   // WAPSMS
+            if(aValue == EImpsWAPUDP)       return(KImpsWbXmlWAPUDP);   // WAPUDP
+            if(aValue == EImpsSUDP)         return(KImpsWbXmlSUDP);     // SUDP
+            if(aValue == EImpsSTCP)         return(KImpsWbXmlSTCP);     // STCP
+//            break;
+
+    case    KImpsWbXmlCap:                                          // Cap
+            if(aValue == EImpsCapSMS)       return(KImpsWbXmlSMS);      // SMS
+            if(aValue == EImpsCapMMS)       return(KImpsWbXmlMMS);      // MMS
+            if(aValue == EImpsCapIM)        return(KImpsWbXmlCapIM);    // IM
+            if(aValue == EImpsCapEMAIL)     return(KImpsWbXmlEMAIL);    // EMAIL
+            if(aValue == EImpsCapCALL)      return(KImpsWbXmlCALL);     // CALL
+//            break;
+
+    case    KImpsWbXmlStatus:                                       // Presence Status
+            if(aValue == 1) return(KImpsWbXmlOpen);                     // Open
+            if(aValue == 2) return(KImpsWbXmlClosed);                   // Closed
+//            break;
+
+    case    KImpsWbXmlSubscribeType:                                    // SubscribeType
+            if(aValue == EImpsG)                    return(KImpsWbXmlG);    // G
+            if(aValue == EImpsS)                    return(KImpsWbXmlS);    // S
+            if(aValue == EImpsU)                    return(KImpsWbXmlU);    // U
+//            break;
+
+    case    KImpsWbXmlSearchElement:                                                    // SearchElement
+            if(aValue == EImpsUserID)               return(KImpsWbXmlUSER_ID);              // USER_ID
+            if(aValue == EImpsUserFirstName)        return(KImpsWbXmlUSER_FIRST_NAME);      // USER_FIRST_NAME
+            if(aValue == EImpsUserLastName)         return(KImpsWbXmlUSER_LAST_NAME);       // USER_LAST_NAME
+            if(aValue == EImpsUserEmailAddress)     return(KImpsWbXmlUSER_EMAIL_ADDRESS);   // USER_EMAIL_ADDRESS
+            if(aValue == EImpsUserAlias)            return(KImpsWbXmlUSER_ALIAS);           // USER_ALIAS
+            if(aValue == EImpsUserOnlineStatus)     return(KImpsWbXmlUSER_ONLINE_STATUS);   // USER_ONLINE_STATUS
+            if(aValue == EImpsUserMobileNumber)     return(KImpsWbXmlUSER_MOBILE_NUMBER);   // USER_MOBILE_NUMBER
+            if(aValue == EImpsGroupID)              return(KImpsWbXmlGROUP_ID);             // GROUP_ID
+            if(aValue == EImpsGroupName)            return(KImpsWbXmlGROUP_NAME);           // GROUP_NAME
+            if(aValue == EImpsGroupTopic)           return(KImpsWbXmlGROUP_TOPIC);          // GROUP_TOPIC
+            if(aValue == EImpsGroupUserIDJoined)    return(KImpsWbXmlGROUP_USER_ID_JOINED); // GROUP_USER_ID_JOINED
+            if(aValue == EImpsGroupUserIDOwner)     return(KImpsWbXmlGROUP_USER_ID_OWNER);  // GROUP_USER_ID_OWER
+//            break;
+
+    case    KImpsWbXmlURL:                                      // URL
+            aMaxLength = KImpsWbXmlMaxLength200;                    // max 200 characters
+            return(KImpsWbXmlHttp);                                 // http://
+//            break;
+
+    case    KImpsWbXmlAcceptedTransferEncoding:                 // AcceptedTransferEncoding
+    case    KImpsWbXmlContentEncoding:                          // ContentEncoding
+            aMaxLength = KImpsWbXmlMaxLength50;                     // default max length = 50
+            if(aValue == EImpsNone) return(KImpsWbXmlNone);         // None
+            if(aValue == EImpsBASE64) return(KImpsWbXmlBASE64);     // BASE64
+//            break;
+
+    case    KImpsWbXmlContentData:
+        case KImpsWbXmlDirectContent:
+        case KImpsWbXmlReferredContent:
+            aMaxLength = KImpsWbXmlNoMaxLength;                     // no max length
+            return(KImpsWbXmlDataNotFound);
+//            break;
+
+        default:
+            aMaxLength = KImpsWbXmlNoMaxLength;                     // no max length
+//            return(KImpsWbXmlDataNotFound);
+            break;
+        }
+
+        return(KImpsWbXmlDataNotFound);
+   }
+
+
+// ---------------------------------------------------------
+// CImpsWbXmlData::GetImpsEngineValue
+// method returns Imps engine value corresponding to given
+// wbxml element value token if exists
+// ---------------------------------------------------------
+//
+TInt CImpsWbXmlData::GetImpsEngineValue(TInt aToken,TInt aValue)
+   {
+
+
+    switch(aToken)
+    {
+
+    case    KImpsWbXmlSessionType:                              // SessionType
+            if(aValue == KImpsWbXmlInband)  return(EImpsInband);    // Inband
+            if(aValue == KImpsWbXmlOutband) return(EImpsOutband);   // Outband
+            break;
+
+    case    KImpsWbXmlTransactionMode:  // TransactionMode
+            if(aValue == KImpsWbXmlRequest)  return(EImpsRequest);  // Request
+            if(aValue == KImpsWbXmlResponse) return(EImpsResponse); // Response
+            break;
+
+    case    KImpsWbXmlInitialDeliveryMethod:                        // InitialDeliveryMethod
+    case    KImpsWbXmlDeliveryMethod:                               // DeliveryMethod
+            if(aValue == KImpsWbXmlDeliveryMethodP)  return(EImpsP);    // P
+            if(aValue == KImpsWbXmlDeliveryMethodN)  return(EImpsN);    // N
+            break;
+
+    case    KImpsWbXmlPoll:                                 // Poll
+    case    KImpsWbXmlQualifier:                            // Qualifier
+    case    KImpsWbXmlCapabilityRequest:                    // CapabilityRequest
+    case    KImpsWbXmlAllFunctionsRequest:                  // AllFunctionsRequest
+    case    KImpsWbXmlJoinGroup:                            // JoinGroup
+    case    KImpsWbXmlJoinedRequest:                        // JoinedRequest
+    case    KImpsWbXmlInUse:                                // InUse
+    case    KImpsWbXmlAnyContent:                           // AnyContent
+    case    KImpsWbXmlAcceptance:                           // Acceptance
+    case    KImpsWbXmlCompletionFlag:                       // CompletionFlag
+    case    KImpsWbXmlDefaultList:                          // DefaultList
+    case    KImpsWbXmlDeliveryReport:                       // DeliveryReport
+    case    KImpsWbXmlSubscribeNotification:                // SubscribeNotification
+            if(aValue == KImpsWbXmlTrue)  return(ETrue);        // True
+            if(aValue == KImpsWbXmlFalse) return(EFalse);       // False
+            break;
+
+    case    KImpsWbXmlClientType:           // ClientType
+            if(aValue == KImpsWbXmlMobilePhone) return(EImpsMOBILE_PHONE);  // MobilePhone
+            if(aValue == KImpsWbXmlComputer)    return(EImpsCOMPUTER);      // Computer
+            if(aValue == KImpsWbXmlPda)         return(EImpsPDA);           // Pda
+            if(aValue == KImpsWbXmlCli)         return(EImpsCLI);           // Cli
+            if(aValue == KImpsWbXmlOther)       return(EImpsOTHER);         // Other
+            break;
+
+    case    KImpsWbXmlInviteType:           // InviteType
+            if(aValue == KImpsWbXmlGR )         return(EImpsGR);        // GR
+            if(aValue == KImpsWbXmlIM )         return(EImpsIM);        // IM
+            if(aValue == KImpsWbXmlPR )         return(EImpsPR);        // PR
+            if(aValue == KImpsWbXmlSC )         return(EImpsSC);        // SC
+            break;
+
+    case    KImpsWbXmlSupportedBearer:      // SupportedBearer
+            if(aValue == KImpsWbXmlSMS )        return(EImpsSMS);       // SMS
+            if(aValue == KImpsWbXmlWSP )        return(EImpsWSP);       // WSP
+            if(aValue == KImpsWbXmlHTTP )       return(EImpsHTTP);      // HTTP
+            // if(aValue == KImpsWbXmlHTTPS )       return(EImpsHTTPS);     // HTTPS
+            break;
+
+    case    KImpsWbXmlSupportedCIRMethod:   // SupportedCIRMethod
+            if(aValue == KImpsWbXmlWAPSMS)      return(EImpsWAPSMS);    // WAPSMS
+            if(aValue == KImpsWbXmlWAPUDP)      return(EImpsWAPUDP);    // WAPUDP
+            if(aValue == KImpsWbXmlSUDP)        return(EImpsSUDP);      // SUDP
+            if(aValue == KImpsWbXmlSTCP)        return(EImpsSTCP);      // STCP
+            break;
+
+    case    KImpsWbXmlSubscribeType:        // SubscribeType
+            if(aValue == KImpsWbXmlG)           return(EImpsG);         // G
+            if(aValue == KImpsWbXmlS)           return(EImpsS);         // S
+            if(aValue == KImpsWbXmlU)           return(EImpsU);         // U
+            break;
+
+    case    KImpsWbXmlSearchElement:        // SearchElement
+            if(aValue == KImpsWbXmlUSER_ID )                return(EImpsUserID);                // USER_ID
+            if(aValue == KImpsWbXmlUSER_FIRST_NAME )        return(EImpsUserFirstName);         // USER_FIRST_NAME
+            if(aValue == KImpsWbXmlUSER_LAST_NAME )         return(EImpsUserLastName);          // USER_LAST_NAME
+            if(aValue == KImpsWbXmlUSER_EMAIL_ADDRESS )     return(EImpsUserEmailAddress);      // USER_EMAIL_ADDRESS
+            if(aValue == KImpsWbXmlUSER_ALIAS )             return(EImpsUserAlias);             // USER_ALIAS
+            if(aValue == KImpsWbXmlUSER_ONLINE_STATUS )     return(EImpsUserOnlineStatus);      // USER_ONLINE_STATUS
+            if(aValue == KImpsWbXmlUSER_MOBILE_NUMBER )     return(EImpsUserMobileNumber);      // USER_MOBILE_NUMBER
+            if(aValue == KImpsWbXmlGROUP_ID )               return(EImpsGroupID);               // GROUP_ID
+            if(aValue == KImpsWbXmlGROUP_NAME )             return(EImpsGroupName);             // GROUP_NAME
+            if(aValue == KImpsWbXmlGROUP_TOPIC )            return(EImpsGroupTopic);            // GROUP_TOPIC
+            if(aValue == KImpsWbXmlGROUP_USER_ID_JOINED )   return(EImpsGroupUserIDJoined);     // GROUP_USER_ID_JOINED
+            if(aValue == KImpsWbXmlGROUP_USER_ID_OWNER )    return(EImpsGroupUserIDOwner);      // GROUP_USER_ID_OWER
+            break;
+
+    case    KImpsWbXmlAcceptedTransferEncoding:                 // AcceptedTransferEncoding
+    case    KImpsWbXmlContentEncoding:                          // ContentEncoding
+            if(aValue ==KImpsWbXmlNone )    return(EImpsNone);      // None
+            if(aValue ==KImpsWbXmlBASE64 )  return(EImpsBASE64);    // BASE64 
+            break;
+
+    case    KImpsWbXmlCap:                  // Cap
+            if(aValue == KImpsWbXmlSMS)     return(EImpsCapSMS);    // SMS
+            if(aValue == KImpsWbXmlMMS)     return(EImpsCapMMS);    // MMS
+            if(aValue == KImpsWbXmlCapIM)   return(EImpsCapIM);     // IM / (CommC/Cap)
+            if(aValue == KImpsWbXmlIM)
+            {
+                TInt value = EImpsCapIM;
+                if((aToken & KImpsMaskCodePage) == KImpsCodePagePresence)
+                {
+                    value = EImpsCapIM;
+                }
+                return(value);
+            }
+            if(aValue == KImpsWbXmlEMAIL)   return(EImpsCapEMAIL);  // EMAIL
+            if(aValue == KImpsWbXmlCALL)    return(EImpsCapCALL);   // CALL
+            break;
+
+    case    KImpsWbXmlStatus:                                   // Presence Status
+            if(aValue == KImpsWbXmlOpen)    return(1);              // Open
+            if(aValue == KImpsWbXmlClosed)  return(2);              // Closed
+            break;
+
+        default:
+            break;
+        }
+
+        return(KErrNotFound);   
+   }
+
+
+// ---------------------------------------------------------
+// CImpsWbXmlData::GetWbXmlStringValue
+// method returns possible string corresponding to given token
+// ---------------------------------------------------------
+//
+TPtrC8 CImpsWbXmlData::GetWbXmlStringValue(TInt aToken,TInt aValue)
+   {
+        
+    TPtrC8 p(KNullDesC8);
+    switch(aToken)
+    {
+
+    case    KImpsWbXmlDigestSchema:                                    // DigestSchema
+            if(aValue == EImpsPWD)          return TPtrC8(KImpsPWD);       // PWD
+            if(aValue == EImpsSHA)          return TPtrC8(KImpsSHA);       // SHA
+            if(aValue == EImpsMD4)          return TPtrC8(KImpsMD4);       // MD4
+            if(aValue == EImpsMD5)          return TPtrC8(KImpsMD5);       // MD4
+            if(aValue == EImpsMD6)          return TPtrC8(KImpsMD6);       // MD4
+            break;
+
+    case    KImpsWbXmlSupportedBearer:                                 // SupportedBearer
+            if(aValue == EImpsHTTPS)        return TPtrC8(KImpsHTTPS);     // HTTPS
+            break;
+
+        default:
+            return(p);   
+        }
+        return(p);
+   }
+
+// ---------------------------------------------------------
+// CImpsWbXmlData::GetImpsEngineDesc8Value
+// method returns possible prefix string corresponding to given token
+// ---------------------------------------------------------
+//
+TPtrC8 CImpsWbXmlData::GetImpsEngineDesc8Value(TInt aToken,TInt aValue)
+   {
+        
+    TPtrC8 p(KNullDesC8);
+    switch(aToken)
+    {
+
+    case    KImpsWbXmlURL:          // URL
+            if(aValue == KImpsWbXmlHttp)    return TPtrC8(KImpsHttp8);     // http
+            if(aValue == KImpsWbXmlHttps)   return TPtrC8(KImpsHttps8);    // Https
+            break;
+        
+    default:    
+        return(p);   
+        
+    }
+
+    return(p);
+   
+    }
+
+// ---------------------------------------------------------
+// CImpsWbXmlData::GetImpsEngineDescValue
+// method returns possible string corresponding to given token
+// ---------------------------------------------------------
+//
+TPtrC CImpsWbXmlData::GetImpsEngineDescValue(TInt aToken,TInt aValue)
+   {
+    
+    TPtrC p(KNullDesC);
+    
+    switch(aToken)
+    {
+        
+    case    KImpsWbXmlOnlineStatus:                                        // OnlineStatus
+    case    KImpsWbXmlRegistration:                                        // Registration
+            if(aValue == KImpsWbXmlTrue)        return TPtrC(KImpsTrue);       // True
+            if(aValue == KImpsWbXmlFalse)       return TPtrC(KImpsFalse);      // False
+            break;
+
+    case    KImpsWbXmlClientInfo:                                           // ClientInfo
+            if(aValue == KImpsWbXmlMobilePhone) return TPtrC(KImpsMobilePhone); // MobilePhone
+            if(aValue == KImpsWbXmlComputer)    return TPtrC(KImpsComputer);    // Computer
+            if(aValue == KImpsWbXmlPda)         return TPtrC(KImpsPda);         // Pda
+            if(aValue == KImpsWbXmlCli)         return TPtrC(KImpsCli);         // Cli
+            if(aValue == KImpsWbXmlOther)       return TPtrC(KImpsOther);       // Other
+            break;
+
+    case    KImpsWbXmlUserAvailability:                                     // UserAvailabilty
+            if(aValue == KImpsWbXmlAvailable)   return TPtrC(KImpsAvailable);          // 
+            if(aValue == KImpsWbXmlNotAvailable) return TPtrC(KImpsNotAvailable);     // 
+            if(aValue == KImpsWbXmlDiscreet)    return TPtrC(KImpsDiscreet);          // 
+            break;
+
+    case    KImpsWbXmlURL:                                                  // URL
+            if(aValue == KImpsWbXmlHttp)        return TPtrC(KImpsHttp);        // Http
+            if(aValue == KImpsWbXmlHttps)       return TPtrC(KImpsHttps);       // Https
+            break;
+
+    case    KImpsWbXmlName:                                                 // Name
+            if(aValue == KImpsWbXmlNameValue)      return TPtrC(KImpsName);        // extension Name
+            if(aValue == KImpsWbXmlType)           return TPtrC(KImpsType);        // Type
+            if(aValue == KImpsWbXmlAccessType)     return TPtrC(KImpsAccessType);  // Type
+            if(aValue == KImpsWbXmlTopic)          return TPtrC(KImpsTopic);       // Topic
+            if(aValue == KImpsWbXmlPrivateMessaging)    return TPtrC(KImpsPrivateMessaging);    // PrivateMessaging
+            if(aValue == KImpsWbXmlSearchable)     return TPtrC(KImpsSearchable);   // Searchable
+            if(aValue == KImpsWbXmlActiveUsers)    return TPtrC(KImpsActiveUsers);  // ActiveUsers
+            if(aValue == KImpsWbXmlMaxActiveUsers) return TPtrC(KImpsMaxActiveUsers);  // MaxActiveUsers
+            if(aValue == KImpsWbXmlAutoJoin)       return TPtrC(KImpsAutoJoin);        // AutoJoin
+            if(aValue == KImpsWbXmlPrivilegeLevel) return TPtrC(KImpsPrivilegeLevel);    // PriviledgeLevel
+            if(aValue == KImpsWbXmlDisplayName)    return TPtrC(KImpsDisplayName);      // DisplayName
+            if(aValue == KImpsWbXmlDefault)        return TPtrC(KImpsDefault);          // Default
+            if(aValue == KImpsWbXmlAutoDelete)     return TPtrC(KImpsAutoDelete);       // AutoDelete
+            if(aValue == KImpsWbXmlValidityValue)       return TPtrC(KImpsValidity);         // Validity
+             
+            break;
+
+    case    KImpsWbXmlValue:                                                // Value
+            if(aValue == KImpsWbXmlTrue)        return TPtrC(KImpsTrue);        // T
+            if(aValue == KImpsWbXmlFalse)       return TPtrC(KImpsFalse);       // F
+            if(aValue == KImpsWbXmlOpen)        return TPtrC(KImpsOpen16);      // Open
+            if(aValue == KImpsWbXmlRestricted)  return TPtrC(KImpsRestricted);  // Restricted
+            if(aValue == KImpsWbXmlPublic)      return TPtrC(KImpsPublic);      // Public
+            if(aValue == KImpsWbXmlPrivate)     return TPtrC(KImpsPrivate);     // Private
+            if(aValue == KImpsWbXmlAdminValue)  return TPtrC(KImpsAdmin);       // Admin
+            if(aValue == KImpsWbXmlModValue)    return TPtrC(KImpsMod);         // Mod
+            break;
+
+    case    KImpsWbXmlContentType:                                          // ContentType
+    case    KImpsWbXmlAcceptedContentType:                                  // AcceptedContentType
+            if(aValue == KImpsWbXmlTextPlain)   return TPtrC(KImpstextplain);   // text/plain
+            if (aValue == KImpsWbXmlApplicationVndWapMmsMessage)	return TPtrC(KImpsApplicationVndWapMmsMessage);
+            if (aValue == KImpsWbXmlApplicationXSms)	return TPtrC(KImpsApplicationXSms);
+            break;
+    
+    default:
+            if ( aValue == KImpsWbXmlIM ) 
+                {
+                return TPtrC(KImpsIM);
+                }
+            return(p);   
+
+    }
+    
+    return(p);
+   
+    }
+
+// ---------------------------------------------------------
+// CImpsWbXmlData::GetImpsEngineValue
+// method returns imps engine value corresponding to
+// given string
+// ---------------------------------------------------------
+//
+TUint32 CImpsWbXmlData::GetImpsEngineValue(TInt aToken,TPtrC8 aValue)
+   {
+
+    
+    switch(aToken)
+    {
+
+    case    KImpsWbXmlStatus:                                  // Status
+            if(!aValue.CompareF(TPtrC8(KImpsOpen)))    return(1);   // True
+            if(!aValue.CompareF(TPtrC8(KImpsClosed)))  return(2);   // False
+            break;
+
+    case    KImpsWbXmlDigestSchema:                                 // DigestSchema
+            if(!aValue.CompareF(TPtrC8(KImpsPWD)))     return(EImpsPWD); // PWD
+            if(!aValue.CompareF(TPtrC8(KImpsSHA)))     return(EImpsSHA); // SHA
+            if(!aValue.CompareF(TPtrC8(KImpsMD4)))     return(EImpsMD4); // MD4
+            if(!aValue.CompareF(TPtrC8(KImpsMD5)))     return(EImpsMD5); // MD5
+            if(!aValue.CompareF(TPtrC8(KImpsMD6)))     return(EImpsMD6); // MD6
+            break;
+
+    case    KImpsWbXmlSupportedBearer:                                 // SupportedBearer
+            if(!aValue.CompareF(TPtrC8(KImpsHTTPS)))   return(EImpsHTTPS);  // HTTPS
+            break;
+        
+    case    KImpsWbXmlContentEncoding:
+    case	KImpsWbXmlAcceptedTransferEncoding:
+        if(!aValue.CompareF(TPtrC8(KImpsBASE64_8)))   return(EImpsBASE64); // BASE64
+        if(!aValue.CompareF(TPtrC8(KImpsNone_8)))   return(EImpsNone);  // None
+        break;
+            
+    default:
+            break;
+    
+    }
+
+    return(KImpsWbXmlDataNotFound);
+
+    }
+
+
+// ---------------------------------------------------------
+// CImpsWbXmlData::GetWbXmlAttributeTokenValue
+// method returns attribute token value (integer)
+// ---------------------------------------------------------
+//
+TUint CImpsWbXmlData::GetWbXmlAttributeTokenValue(TInt aToken, TImpsCspVersion aCspVersion)
+   {
+    
+    switch(aToken)
+    {
+        case    KImpsWbXmlWV_CSP_Message:       // WV-CSP-Message
+            return aCspVersion == EImpsCspVersion11 ? KImpsWbXmlCsp11Xmlns : KImpsWbXmlCsp12Xmlns;
+
+        case    KImpsWbXmlPresenceSubList:      // PresenceSubList
+            return aCspVersion == EImpsCspVersion11 ? KImpsWbXmlPa11Xmlns : KImpsWbXmlPa12Xmlns;
+
+        case    KImpsWbXmlTransactionContent:   // TransactionContent
+            return aCspVersion == EImpsCspVersion11 ? KImpsWbXmlTrc11Xmlns : KImpsWbXmlTrc12Xmlns;
+            
+//    case KImpsWbXmlExtBlock: 
+            
+        default:
+            break;
+        
+    }
+    
+    return(0);   
+   
+    }
+
+// ---------------------------------------------------------
+// CImpsWbXmlData::GetWbXmlAttributeStringValue
+// method returns attribute token value (string)
+// ---------------------------------------------------------
+//
+TPtrC8 CImpsWbXmlData::GetWbXmlAttributeStringValue(TInt aToken, TImpsCspVersion aCspVersion)
+   {
+    
+    TPtrC8 p(KNullDesC8);
+    
+    switch(aToken)
+    {
+        case    KImpsWbXmlWV_CSP_Message:       // WV-CSP-Message
+        case    KImpsWbXmlPresenceSubList:      // PresenceSubList
+        case    KImpsWbXmlTransactionContent:   // TransactionContent
+            return aCspVersion == EImpsCspVersion11 ? TPtrC8(KImpsMessageVersion11): TPtrC8(KImpsMessageVersion12);
+
+            default:
+            break;
+        
+    }
+    
+    return(p);   
+   
+    }
+
+/*
+const TDesC8& CImpsWbXmlData::GetAttributeStringByToken(TInt aToken)
+    {
+    switch (aToken) 
+        {
+        case KImpsWbXmlTrc12Xmlns:
+            return KImpsTRC12Xmlns();
+            break;
+        case KImpsWbXmlPa12Xmlns:
+            return KImpsPA12Xmlns();
+            break;
+
+        case KImpsWbXmlCsp12Xmlns:
+            return KImpsCSP12Xmlns();
+        default:;
+        }
+    }
+*/
+//  End of File  
+