--- /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