diff -r 000000000000 -r 094583676ce7 IMPSengine/enginc/impsdataaccessorapi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IMPSengine/enginc/impsdataaccessorapi.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,669 @@ +/* +* Copyright (c) 2002 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: Some classes for describing imps internel data structure +* +*/ + + +#ifndef MImpsDataAccessorApi_H +#define MImpsDataAccessorApi_H + +// INCLUDES +#include "Impsservercommon.h" + +// CONSTANTS + +enum TImpsDataType + { + EImpsDataTypeNone = 0, // This is for elements not having value in DTD + EImpsDataTypeInt = 1, + EImpsDataTypeDesc = 2, + EImpsDataTypeDesc8 = 3, + EImpsDataTypeBoolean = 4, + EImpsDataTypeNotSupported = 5, // Data accessor does not support this + EImpsDataTypeExt = 6, // Data type for extension attributes + EImpsDataTypeContentData = 7 // special data type for content data handling + }; + +enum TImpsKeyType + { + EImpsKeyTypeIM = 0, // IM + EImpsKeyTypePre = 1 // Presence + }; + + +// CLASS DECLARATION +class CImpsFields; +class RFs; + +// MACROS +#define GET_INDEX( aElemvalue ) ( (aElemvalue>>16 ) & 0xFFFF ) +#define GET_ENUM( aElemvalue ) ( aElemvalue& 0xFFFF ) +#define CREATEKEY( elem, index ) ( ( elem& 0xFFFF ) + ( index<< 16 ) ) +// if Upper bit is one then we have presence attribute +#define IS_PRESENCE( aElemvalue ) ( aElemvalue>>31 ) + +// DATA TYPES + +enum TImpsPresenceContent + { + EImpsKeyPRPresenceSubList = KImpsKeyPresenceSubList, // duplicate!!! + EImpsKeyPRQualifier = KImpsKeyPRQualifier, + EImpsKeyPRPresenceValue = KImpsKeyPRPresenceValue, + EImpsKeyPROnlineStatus = KImpsKeyPROnlineStatus, + EImpsKeyPRRegistration = KImpsKeyPRRegistration, + EImpsKeyPRFreeTextLocation = KImpsKeyPRFreeTextLocation, + EImpsKeyPRPLMN = KImpsKeyPRPLMN, + EImpsKeyPRUserAvailability = KImpsKeyPRUserAvailability, + EImpsKeyPRPreferredLanguage = KImpsKeyPRPreferredLanguage, + EImpsKeyPRStatusText = KImpsKeyPRStatusText, + EImpsKeyPRStatusMood = KImpsKeyPRStatusMood, + EImpsKeyPRAlias = KImpsKeyPRAlias, + EImpsKeyPRClientInfo = KImpsKeyPRClientInfo, + EImpsKeyPRClientType = KImpsKeyClientType, + EImpsKeyPRDevManufacturer = KImpsKeyPRDevManufacturer, + EImpsKeyPRClientProducer = KImpsKeyPRClientProducer, + EImpsKeyPRModel = KImpsKeyPRModel, + EImpsKeyPRClientVersion = KImpsKeyPRClientVersion, + EImpsKeyPRLanguage = KImpsKeyPRLanguage, + EImpsKeyPRTimeZone = KImpsKeyPRTimeZone, + EImpsKeyPRZone = KImpsKeyPRZone, + EImpsKeyPRGeoLocation = KImpsKeyPRGeoLocation, + EImpsKeyPRLongitude = KImpsKeyPRLongitude, + EImpsKeyPRLatitude = KImpsKeyPRLatitude, + EImpsKeyPRAltitude = KImpsKeyPRAltitude, + EImpsKeyPRAccuracy = KImpsKeyPRAccuracy, + EImpsKeyPRAddress = KImpsKeyPRAddress, + EImpsKeyPRCountry = KImpsKeyPRCountry, + EImpsKeyPRCity = KImpsKeyPRCity, + EImpsKeyPRStreet = KImpsKeyPRStreet, + EImpsKeyPRCrossing1 = KImpsKeyPRCrossing1, + EImpsKeyPRCrossing2 = KImpsKeyPRCrossing2, + EImpsKeyPRBuilding = KImpsKeyPRBuilding, + EImpsKeyPRNamedArea = KImpsKeyPRNamedArea, + EImpsKeyPRCommCap = KImpsKeyPRCommCap, + EImpsKeyPRCommC = KImpsKeyPRCommC, + EImpsKeyPRCap = KImpsKeyPRCap, + EImpsKeyPRStatus = KImpsKeyPRStatus, + EImpsKeyPRContact = KImpsKeyPRContact, + EImpsKeyPRNote = KImpsKeyPRNote, + EImpsKeyPRPreferredContacts = KImpsKeyPRPreferredContacts, + EImpsKeyPRAddrPref = KImpsKeyPRAddrPref, + EImpsKeyPRPrefC = KImpsKeyPRPrefC, + EImpsKeyPRCaddr = KImpsKeyPRCaddr, + EImpsKeyPRCstatus = KImpsKeyPRCstatus, + EImpsKeyPRCname = KImpsKeyPRCname, + EImpsKeyPRCpriority = KImpsKeyPRCpriority, + EImpsKeyPRStatusContent = KImpsKeyPRStatusContent, + EImpsKeyPRDirectContent = KImpsKeyPRDirectContent, + EImpsKeyPRReferredContent = KImpsKeyPRReferredContent, + EImpsKeyPRContactInfo = KImpsKeyPRContactInfo, + EImpsKeyPRContainedvCard = KImpsKeyPRContainedvCard, + EImpsKeyPRReferredvCard = KImpsKeyPRReferredvCard, + EImpsKeyPRExt = KImpsKeyPRExt, + + // CSP 1.2 + EImpsKeyPRInf_link = KImpsKeyInf_link, + EImpsKeyPRInfoLink = KImpsKeyInfoLink, + EImpsKeyPRLink = KImpsKeyLink, + EImpsKeyPRText = KImpsKeyText, + + EImpsKeyPREND = KImpsKeyPREND + }; + +enum TImpsContent + { + EImpsKeySession = KImpsKeySession, + EImpsKeySessionDescriptor = KImpsKeySessionDescriptor, + EImpsKeySessionType = KImpsKeySessionType, + EImpsKeySessionID = KImpsKeySessionID, + EImpsKeyTransaction = KImpsKeyTransaction, + EImpsKeyTransactionDescriptor = KImpsKeyTransactionDescriptor, + EImpsKeyTransactionMode = KImpsKeyTransactionMode, + EImpsKeyTransactionID = KImpsKeyTransactionID, + EImpsKeyPoll = KImpsKeyPoll, + EImpsKeyTransactionContent = KImpsKeyTransactionContent, + EImpsKeyStatus = KImpsKeyStatus, + EImpsKeyPolling_Request = KImpsKeyPolling_Request, + EImpsKeyLogin_Request = KImpsKeyLogin_Request, + EImpsKeyLogin_Response = KImpsKeyLogin_Response, + EImpsKeyService_Request = KImpsKeyService_Request, + EImpsKeyService_Response = KImpsKeyService_Response, + EImpsKeyClientCapability_Request = KImpsKeyClientCapability_Request, + EImpsKeyClientCapability_Response = KImpsKeyClientCapability_Response, + EImpsKeyLogout_Request = KImpsKeyLogout_Request, + EImpsKeyDisconnect = KImpsKeyDisconnect, + EImpsKeyKeepAlive_Request = KImpsKeyKeepAlive_Request, + EImpsKeyKeepAlive_Response = KImpsKeyKeepAlive_Response, + EImpsKeyGetSPInfo_Request = KImpsKeyGetSPInfo_Request, + EImpsKeyGetSPInfo_Response = KImpsKeyGetSPInfo_Response, + EImpsKeySearch_Request = KImpsKeySearch_Request, + EImpsKeyStopSearch_Request = KImpsKeyStopSearch_Request, + EImpsKeySearch_Response = KImpsKeySearch_Response, + EImpsKeyCompletionFlag = KImpsKeyCompletionFlag, + EImpsKeyInvite_Request = KImpsKeyInvite_Request, + EImpsKeyInvite_Response = KImpsKeyInvite_Response, + EImpsKeyInviteUser_Request = KImpsKeyInviteUser_Request, + EImpsKeyInviteUser_Response = KImpsKeyInviteUser_Response, + EImpsKeyCancelInvite_Request = KImpsKeyCancelInvite_Request, + EImpsKeyCancelInviteUser_Request = KImpsKeyCancelInviteUser_Request, + EImpsKeySubscribePresence_Request = KImpsKeySubscribePresence_Request, + EImpsKeyUnsubscribePresence_Request = KImpsKeyUnsubscribePresence_Request, + EImpsKeyPresenceNotification_Request = KImpsKeyPresenceNotification_Request, + EImpsKeyGetWatcherList_Request = KImpsKeyGetWatcherList_Request, + EImpsKeyGetWatcherList_Response = KImpsKeyGetWatcherList_Response, + EImpsKeyGetPresence_Request = KImpsKeyGetPresence_Request, + EImpsKeyGetPresence_Response = KImpsKeyGetPresence_Response, + EImpsKeyPresenceAuth_Request = KImpsKeyPresenceAuth_Request, + EImpsKeyPresenceAuth_User = KImpsKeyPresenceAuth_User, + EImpsKeyCancelAuth_Request = KImpsKeyCancelAuth_Request, + EImpsKeyUpdatePresence_Request = KImpsKeyUpdatePresence_Request, + EImpsKeyGetList_Request = KImpsKeyGetList_Request, + EImpsKeyGetList_Response = KImpsKeyGetList_Response, + EImpsKeyCreateList_Request = KImpsKeyCreateList_Request, + EImpsKeyDeleteList_Request = KImpsKeyDeleteList_Request, + EImpsKeyListManage_Request = KImpsKeyListManage_Request, + EImpsKeyListManage_Response = KImpsKeyListManage_Response, + EImpsKeyCreateAttributeList_Request = KImpsKeyCreateAttributeList_Request, + EImpsKeyDeleteAttributeList_Request = KImpsKeyDeleteAttributeList_Request, + EImpsKeyGetAttributeList_Request = KImpsKeyGetAttributeList_Request, + EImpsKeyGetAttributeList_Response = KImpsKeyGetAttributeList_Response, + EImpsKeySendMessage_Request = KImpsKeySendMessage_Request, + EImpsKeySendMessage_Response = KImpsKeySendMessage_Response, + EImpsKeySetDeliveryMethod_Request = KImpsKeySetDeliveryMethod_Request, + EImpsKeyGetMessageList_Request = KImpsKeyGetMessageList_Request, + EImpsKeyGetMessageList_Response = KImpsKeyGetMessageList_Response, + EImpsKeyRejectMessage_Request = KImpsKeyRejectMessage_Request, + EImpsKeyMessageNotification = KImpsKeyMessageNotification, + EImpsKeyGetMessage_Request = KImpsKeyGetMessage_Request, + EImpsKeyGetMessage_Response = KImpsKeyGetMessage_Response, + EImpsKeyNewMessage = KImpsKeyNewMessage, + EImpsKeyMessageDelivered = KImpsKeyMessageDelivered, + EImpsKeyDeliveryReport_Request = KImpsKeyDeliveryReport_Request, + EImpsKeyDeliveryTime = KImpsKeyDeliveryTime, + EImpsKeyForwardMessage_Request = KImpsKeyForwardMessage_Request, + EImpsKeyGetBlockedList_Request = KImpsKeyGetBlockedList_Request, + EImpsKeyGetBlockedList_Response = KImpsKeyGetBlockedList_Response, + EImpsKeyBlockEntity_Request = KImpsKeyBlockEntity_Request, + EImpsKeyCreateGroup_Request = KImpsKeyCreateGroup_Request, + EImpsKeyDeleteGroup_Request = KImpsKeyDeleteGroup_Request, + EImpsKeyJoinGroup_Request = KImpsKeyJoinGroup_Request, + EImpsKeyJoinGroup = KImpsKeyJoinGroup, + EImpsKeySubscribeNotification = KImpsKeySubscribeNotification, + EImpsKeyJoinGroup_Response = KImpsKeyJoinGroup_Response, + EImpsKeyLeaveGroup_Request = KImpsKeyLeaveGroup_Request, + EImpsKeyLeaveGroup_Response = KImpsKeyLeaveGroup_Response, + EImpsKeyGetGroupMembers_Request = KImpsKeyGetGroupMembers_Request, + EImpsKeyGetGroupMembers_Response = KImpsKeyGetGroupMembers_Response, + EImpsKeyAddGroupMembers_Request = KImpsKeyAddGroupMembers_Request, + EImpsKeyRemoveGroupMembers_Request = KImpsKeyRemoveGroupMembers_Request, + EImpsKeyMemberAccess_Request = KImpsKeyMemberAccess_Request, + EImpsKeyGetGroupProps_Request = KImpsKeyGetGroupProps_Request, + EImpsKeyGetGroupProps_Response = KImpsKeyGetGroupProps_Response, + EImpsKeySetGroupProps_Request = KImpsKeySetGroupProps_Request, + EImpsKeyRejectList_Request = KImpsKeyRejectList_Request, + EImpsKeyRejectList_Response = KImpsKeyRejectList_Response, + EImpsKeySubscribeGroupNotice_Request = KImpsKeySubscribeGroupNotice_Request, + EImpsKeySubscribeGroupNotice_Response = KImpsKeySubscribeGroupNotice_Response, + EImpsKeyGroupChangeNotice = KImpsKeyGroupChangeNotice, + EImpsKeyDigestBytes = KImpsKeyDigestBytes, + EImpsKeyDigestSchema = KImpsKeyDigestSchema, + EImpsKeyPassword = KImpsKeyPassword, + EImpsKeyNonce = KImpsKeyNonce, + EImpsKeyCapabilityRequest = KImpsKeyCapabilityRequest, + EImpsKeyCapabilityList = KImpsKeyCapabilityList, + EImpsKeyClientType = KImpsKeyClientType, + EImpsKeyInitialDeliveryMethod = KImpsKeyInitialDeliveryMethod, + EImpsKeyAnyContent = KImpsKeyAnyContent, + EImpsKeyAcceptedCharSet = KImpsKeyAcceptedCharSet, + EImpsKeyAcceptedContentType = KImpsKeyAcceptedContentType, + EImpsKeyAcceptedTransferEncoding = KImpsKeyAcceptedTransferEncoding, + EImpsKeyAcceptedContentLength = KImpsKeyAcceptedContentLength, + EImpsKeySupportedBearer = KImpsKeySupportedBearer, + EImpsKeyMultiTrans = KImpsKeyMultiTrans, + EImpsKeyParserSize = KImpsKeyParserSize, + EImpsKeySupportedCIRMethod = KImpsKeySupportedCIRMethod, + EImpsKeyUDPPort = KImpsKeyUDPPort, + EImpsKeyTCPAddress = KImpsKeyTCPAddress, + EImpsKeyTCPPort = KImpsKeyTCPPort, + EImpsKeyServerPollMin = KImpsKeyServerPollMin, + EImpsKeyDefaultLanguage = KImpsKeyDefaultLanguage, + EImpsKeyResult = KImpsKeyResult, + EImpsKeyCode = KImpsKeyCode, + EImpsKeyDescription = KImpsKeyDescription, + EImpsKeyDetailedResult = KImpsKeyDetailedResult, + EImpsKeySessionCookie = KImpsKeySessionCookie, + EImpsKeySender = KImpsKeySender, + EImpsKeyRecipient = KImpsKeyRecipient, + EImpsKeyUser = KImpsKeyUser, + EImpsKeyGroup = KImpsKeyGroup, + EImpsKeyUserID = KImpsKeyUserID, + EImpsKeyClientID = KImpsKeyClientID, + EImpsKeyGroupID = KImpsKeyGroupID, + EImpsKeyMessageID = KImpsKeyMessageID, + EImpsKeyMessageURI = KImpsKeyMessageURI, + EImpsKeyScreenName = KImpsKeyScreenName, + EImpsKeyNickName = KImpsKeyNickName, + EImpsKeyURLList = KImpsKeyURLList, + EImpsKeyURL = KImpsKeyURL, + EImpsKeyMSISDN = KImpsKeyMSISDN, + EImpsKeyGroupList = KImpsKeyGroupList, + EImpsKeyUserList = KImpsKeyUserList, + EImpsKeyContactList = KImpsKeyContactList, + EImpsKeyDefaultContactList = KImpsKeyDefaultContactList, + EImpsKeyNickList = KImpsKeyNickList, + EImpsKeyAddNickList = KImpsKeyAddNickList, + EImpsKeyRemoveNickList = KImpsKeyRemoveNickList, + EImpsKeyDefaultList = KImpsKeyDefaultList, + EImpsKeySearchPairList = KImpsKeySearchPairList, + EImpsKeySearchElement = KImpsKeySearchElement, + EImpsKeySearchString = KImpsKeySearchString, + EImpsKeySearchLimit = KImpsKeySearchLimit, + EImpsKeySearchID = KImpsKeySearchID, + EImpsKeySearchIndex = KImpsKeySearchIndex, + EImpsKeySearchFindings = KImpsKeySearchFindings, + EImpsKeySearchResult = KImpsKeySearchResult, + EImpsKeyInviteID = KImpsKeyInviteID, + EImpsKeyInviteType = KImpsKeyInviteType, + EImpsKeyInviteNote = KImpsKeyInviteNote, + EImpsKeyAcceptance = KImpsKeyAcceptance, + EImpsKeyResponseNote = KImpsKeyResponseNote, + EImpsKeyDefaultAttributeList = KImpsKeyDefaultAttributeList, + EImpsKeyPresence = KImpsKeyPresence, + EImpsKeyPresenceSubList = KImpsKeyPresenceSubList, + EImpsKeyKeepAliveTime = KImpsKeyKeepAliveTime, + EImpsKeyTimeToLive = KImpsKeyTimeToLive, + EImpsKeySName = KImpsKeySName, + EImpsKeyName = KImpsKeyName, + EImpsKeyValue = KImpsKeyValue, + EImpsKeyValidity = KImpsKeyValidity, + EImpsKeyMessageInfo = KImpsKeyMessageInfo, + EImpsKeyDateTime = KImpsKeyDateTime, + EImpsKeyMessageCount = KImpsKeyMessageCount, + EImpsKeyDeliveryReport = KImpsKeyDeliveryReport, + EImpsKeyDeliveryMethod = KImpsKeyDeliveryMethod, + EImpsKeyBlockList = KImpsKeyBlockList, + EImpsKeyGrantList = KImpsKeyGrantList, + EImpsKeyEntityList = KImpsKeyEntityList, + EImpsKeyAddList = KImpsKeyAddList, + EImpsKeyRemoveList = KImpsKeyRemoveList, + EImpsKeyInUse = KImpsKeyInUse, + EImpsKeyContactListProperties = KImpsKeyContactListProperties, + EImpsKeyGroupProperties = KImpsKeyGroupProperties, + EImpsKeyOwnProperties = KImpsKeyOwnProperties, + EImpsKeyProperty = KImpsKeyProperty, + EImpsKeyWelcomeNote = KImpsKeyWelcomeNote, + EImpsKeyJoinedRequest = KImpsKeyJoinedRequest, + EImpsKeyAdmin = KImpsKeyAdmin, + EImpsKeyMod = KImpsKeyMod, + EImpsKeyUsers = KImpsKeyUsers, + EImpsKeySubscribeType = KImpsKeySubscribeType, + EImpsKeyJoined = KImpsKeyJoined, + EImpsKeyLeft = KImpsKeyLeft, + EImpsKeyLogo = KImpsKeyLogo, + EImpsKeyContentType = KImpsKeyContentType, + EImpsKeyContentData = KImpsKeyContentData, + EImpsKeyContentSize = KImpsKeyContentSize, + EImpsKeyContentEncoding = KImpsKeyContentEncoding, + EImpsKeyAllFunctionsRequest = KImpsKeyAllFunctionsRequest, + EImpsKeyAllFunctions = KImpsKeyAllFunctions, + EImpsKeyFunctions = KImpsKeyFunctions, + EImpsKeyWVCSPFeat = KImpsKeyWVCSPFeat, + EImpsKeyFundamentalFeat = KImpsKeyFundamentalFeat, + EImpsKeyPresenceFeat = KImpsKeyPresenceFeat, + EImpsKeyIMFeat = KImpsKeyIMFeat, + EImpsKeyGroupFeat = KImpsKeyGroupFeat, + EImpsKeyServiceFunc = KImpsKeyServiceFunc, + EImpsKeySearchFunc = KImpsKeySearchFunc, + EImpsKeyInviteFunc = KImpsKeyInviteFunc, + EImpsKeyContListFunc = KImpsKeyContListFunc, + EImpsKeyPresenceAuthFunc = KImpsKeyPresenceAuthFunc, + EImpsKeyPresenceDeliverFunc = KImpsKeyPresenceDeliverFunc, + EImpsKeyAttListFunc = KImpsKeyAttListFunc, + EImpsKeyIMSendFunc = KImpsKeyIMSendFunc, + EImpsKeyIMReceiveFunc = KImpsKeyIMReceiveFunc, + EImpsKeyIMAuthFunc = KImpsKeyIMAuthFunc, + EImpsKeyGroupMgmtFunc = KImpsKeyGroupMgmtFunc, + EImpsKeyGroupUseFunc = KImpsKeyGroupUseFunc, + EImpsKeyGroupAuthFunc = KImpsKeyGroupAuthFunc, + EImpsKeyGETSPI = KImpsKeyGETSPI, + EImpsKeySRCH = KImpsKeySRCH, + EImpsKeySTSRC = KImpsKeySTSRC, + EImpsKeyINVIT = KImpsKeyINVIT, + EImpsKeyCAINV = KImpsKeyCAINV, + EImpsKeyGCLI = KImpsKeyGCLI, + EImpsKeyCCLI = KImpsKeyCCLI, + EImpsKeyDCLI = KImpsKeyDCLI, + EImpsKeyMCLS = KImpsKeyMCLS, + EImpsKeyGETWL = KImpsKeyGETWL, + EImpsKeyREACT = KImpsKeyREACT, + EImpsKeyCAAUT = KImpsKeyCAAUT, + EImpsKeyGETPR = KImpsKeyGETPR, + EImpsKeyUPDPR = KImpsKeyUPDPR, + EImpsKeyCALI = KImpsKeyCALI, + EImpsKeyDALI = KImpsKeyDALI, + EImpsKeyGALS = KImpsKeyGALS, + EImpsKeyMDELIV = KImpsKeyMDELIV, + EImpsKeyFWMSG = KImpsKeyFWMSG, + EImpsKeySETD = KImpsKeySETD, + EImpsKeyGETLM = KImpsKeyGETLM, + EImpsKeyGETM = KImpsKeyGETM, + EImpsKeyREJCM = KImpsKeyREJCM, + EImpsKeyNOTIF = KImpsKeyNOTIF, + EImpsKeyNEWM = KImpsKeyNEWM, + EImpsKeyGLBLU = KImpsKeyGLBLU, + EImpsKeyBLENT = KImpsKeyBLENT, + EImpsKeyCREAG = KImpsKeyCREAG, + EImpsKeyDELGR = KImpsKeyDELGR, + EImpsKeyGETGP = KImpsKeyGETGP, + EImpsKeySETGP = KImpsKeySETGP, + EImpsKeySUBGCN = KImpsKeySUBGCN, + EImpsKeyGRCHN = KImpsKeyGRCHN, + EImpsKeyGETGM = KImpsKeyGETGM, + EImpsKeyADDGM = KImpsKeyADDGM, + EImpsKeyRMVGM = KImpsKeyRMVGM, + EImpsKeyMBRAC = KImpsKeyMBRAC, + EImpsKeyREJEC = KImpsKeyREJEC, + EImpsKeyPureData = KImpsKeyPureData, + // CSP 1.2 additions + EImpsKeyExtBlock = KImpsKeyExtBlock, + EImpsKeyAPIClient = KImpsKeyAPIClient, + EImpsKeyAgreedCapabilityList = KImpsKeyAgreedCapabilityList, + EImpsKeyExtended_Request = KImpsKeyExtended_Request, + EImpsKeyExtended_Response = KImpsKeyExtended_Response, + EImpsKeyExtendedData = KImpsKeyExtendedData, + EImpsKeyOtherServer = KImpsKeyOtherServer, + EImpsKeyPresenceAttributeNSName = KImpsKeyPresenceAttributeNSName, + EImpsKeyReceiveList = KImpsKeyReceiveList, + EImpsKeySessionNSName = KImpsKeySessionNSName, + EImpsKeyTransactionNSName = KImpsKeyTransactionNSName, + EImpsKeyVerifyID_Request = KImpsKeyVerifyID_Request, + EImpsKeyMF = KImpsKeyMF, + EImpsKeyMG = KImpsKeyMG, + EImpsKeyMM = KImpsKeyMM, + EImpsKeyAuto_Subscribe = KImpsKeyAuto_Subscribe, + EImpsKeyGetReactiveAuthStatus_Request = KImpsKeyGetReactiveAuthStatus_Request, + EImpsKeyGetReactiveAuthStatus_Response = KImpsKeyGetReactiveAuthStatus_Response, + EImpsKeyAdminMapList = KImpsKeyAdminMapList, + EImpsKeyAdminMapping = KImpsKeyAdminMapping, + EImpsKeyGetJoinedUsers_Request = KImpsKeyGetJoinedUsers_Request, + EImpsKeyGetJoinedUsers_Respone = KImpsKeyGetJoinedUsers_Respone, + EImpsKeyMapping = KImpsKeyMapping, + EImpsKeyUserMapList = KImpsKeyUserMapList, + EImpsKeyUserMapping = KImpsKeyUserMapping, + EImpsKeyGETAUT = KImpsKeyGETAUT, + EImpsKeyGETJU = KImpsKeyGETJU, + EImpsKeyMP = KImpsKeyMP, + EImpsKeyVRID = KImpsKeyVRID, + EImpsKeyVerifyIDFunc = KImpsKeyVerifyIDFunc, + EImpsKeyCIR = KImpsKeyCIR, + EImpsKeyDomain = KImpsKeyDomain, + EImpsKeyHistoryPeriod = KImpsKeyHistoryPeriod, + EImpsKeyIDList = KImpsKeyIDList, + EImpsKeyMaxWatcherList = KImpsKeyMaxWatcherList, + EImpsKeyReactiveAuthState = KImpsKeyReactiveAuthState, + EImpsKeyReactiveAuthStatus = KImpsKeyReactiveAuthStatus, + EImpsKeyReactiveAuthStatusList = KImpsKeyReactiveAuthStatusList, + EImpsKeyWatcher = KImpsKeyWatcher, + EImpsKeyWatcherStatus = KImpsKeyWatcherStatus, + EImpsKeyVersionList = KImpsKeyVersionList, + EImpsKeyEND = KImpsKeyEND + }; + +// CLASS DECLARATION + +/** +* MImpsKey class +* Pure virtual key class +*/ +class MImpsKey + { + public: // Constructors and destructor + + /** + * Destructor + */ + virtual void Destroy() = 0; + + public: // New functions + + /** + * Add new elem to the key + * @param aElemvalue Element value + * @param aKeyType Key type + * @return void + */ + virtual void AddL( const TInt aElemvalue , + enum TImpsKeyType aKeyType = EImpsKeyTypeIM ) = 0; + + /** + * Count the elements in the key + * @return TInt Number of elements in key + */ + virtual TInt Count( ) const = 0; + + /** + * Pop the last element from the key + * @param how many items to pop. default is 1 + * If too much is tried the the function leaves + * @return void + */ + virtual void PopL( TInt aCount = 1 ) = 0; + + /** + * Get the requested element from the key + * @return TInt + */ + virtual TInt GetElementL( const TInt aIndex, + TImpsKeyType& aKeyType ) const = 0; + + /** + * Replaces the last element in the key + * @return void + */ + virtual void ReplaceLastL( const TInt aElemvalue, + enum TImpsKeyType = EImpsKeyTypeIM ) = 0; + + /** + * Resets the key + * @return void + */ + virtual void Reset() = 0; + + /** + * Equal operator + * @param aKey to compare with + * @return 1 = true, 0 is false + */ + virtual TInt Compare( MImpsKey &aKey ) = 0; + }; + + +/** +* If restore functions return EFalse then the output parameter is undefined +*/ +class MImpsDataAccessor + { + public: + /** + * Accessor creates an instance of MImpsKey entity. + * It is NOT deleted by Accessor! You must do that yourself. + * @return MImpsKey new key + */ + virtual MImpsKey* NewKeyL() = 0; + + /** + * descriptor value mutator + * key is a byte sequence, which defines how value is stored + * @param aKey Key + * @param aValue Value + */ + virtual void StoreDescL( MImpsKey* aKey, TPtrC aValue ) = 0; + + /** + * descriptor value mutator + * key is a byte sequence, which defines how value is stored + * @param aKey Key + * @param aValue Value + */ + virtual void StoreDesc8L( MImpsKey* aKey, TPtrC8 aValue ) = 0; + + /** + * integer value mutator + * key is a byte sequence, which defines how value is stored + * @param aKey Key + * @param aValue Value + */ + virtual void StoreIntegerL( MImpsKey* aKey, TInt aValue ) = 0; + + /** + * boolean value mutator + * key is a byte sequence, which defines how value is stored + * @param aKey Key + * @param aValue Value + */ + virtual void StoreBooleanL( MImpsKey* aKey, TBool aValue ) = 0; + + /** + * store empty value + * key is a byte sequence, which defines how value is stored + * @param aKey Key + */ + virtual void StoreEmptyL( MImpsKey* aKey ) = 0; + + /** + * extension attribute mutator + * key is a byte sequence, which defines how value is stored + * @param aKey Key + * @param aName Extension attribute name + * @param aValue Extension attribute value + */ + virtual void StoreExtL( MImpsKey* aKey, + TPtrC8 aName, TPtrC8 aValue ) = 0; + + /** + * descriptor value accessor + * Function return EFalse if key is not found + * Function return ETrue if key is found + * @param aKey Key for restore + * @param aDes OUT Pointer to TDesC object. + */ + virtual TBool RestoreDescL( MImpsKey* aKey, TDesC*& aDes ) = 0; + + /** + * descriptor value accessor + * Function return EFalse if key is not found + * Function return ETrue if key is found + * @param aKey Key for restore + * @param aBuf OUT Pointer to TDesC8 object + */ + virtual TBool RestoreDesc8L( MImpsKey* aKey, TDesC8*& aDes ) = 0; + + /** + * integer value accessor + * Function return EFalse if key is not found + * Function return ETrue if key is found + * @param aKey Key for restore + * @param aBuf OUT TInt object + */ + virtual TBool RestoreIntegerL( MImpsKey* aKey, TInt& aInt ) = 0; + + /** + * Boolean value accessor + * Function return EFalse if key is not found + * Function return ETrue if key is found + * @param aKey Key for restore + * @param aBuf OUT Boolean object + */ + virtual TBool RestoreBooleanL( MImpsKey* aKey, TBool& aBool ) = 0; + + /** + * empty value accessor + * Function return EFalse if key is not found + * Function return ETrue if key is found + * @param aKey Key for restore + */ + virtual TBool RestoreEmptyL( MImpsKey* aKey ) = 0; + + /** + * extension attribute accessor + * Function return EFalse if key is not found + * Function return ETrue if key is found + * @param aKey Key for restore + * @param aName OUT Pointer to TDesC8 object + * @param aValue OUT Pointer to TDesC8 object + */ + virtual TBool RestoreExtL( MImpsKey* aKey, + TDesC8*& aName, TDesC8*& aValue ) = 0; + + /** + * data type accessor + * Leaves with KErrArgument if illegal key not in WV DTD. + * return data type. Note that one possible value is "not supported". + * @param aKey Key type + * @return TImpsDataType Datatype + */ + virtual TImpsDataType KeyTypeL( MImpsKey* aKey ) = 0; + + /** + * Finds the alternative key + * This function finds if the supplied key has a child in the + * datastorage and returns the information of the element. + * This is usefull with e.g. TransactionContent + * @param aKey key in + * @param aEnum Enum value out + * @param aIndex index out + * @param aType type out + * @return ETrue if found, EFalse if not found + */ + virtual TBool RestoreAlternativeL( const MImpsKey* aKey, + TInt& aEnum, + TInt& aIndex, + TImpsKeyType& aType ) const = 0; + + /** + * Checks if the key exists + * This function finds if the supplied key exists as it self or with + * children and returns ETrue or EFalse + * @param aKey key in + * @return ETrue if found, EFalse if not found + */ + virtual TBool CheckBranchExistenceL( const MImpsKey* aKey ) const = 0; + + /** + * Copy specific part of the message to the current message + * @param aSource where to copy data elements + * @param aKey which part of message is copied. NULL means that all data + * is copied. + */ + virtual void CopyDataL( + MImpsDataAccessor& aSource, + MImpsKey* aKey = NULL ) = 0; + + /** + * Get CImpsFields + * @return CImpsFields* + */ + virtual CImpsFields* GetImpsFields( ) const = 0; + +#ifdef _DEBUG + virtual void DumpToFileL( RFs& aFs, const TDesC& aFilename ) = 0; +#endif + }; + + + +#endif // MImpsDataAccessorApi_H + +// End of File