diff -r 000000000000 -r 094583676ce7 IMPSengine/messageencoder/wbxml/src/ImpsWbXmlData.cpp --- /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 +