diff -r 000000000000 -r 094583676ce7 IMPSengine/enginc/impsservercommon.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IMPSengine/enginc/impsservercommon.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,677 @@ +/* +* Copyright (c) 2002-2005 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: +* Definitions for engine's internal use. +* +*/ + + +#ifndef IMPSSERVERCOMMON_H +#define IMPSSERVERCOMMON_H + +#include "impsconst.h" + +// CONSTANTS + +const TUint KImpsServMajorVersionNumber = 3; +const TUint KImpsServMinorVersionNumber = 0; +const TUint KImpsServBuildVersionNumber = 0; + +const TInt KImpsNullId = -1; + +// needed for creating server thread. +const TUint KDefaultHeapSize = 0x10000; +const TUint KMaxHeapSize = 0x100000; // This is the default as in ARM + +_LIT( KImpsServerName, "!CImpsServer" ); +_LIT( KImpsServerExe, "impsexe.exe" ); +_LIT( KImpsLibName, "impseng.dll" ); + +// Maximum pending messages allowed for transport +// Notice: This limits outgoing messages regardless of +// MultiTrans in CSP session +#ifdef _FAKE_RESPONSE +const TInt KImpsMaxPending = 1; +#else +// 4=HTTP stack queue limit, try to avoid problems +const TInt KImpsMaxPending = 4; +#endif + +// Default size for packed and streamed messages in Symbian client-server +const TInt KImpsStreamSize = 500; + +// Threshold for IPC client buffer in bytes. +// If the current message size exceeds this limit then the buffer +// is deleted after the message is handled in a client handle. +// This buffer speeds up delivery of short messages by avoiding +// extra client-server reaquests for message buffer allocation. +const TInt KImpsIPCThreshold = 1500; + +_LIT( KImpsPanicCategory, "Imps" ); +_LIT( KImpsVersionStr, "http://www.wireless-village.org/CSP1.1" ); +_LIT( KImpsVersionStr12, "http://www.openmobilealliance.org/WV-CSP1.2" ); +_LIT( KSubListHeader, "xmlns=\"http://www.wireless-village.org/PA1.1\"" ); + +_LIT( KImpsDataType, "text/plain" ); +_LIT( KImpsDataAndCharset, "text/plain" ); + +#ifdef _DEBUG +// wvengine.ini is for DEBUG mode only to allow overwriting Cent Rep values +_LIT( KImpsIniFile, "\\system\\data\\wvengine.ini" ); +#endif + + +// Maximum lengths of strings in WV protocol +const TInt KImpsMaxTID = 50; // maximum Transaction ID length +const TInt KImpsMaxSID = 50; // maximum Session ID +const TInt KImpsMaxUserId = 50; // maximum User ID +const TInt KImpsMaxClientId = 64; // maximum Client ID, this is not sure! +const TInt KImpsMaxSAP = 255; // maximum SAP size - updated from 200 to 255 +const TInt KImpsMaxPwd = 50; // maximum password +const TInt KImpsMaxCookie = 50; // maximum cookie size + +// default values if not given in static settings in CentRep +// ********************************************************* +const TInt KImpsAcceptedContentLength = 102400; // 100kB +const TInt KImpsParserSizeMax = 131072; // 128kB if previous is not bigger +const TInt KImpsMultiTrans = 3; +const TInt KImpsPollTime = 8; +const TInt KImpsAliveTime = 3600; +// maximum poll time that's used for adaptive polling in seconds +const TInt KImpsMaxPoll = 90; +// Poll request time-out in seconds +const TInt KImpsPollTO = 20; +// KeepAlive request time-out in seconds +const TInt KImpsKeepATO = 20; +// Default client request expiry time in seconds +const TInt KImpsClientExpr = 40; +const TInt KImpsFundClientExpr = 120; +const TInt KImpsPresClientExpr = 120; +// Default CIR expiry time in seconds +const TInt KImpsCIRExpr = 8; +// Default Poll time in CIR mode in seconds +const TInt KImpsCIRModePollTime = 86400; //24h +// Maximum idle time for PDP contect in seconds until it is closed +const TInt KImpsPDPMaxIdleTime = 300; +// PDP open re-try time period in seconds +const TInt KImpsPDPRetryOpenTime = 60; +// ********************************************************* + +// status codes from IMPS server +const TInt32 KImpsStatusOk = 200; + +// Mapping used between message type and keys +const TUint32 KImpsKeySession = 0x0000002D; +const TUint32 KImpsKeySessionDescriptor = 0x0000002E; +const TUint32 KImpsKeySessionType = 0x00000030; +const TUint32 KImpsKeySessionID = 0x0000002F; +const TUint32 KImpsKeyTransaction = 0x00000032; +const TUint32 KImpsKeyTransactionDescriptor = 0x00000034; +const TUint32 KImpsKeyTransactionMode = 0x00000036; +const TUint32 KImpsKeyTransactionID = 0x00000035; +const TUint32 KImpsKeyPoll = 0x00000021; +const TUint32 KImpsKeyTransactionContent = 0x00000033; +const TUint32 KImpsKeyStatus = 0x00000031; +const TUint32 KImpsKeyPolling_Request = 0x00000122; +const TUint32 KImpsKeyLogin_Request = 0x0000011D; +const TUint32 KImpsKeyLogin_Response = 0x0000011E; +const TUint32 KImpsKeyService_Request = 0x0000012E; +const TUint32 KImpsKeyService_Response = 0x0000012F; +const TUint32 KImpsKeyClientCapability_Request = 0x0000010C; +const TUint32 KImpsKeyClientCapability_Response = 0x0000010D; +const TUint32 KImpsKeyLogout_Request = 0x0000011F; +const TUint32 KImpsKeyDisconnect = 0x00000110; +const TUint32 KImpsKeyKeepAlive_Request = 0x0000011B; +const TUint32 KImpsKeyKeepAlive_Response = 0x00000129; +const TUint32 KImpsKeyGetSPInfo_Request = 0x00000112; +const TUint32 KImpsKeyGetSPInfo_Response = 0x00000113; +const TUint32 KImpsKeySearch_Request = 0x0000012B; +const TUint32 KImpsKeyStopSearch_Request = 0x00000131; +const TUint32 KImpsKeySearch_Response = 0x0000012C; +const TUint32 KImpsKeyCompletionFlag = 0x00000134; +const TUint32 KImpsKeyInvite_Request = 0x00000116; +const TUint32 KImpsKeyInvite_Response = 0x00000117; +const TUint32 KImpsKeyInviteUser_Request = 0x00000119; +const TUint32 KImpsKeyInviteUser_Response = 0x0000011A; +const TUint32 KImpsKeyCancelInvite_Request = 0x00000107; +const TUint32 KImpsKeyCancelInviteUser_Request = 0x00000108; +const TUint32 KImpsKeySubscribePresence_Request = 0x0000041D; +const TUint32 KImpsKeyUnsubscribePresence_Request = 0x00000418; +const TUint32 KImpsKeyPresenceNotification_Request = 0x0000041B; +const TUint32 KImpsKeyGetWatcherList_Request = 0x00000414; +const TUint32 KImpsKeyGetWatcherList_Response = 0x00000415; +const TUint32 KImpsKeyGetPresence_Request = 0x00000412; +const TUint32 KImpsKeyGetPresence_Response = 0x00000413; +const TUint32 KImpsKeyPresenceAuth_Request = 0x00000419; +const TUint32 KImpsKeyPresenceAuth_User = 0x0000041A; +const TUint32 KImpsKeyCancelAuth_Request = 0x00000405; +const TUint32 KImpsKeyUpdatePresence_Request = 0x0000041C; +const TUint32 KImpsKeyGetList_Request = 0x00000410; +const TUint32 KImpsKeyGetList_Response = 0x00000411; +const TUint32 KImpsKeyCreateList_Request = 0x00000408; +const TUint32 KImpsKeyDeleteList_Request = 0x0000040D; +const TUint32 KImpsKeyListManage_Request = 0x00000416; +const TUint32 KImpsKeyListManage_Response = 0x00000417; +const TUint32 KImpsKeyCreateAttributeList_Request = 0x00000407; +const TUint32 KImpsKeyDeleteAttributeList_Request = 0x0000040C; +const TUint32 KImpsKeyGetAttributeList_Request = 0x0000040E; +const TUint32 KImpsKeyGetAttributeList_Response = 0x0000040F; +const TUint32 KImpsKeySendMessage_Request = 0x00000617; +const TUint32 KImpsKeySendMessage_Response = 0x00000618; +const TUint32 KImpsKeySetDeliveryMethod_Request = 0x00000619; +const TUint32 KImpsKeyGetMessageList_Request = 0x0000060D; +const TUint32 KImpsKeyGetMessageList_Response = 0x0000060E; +const TUint32 KImpsKeyRejectMessage_Request = 0x00000616; +const TUint32 KImpsKeyMessageNotification = 0x00000614; +const TUint32 KImpsKeyGetMessage_Request = 0x0000060F; +const TUint32 KImpsKeyGetMessage_Response = 0x00000610; +const TUint32 KImpsKeyNewMessage = 0x00000615; +const TUint32 KImpsKeyMessageDelivered = 0x00000612; +const TUint32 KImpsKeyDeliveryReport_Request = 0x00000609; +const TUint32 KImpsKeyDeliveryTime = 0x0000061A; +const TUint32 KImpsKeyForwardMessage_Request = 0x0000060A; +const TUint32 KImpsKeyGetBlockedList_Request = 0x0000060B; +const TUint32 KImpsKeyGetBlockedList_Response = 0x0000060C; +const TUint32 KImpsKeyBlockEntity_Request = 0x00000606; +const TUint32 KImpsKeyCreateGroup_Request = 0x00000707; +const TUint32 KImpsKeyDeleteGroup_Request = 0x00000708; +const TUint32 KImpsKeyJoinGroup_Request = 0x00000711; +const TUint32 KImpsKeyJoinGroup = 0x00000721; +const TUint32 KImpsKeySubscribeNotification = 0x00000722; +const TUint32 KImpsKeyJoinGroup_Response = 0x00000712; +const TUint32 KImpsKeyLeaveGroup_Request = 0x00000713; +const TUint32 KImpsKeyLeaveGroup_Response = 0x00000714; +const TUint32 KImpsKeyGetGroupMembers_Request = 0x00000709; +const TUint32 KImpsKeyGetGroupMembers_Response = 0x0000070A; +const TUint32 KImpsKeyAddGroupMembers_Request = 0x00000705; +const TUint32 KImpsKeyRemoveGroupMembers_Request = 0x0000071B; +const TUint32 KImpsKeyMemberAccess_Request = 0x00000716; +const TUint32 KImpsKeyGetGroupProps_Request = 0x0000070B; +const TUint32 KImpsKeyGetGroupProps_Response = 0x0000070C; +const TUint32 KImpsKeySetGroupProps_Request = 0x0000071C; +const TUint32 KImpsKeyRejectList_Request = 0x00000719; +const TUint32 KImpsKeyRejectList_Response = 0x0000071A; +const TUint32 KImpsKeySubscribeGroupNotice_Request = 0x0000071D; +const TUint32 KImpsKeySubscribeGroupNotice_Response = 0x0000071E; +const TUint32 KImpsKeyGroupChangeNotice = 0x0000070D; +const TUint32 KImpsKeyDigestBytes = 0x0000010E; +const TUint32 KImpsKeyDigestSchema = 0x0000010F; +const TUint32 KImpsKeyPassword = 0x00000121; +const TUint32 KImpsKeyNonce = 0x00000120; +const TUint32 KImpsKeyCapabilityRequest = 0x0000010B; +const TUint32 KImpsKeyCapabilityList = 0x0000010A; +const TUint32 KImpsKeyClientType = 0x0000050F; +const TUint32 KImpsKeyInitialDeliveryMethod = 0x0000030B; +const TUint32 KImpsKeyAnyContent = 0x00000309; +const TUint32 KImpsKeyAcceptedCharSet = 0x00000305; +const TUint32 KImpsKeyAcceptedContentType = 0x00000307; +const TUint32 KImpsKeyAcceptedTransferEncoding = 0x00000308; +const TUint32 KImpsKeyAcceptedContentLength = 0x00000306; +const TUint32 KImpsKeySupportedBearer = 0x0000030F; +const TUint32 KImpsKeyMultiTrans = 0x0000030C; +const TUint32 KImpsKeyParserSize = 0x0000030D; +const TUint32 KImpsKeySupportedCIRMethod = 0x00000310; +const TUint32 KImpsKeyUDPPort = 0x00000313; +const TUint32 KImpsKeyTCPAddress = 0x00000311; +const TUint32 KImpsKeyTCPPort = 0x00000312; +const TUint32 KImpsKeyServerPollMin = 0x0000030E; +const TUint32 KImpsKeyDefaultLanguage = 0x0000030A; +const TUint32 KImpsKeyResult = 0x0000002A; +const TUint32 KImpsKeyCode = 0x0000000B; +const TUint32 KImpsKeyDescription = 0x00000012; +const TUint32 KImpsKeyDetailedResult = 0x00000013; +const TUint32 KImpsKeySessionCookie = 0x00000130; +const TUint32 KImpsKeySender = 0x0000002C; +const TUint32 KImpsKeyRecipient = 0x00000027; +const TUint32 KImpsKeyUser = 0x00000039; +const TUint32 KImpsKeyGroup = 0x00000015; +const TUint32 KImpsKeyUserID = 0x0000003A; +const TUint32 KImpsKeyClientID = 0x0000000A; +const TUint32 KImpsKeyGroupID = 0x00000016; +const TUint32 KImpsKeyMessageID = 0x0000001B; +const TUint32 KImpsKeyMessageURI = 0x0000001C; +const TUint32 KImpsKeyScreenName = 0x0000002B; +const TUint32 KImpsKeyNickName = 0x00000020; +const TUint32 KImpsKeyURLList = 0x00000038; +const TUint32 KImpsKeyURL = 0x00000037; +const TUint32 KImpsKeyMSISDN = 0x0000001D; +const TUint32 KImpsKeyGroupList = 0x00000017; +const TUint32 KImpsKeyUserList = 0x0000003B; +const TUint32 KImpsKeyContactList = 0x0000000C; +const TUint32 KImpsKeyDefaultContactList = 0x0000040A; +const TUint32 KImpsKeyNickList = 0x0000001F; +const TUint32 KImpsKeyAddNickList = 0x00000007; +const TUint32 KImpsKeyRemoveNickList = 0x00000029; +const TUint32 KImpsKeyDefaultList = 0x0000040B; +const TUint32 KImpsKeySearchPairList = 0x0000012A; +const TUint32 KImpsKeySearchElement = 0x00000124; +const TUint32 KImpsKeySearchString = 0x00000133; +const TUint32 KImpsKeySearchLimit = 0x00000128; +const TUint32 KImpsKeySearchID = 0x00000126; +const TUint32 KImpsKeySearchIndex = 0x00000127; +const TUint32 KImpsKeySearchFindings = 0x00000125; +const TUint32 KImpsKeySearchResult = 0x0000012D; +const TUint32 KImpsKeyInviteID = 0x00000114; +const TUint32 KImpsKeyInviteType = 0x00000118; +const TUint32 KImpsKeyInviteNote = 0x00000115; +const TUint32 KImpsKeyAcceptance = 0x00000005; +const TUint32 KImpsKeyResponseNote = 0x00000123; +const TUint32 KImpsKeyDefaultAttributeList = 0x00000409; +const TUint32 KImpsKeyPresence = 0x00000022; +const TUint32 KImpsKeyPresenceSubList = 0x00000023; +const TUint32 KImpsKeyKeepAliveTime = 0x0000011C; +const TUint32 KImpsKeyTimeToLive = 0x00000132; +const TUint32 KImpsKeySName = 0x00000008; +const TUint32 KImpsKeyName = 0x0000001E; +const TUint32 KImpsKeyValue = 0x0000003D; +const TUint32 KImpsKeyValidity = 0x0000003C; +const TUint32 KImpsKeyMessageInfo = 0x00000613; +const TUint32 KImpsKeyDateTime = 0x00000011; +const TUint32 KImpsKeyMessageCount = 0x0000001A; +const TUint32 KImpsKeyDeliveryReport = 0x00000608; +const TUint32 KImpsKeyDeliveryMethod = 0x00000607; +const TUint32 KImpsKeyBlockList = 0x00000605; +const TUint32 KImpsKeyGrantList = 0x00000611; +const TUint32 KImpsKeyEntityList = 0x00000014; +const TUint32 KImpsKeyAddList = 0x00000006; +const TUint32 KImpsKeyRemoveList = 0x00000028; +const TUint32 KImpsKeyInUse = 0x00000018; +const TUint32 KImpsKeyContactListProperties = 0x00000406; +const TUint32 KImpsKeyGroupProperties = 0x0000070E; +const TUint32 KImpsKeyOwnProperties = 0x00000718; +const TUint32 KImpsKeyProperty = 0x00000025; +const TUint32 KImpsKeyWelcomeNote = 0x00000720; +const TUint32 KImpsKeyJoinedRequest = 0x00000710; +const TUint32 KImpsKeyAdmin = 0x00000706; +const TUint32 KImpsKeyMod = 0x00000717; +const TUint32 KImpsKeyUsers = 0x0000071F; +const TUint32 KImpsKeySubscribeType = 0x00000723; +const TUint32 KImpsKeyJoined = 0x0000070F; +const TUint32 KImpsKeyLeft = 0x00000715; +const TUint32 KImpsKeyLogo = 0x00000019; +const TUint32 KImpsKeyContentType = 0x00000010; +const TUint32 KImpsKeyContentData = 0x0000000D; +const TUint32 KImpsKeyContentSize = 0x0000000F; +const TUint32 KImpsKeyContentEncoding = 0x0000000E; +const TUint32 KImpsKeyAllFunctionsRequest = 0x00000106; +const TUint32 KImpsKeyAllFunctions = 0x00000105; +const TUint32 KImpsKeyFunctions = 0x00000111; +const TUint32 KImpsKeyWVCSPFeat = 0x0000023C; +const TUint32 KImpsKeyFundamentalFeat = 0x00000211; +const TUint32 KImpsKeyPresenceFeat = 0x0000022F; +const TUint32 KImpsKeyIMFeat = 0x00000223; +const TUint32 KImpsKeyGroupFeat = 0x0000021F; +const TUint32 KImpsKeyServiceFunc = 0x00000235; +const TUint32 KImpsKeySearchFunc = 0x00000234; +const TUint32 KImpsKeyInviteFunc = 0x00000227; +const TUint32 KImpsKeyContListFunc = 0x0000020C; +const TUint32 KImpsKeyPresenceAuthFunc = 0x0000022D; +const TUint32 KImpsKeyPresenceDeliverFunc = 0x0000022E; +const TUint32 KImpsKeyAttListFunc = 0x00000206; +const TUint32 KImpsKeyIMSendFunc = 0x00000225; +const TUint32 KImpsKeyIMReceiveFunc = 0x00000224; +const TUint32 KImpsKeyIMAuthFunc = 0x00000222; +const TUint32 KImpsKeyGroupMgmtFunc = 0x00000220; +const TUint32 KImpsKeyGroupUseFunc = 0x00000221; +const TUint32 KImpsKeyGroupAuthFunc = 0x0000021E; +const TUint32 KImpsKeyGETSPI = 0x0000021A; +const TUint32 KImpsKeySRCH = 0x00000238; +const TUint32 KImpsKeySTSRC = 0x00000239; +const TUint32 KImpsKeyINVIT = 0x00000226; +const TUint32 KImpsKeyCAINV = 0x00000209; +const TUint32 KImpsKeyGCLI = 0x00000214; +const TUint32 KImpsKeyCCLI = 0x0000020B; +const TUint32 KImpsKeyDCLI = 0x0000020F; +const TUint32 KImpsKeyMCLS = 0x00000229; +const TUint32 KImpsKeyGETWL = 0x0000021B; +const TUint32 KImpsKeyREACT = 0x00000230; +const TUint32 KImpsKeyCAAUT = 0x00000208; +const TUint32 KImpsKeyGETPR = 0x00000219; +const TUint32 KImpsKeyUPDPR = 0x0000023B; +const TUint32 KImpsKeyCALI = 0x0000020A; +const TUint32 KImpsKeyDALI = 0x0000020E; +const TUint32 KImpsKeyGALS = 0x00000213; +const TUint32 KImpsKeyMDELIV = 0x0000022A; +const TUint32 KImpsKeyFWMSG = 0x00000212; +const TUint32 KImpsKeySETD = 0x00000236; +const TUint32 KImpsKeyGETLM = 0x00000217; +const TUint32 KImpsKeyGETM = 0x00000218; +const TUint32 KImpsKeyREJCM = 0x00000231; +const TUint32 KImpsKeyNOTIF = 0x0000022C; +const TUint32 KImpsKeyNEWM = 0x0000022B; +const TUint32 KImpsKeyGLBLU = 0x0000021C; +const TUint32 KImpsKeyBLENT = 0x00000207; +const TUint32 KImpsKeyCREAG = 0x0000020D; +const TUint32 KImpsKeyDELGR = 0x00000210; +const TUint32 KImpsKeyGETGP = 0x00000216; +const TUint32 KImpsKeySETGP = 0x00000237; +const TUint32 KImpsKeySUBGCN = 0x0000023A; +const TUint32 KImpsKeyGRCHN = 0x0000021D; +const TUint32 KImpsKeyGETGM = 0x00000215; +const TUint32 KImpsKeyADDGM = 0x00000205; +const TUint32 KImpsKeyRMVGM = 0x00000233; +const TUint32 KImpsKeyMBRAC = 0x00000228; +const TUint32 KImpsKeyREJEC = 0x00000232; + +const TUint32 KImpsKeyPRQualifier = 0x00000026; +const TUint32 KImpsKeyPRPresenceValue = 0x00000024; +const TUint32 KImpsKeyPROnlineStatus = 0x00000521; +const TUint32 KImpsKeyPRRegistration = 0x00000528; +const TUint32 KImpsKeyPRFreeTextLocation = 0x0000051A; +const TUint32 KImpsKeyPRPLMN = 0x00000522; +const TUint32 KImpsKeyPRUserAvailability = 0x0000052E; +const TUint32 KImpsKeyPRPreferredLanguage = 0x00000525; +const TUint32 KImpsKeyPRStatusText = 0x0000052B; +const TUint32 KImpsKeyPRStatusMood = 0x0000052A; +const TUint32 KImpsKeyPRAlias = 0x00000508; +const TUint32 KImpsKeyPRClientInfo = 0x0000050D; +const TUint32 KImpsKeyPRClientType = 0x0000050F; +const TUint32 KImpsKeyPRDevManufacturer = 0x00000518; +const TUint32 KImpsKeyPRClientProducer = 0x0000050E; +const TUint32 KImpsKeyPRModel = 0x0000051F; +const TUint32 KImpsKeyPRClientVersion = 0x00000510; +const TUint32 KImpsKeyPRLanguage = 0x0000051C; +const TUint32 KImpsKeyPRTimeZone = 0x0000052D; +const TUint32 KImpsKeyPRZone = 0x00000535; +const TUint32 KImpsKeyPRGeoLocation = 0x0000051B; +const TUint32 KImpsKeyPRLongitude = 0x0000051E; +const TUint32 KImpsKeyPRLatitude = 0x0000051D; +const TUint32 KImpsKeyPRAltitude = 0x00000509; +const TUint32 KImpsKeyPRAccuracy = 0x00000505; +const TUint32 KImpsKeyPRAddress = 0x00000506; +const TUint32 KImpsKeyPRCountry = 0x00000515; +const TUint32 KImpsKeyPRCity = 0x0000050C; +const TUint32 KImpsKeyPRStreet = 0x0000052C; +const TUint32 KImpsKeyPRCrossing1 = 0x00000516; +const TUint32 KImpsKeyPRCrossing2 = 0x00000517; +const TUint32 KImpsKeyPRBuilding = 0x0000050A; +const TUint32 KImpsKeyPRNamedArea = 0x00000520; +const TUint32 KImpsKeyPRCommCap = 0x00000512; +const TUint32 KImpsKeyPRCommC = 0x00000511; +const TUint32 KImpsKeyPRCap = 0x0000052F; +const TUint32 KImpsKeyPRStatus = 0x00000031; //??????????????? +const TUint32 KImpsKeyPRContact = 0x00000531; +const TUint32 KImpsKeyPRNote = 0x00000534; +const TUint32 KImpsKeyPRPreferredContacts = 0x00000524; +const TUint32 KImpsKeyPRAddrPref = 0x00000507; +const TUint32 KImpsKeyPRPrefC = 0x00000523; +const TUint32 KImpsKeyPRCaddr = 0x0000050B; +const TUint32 KImpsKeyPRCstatus = 0x00000533; +const TUint32 KImpsKeyPRCname = 0x00000530; +const TUint32 KImpsKeyPRCpriority = 0x00000532; +const TUint32 KImpsKeyPRStatusContent = 0x00000529; +const TUint32 KImpsKeyPRDirectContent = 0x00000519; +const TUint32 KImpsKeyPRReferredContent = 0x00000526; +const TUint32 KImpsKeyPRContactInfo = 0x00000513; +const TUint32 KImpsKeyPRContainedvCard = 0x00000514; +const TUint32 KImpsKeyPRReferredvCard = 0x00000527; + +////////////////////////////////////////////////////////////////////////// +// CSP 1.2 additions +const TUint32 KImpsKeyAgreedCapabilityList = 0x0000013A; +const TUint32 KImpsKeyExtended_Request = 0x00000138; +const TUint32 KImpsKeyExtended_Response = 0x00000139; +const TUint32 KImpsKeyExtendedData = 0x0000013B; +const TUint32 KImpsKeyOtherServer = 0x0000013C; +const TUint32 KImpsKeyPresenceAttributeNSName = 0x0000013D; +const TUint32 KImpsKeyReceiveList = 0x00000136; +const TUint32 KImpsKeySessionNSName = 0x0000013E; +const TUint32 KImpsKeyTransactionNSName = 0x0000013F; +const TUint32 KImpsKeyVerifyID_Request = 0x00000137; +const TUint32 KImpsKeyMF = 0x0000023D; +const TUint32 KImpsKeyMG = 0x0000023E; +const TUint32 KImpsKeyMM = 0x0000023F; +const TUint32 KImpsKeyAuto_Subscribe = 0x0000041E; +const TUint32 KImpsKeyGetReactiveAuthStatus_Request = 0x0000041F; +const TUint32 KImpsKeyGetReactiveAuthStatus_Response = 0x00000420; +const TUint32 KImpsKeyInf_link = 0x00000537; +const TUint32 KImpsKeyInfoLink = 0x00000538; +const TUint32 KImpsKeyLink = 0x00000539; +const TUint32 KImpsKeyText = 0x0000053A; +const TUint32 KImpsKeyAdminMapList = 0x00000726; +const TUint32 KImpsKeyAdminMapping = 0x00000727; +const TUint32 KImpsKeyGetJoinedUsers_Request = 0x00000724; +const TUint32 KImpsKeyGetJoinedUsers_Respone = 0x00000725; +const TUint32 KImpsKeyMapping = 0x00000728; +const TUint32 KImpsKeyUserMapList = 0x0000072A; +const TUint32 KImpsKeyUserMapping = 0x0000072B; +const TUint32 KImpsKeyGETAUT = 0x00000806; +const TUint32 KImpsKeyGETJU = 0x00000807; +const TUint32 KImpsKeyMP = 0x00000805; +const TUint32 KImpsKeyVRID = 0x00000808; +const TUint32 KImpsKeyVerifyIDFunc = 0x00000809; +const TUint32 KImpsKeyCIR = 0x00000905; +const TUint32 KImpsKeyDomain = 0x00000906; +const TUint32 KImpsKeyExtBlock = 0x00000907; +const TUint32 KImpsKeyHistoryPeriod = 0x00000908; +const TUint32 KImpsKeyIDList = 0x00000909; +const TUint32 KImpsKeyMaxWatcherList = 0x0000090A; +const TUint32 KImpsKeyReactiveAuthState = 0x0000090B; +const TUint32 KImpsKeyReactiveAuthStatus = 0x0000090C; +const TUint32 KImpsKeyReactiveAuthStatusList = 0x0000090D; +const TUint32 KImpsKeyWatcher = 0x0000090E; +const TUint32 KImpsKeyWatcherStatus = 0x0000090F; +const TUint32 KImpsKeyWV_CSPVersionDiscovery_Request = 0x00000A05; +const TUint32 KImpsKeyWV_CSPVersionDiscovery_Response = 0x00000A06; +const TUint32 KImpsKeyVersionList = 0x00000A07; +////////////////////////////////////////////////////////////////////////// + +const TUint32 KImpsKeyAPIClient = 0x0000FFFB; +const TUint32 KImpsKeyPureData = 0x0000FFFC; +const TUint32 KImpsKeyPRExt = 0x0000FFFD; +const TUint32 KImpsKeyPREND = 0x0000FFFE; +const TUint32 KImpsKeyEND = 0x0000FFFF; + + +// Event types (service type) +enum TImpsEventType + { + EImpsEventNone = 0x0000, + EImpsEventServerLogin = 0x0001, + EImpsEventMessage = 0x0002, + EImpsEventPresence = 0x0004, + EImpsEventGroup = 0x0010, + EImpsEventCommon = 0x0100, + EImpsEventPure = 0x01000, // pure client + EImpsEventPresencePure = 0x01004, + EImpsEventAll = 0xFFFF // special bit mask enum + }; + + +// Values for Message-Type field +enum TImpsMessageType + { + // Undefined + EImpsMessageNone = 0, + // Common + EImpsStatus = KImpsKeyStatus, + EImpsKeepAliveReq = KImpsKeyKeepAlive_Request, + EImpsKeepAliveRes = KImpsKeyKeepAlive_Response, + EImpsPolling = KImpsKeyPolling_Request, + EImpsClientCapabilityReq = KImpsKeyClientCapability_Request, + EImpsClientCapabilityRes = KImpsKeyClientCapability_Response, + EImpsServiceReq = KImpsKeyService_Request, + EImpsServiceRes = KImpsKeyService_Response, + // Access + EImpsLoginReq = KImpsKeyLogin_Request, + EImpsLoginRes = KImpsKeyLogin_Response, + EImpsLogoutReq = KImpsKeyLogout_Request, + EImpsDisconnect = KImpsKeyDisconnect, + // IM + EImpsSendMessageReq = KImpsKeySendMessage_Request, + EImpsSendMessageRes = KImpsKeySendMessage_Response, + EImpsGetMessageReq = KImpsKeyGetMessage_Request, + EImpsNewMessage = KImpsKeyNewMessage, + EImpsMessageDelivered = KImpsKeyMessageDelivered, + EImpsGetBlockedListReq = KImpsKeyGetBlockedList_Request, + EImpsGetBlockedListRes = KImpsKeyGetBlockedList_Response, + EImpsBlockEntityReq = KImpsKeyBlockEntity_Request, + EImpsDeliveryReportReq = KImpsKeyDeliveryReport_Request, + // Presence + EImpsSubscribePresenceReq = KImpsKeySubscribePresence_Request, + EImpsUnsubscribePresenceReq = KImpsKeyUnsubscribePresence_Request, + EImpsGetPresenceReq = KImpsKeyGetPresence_Request, + EImpsGetPresenceRes = KImpsKeyGetPresence_Response, + EImpsUpdatePresenceReq = KImpsKeyUpdatePresence_Request, + EImpsPresenceNotification = KImpsKeyPresenceNotification_Request, + EImpsCreateAttrListReq = KImpsKeyCreateAttributeList_Request, + EImpsPresenceAuthReq = KImpsKeyPresenceAuth_Request, + EImpsGetWatcherListReq = KImpsKeyGetWatcherList_Request, + EImpsGetWatcherListRes = KImpsKeyGetWatcherList_Response, + EImpsPresenceAuthUser = KImpsKeyPresenceAuth_User, + EImpsCancelAuthReq = KImpsKeyCancelAuth_Request, + EImpsGetListReq = KImpsKeyGetList_Request, + EImpsGetListRes = KImpsKeyGetList_Response, + EImpsCreateListReq = KImpsKeyCreateList_Request, + EImpsDeleteListReq = KImpsKeyDeleteList_Request, + EImpsListManageReq = KImpsKeyListManage_Request, + EImpsListManageRes = KImpsKeyListManage_Response, + EImpsDeleteAttrListReq = KImpsKeyDeleteAttributeList_Request, + EImpsGetAttrListReq = KImpsKeyGetAttributeList_Request, + EImpsGetAttrListRes = KImpsKeyGetAttributeList_Response, + // CSP 1.2 + EImpsGetReactiveAuthStatusReq = KImpsKeyGetReactiveAuthStatus_Request, + EImpsGetReactiveAuthStatusRes = KImpsKeyGetReactiveAuthStatus_Response, + + // Group + EImpsCreateGroupReq = KImpsKeyCreateGroup_Request, + EImpsDeleteGroupReq = KImpsKeyDeleteGroup_Request, + EImpsJoinGroupReq = KImpsKeyJoinGroup_Request, + EImpsJoinGroupRes = KImpsKeyJoinGroup_Response, + EImpsLeaveGroupReq = KImpsKeyLeaveGroup_Request, + EImpsLeaveGroupRes = KImpsKeyLeaveGroup_Response, + EImpsGroupMembersReq = KImpsKeyGetGroupMembers_Request, + EImpsGroupMembersRes = KImpsKeyGetGroupMembers_Response, + EImpsAddGroupMembersReq = KImpsKeyAddGroupMembers_Request, + EImpsRemoveGroupMembersReq = KImpsKeyRemoveGroupMembers_Request, + EImpsGroupMemberAccessReq = KImpsKeyMemberAccess_Request, + EImpsGroupPropertiesReq = KImpsKeyGetGroupProps_Request, + EImpsGroupPropertiesRes = KImpsKeyGetGroupProps_Response, + EImpsSetGroupPropertiesReq = KImpsKeySetGroupProps_Request, + EImpsGroupRejectListReq = KImpsKeyRejectList_Request, + EImpsGroupRejectListRes = KImpsKeyRejectList_Response, + EImpsSubsGroupNoticeReq = KImpsKeySubscribeGroupNotice_Request, + EImpsSubsGroupNoticeRes = KImpsKeySubscribeGroupNotice_Response, + EImpsGroupChangeNotice = KImpsKeyGroupChangeNotice, + // CSP 1.2 + EImpsGetJoinedUsersReq = KImpsKeyGetJoinedUsers_Request, + EImpsGetJoinedUsersRes = KImpsKeyGetJoinedUsers_Respone, + + + // Fundamental + EImpsSearchReq = KImpsKeySearch_Request, + EImpsStopSearchReq = KImpsKeyStopSearch_Request, + EImpsSearchRes = KImpsKeySearch_Response, + EImpsInviteReq = KImpsKeyInvite_Request, + EImpsInviteRes = KImpsKeyInvite_Response, + EImpsInviteUserReq = KImpsKeyInviteUser_Request, + EImpsInviteUserRes = KImpsKeyInviteUser_Response, + EImpsCancelInviteReq = KImpsKeyCancelInvite_Request, + EImpsCancelInviteUserReq = KImpsKeyCancelInviteUser_Request, + // CSP 1.2 + EImpsVerifyIDReq = KImpsKeyVerifyID_Request, + + // Pure data + EImpsPureData = KImpsKeyPureData, + // THE FOLLOWING ONES ARE NOT REAL PRIMITIVES BUT USED + // INTERNALLY IN ENGINE + EImpsSubsGroupNoticeUnset = KImpsKeyEND + 1, + EImpsSubsGroupNoticeGet = KImpsKeyEND + 2, + EImpsSubsGroupNoticeSet = KImpsKeyEND + 3, + EImpsNewUsers = KImpsKeyEND + 4, + EImpsLeftUsers = KImpsKeyEND + 5 + }; + +// This is also in client API with different name, but if we split into dlls +// then this is better to be in this way. Or move to impsconst.h. +enum EImpsInternalStatus + { + EInternal_ON_LINE, + EInternal_OFF_LINE, + EInternal_NOT_LOGGED, + EInternal_NO_IAP, + EInternal_NO_IAP_AUTH, + EInternal_IAP_OPEN, + EInternal_SHUTTING_DOWN + }; + +// Signal in process set up +class TImpsSignal + { + public: + inline TImpsSignal(); + inline TInt Set( const TDesC& aData ); + inline TImpsSignal( TInt aRate ); + inline TPtrC Get() const; + TRequestStatus* iStatus; + TThreadId iId; + TInt iRate; + }; + +inline TImpsSignal::TImpsSignal() + : iStatus( NULL ), iRate( 0 ) {} + +inline TImpsSignal::TImpsSignal( TInt aRate ) + : iStatus( NULL ), iId( RThread().Id() ), iRate( aRate ) + { } + +inline TPtrC TImpsSignal::Get() const + { + return TPtrC( ( const TText* )this, sizeof( *this ) / sizeof( TText ) ); + } + +inline TInt TImpsSignal::Set( const TDesC& aData ) + { + return aData.Size() != sizeof( *this ) ? + KErrGeneral : + ( Mem::Copy( this, aData.Ptr(), sizeof( *this ) ), KErrNone ); + } + +// Parameter passing for the launcher process +class TImpsLaunchParams + { + public: + inline TImpsLaunchParams () {}; + inline TImpsLaunchParams( + const TDesC& aAppID, + const TDesC& aSAP, + const TDesC& aUserID ); + inline TInt Set( const TDesC& aData ); + inline TPtrC Get() const; + + // data + TBuf iApplicationId; + TBuf iSAP; + TBuf iUserId; + }; + +inline TImpsLaunchParams::TImpsLaunchParams( const TDesC& aAppID, + const TDesC& aSAP, + const TDesC& aUserID ) + : iApplicationId( aAppID ), iSAP( aSAP ), iUserId( aUserID ) {} + +inline TPtrC TImpsLaunchParams::Get() const + { + return TPtrC( ( const TText* )this, sizeof( *this ) / sizeof( TText ) ); + } + +inline TInt TImpsLaunchParams::Set( const TDesC& aData ) + { + return aData.Size() != sizeof( *this ) ? + KErrGeneral : + ( Mem::Copy( this, aData.Ptr(), sizeof( *this ) ), KErrNone ); + } +#endif // ?INCLUDE_H + +// End of File