diff -r 87622fad6b51 -r a796fdeeb33c networkprotocolmodules/common/suplrrlpasn1/inc/suplmessagecommon.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkprotocolmodules/common/suplrrlpasn1/inc/suplmessagecommon.h Wed Oct 13 16:07:50 2010 +0300 @@ -0,0 +1,381 @@ +// Copyright (c) 2007-2009 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: +// + +/** + @file + @internalTechnology + +*/ +#ifndef LBS_SUPL_MESSAGE_COMMON_H +#define LBS_SUPL_MESSAGE_COMMON_H + +#include + +/** +Enumeration for Status Code parameter. +This is used to report errors in the SUPL END message status code parameter. + +@internalTechnology +*/ +typedef TUint32 TSuplStatusCode; + +enum _TSuplStatusCode + { + ESuplStatusUnspecified = 0, + ESuplStatusSystemFailure = 1, + ESuplStatusUnexpectedMessage = 2, + ESuplStatusProtocolError = 3, + ESuplStatusDataMissing = 4, + ESuplStatusUnexpectedDataValue = 5, + ESuplStatusPosMethodFailure = 6, + ESuplStatusPosMethodMismatch = 7, + ESuplStatusPosProtocolMismatch = 8, + ESuplStatusTargetSETnotReachable = 9, + ESuplStatusVersionNotSupported = 10, + ESuplStatusResourceShortage = 11, + ESuplStatusInvalidSessionId = 12, + ESuplStatusNonProxyModeNotSupported = 13, + ESuplStatusProxyModeNotSupported = 14, + ESuplStatusPositioningNotPermitted = 15, + ESuplStatusAuthNetFailure = 16, + ESuplStatusAuthSuplinitFailure = 17, + ESuplStatusConsentDeniedByUser = 100, + ESuplStatusConsentGrantedByUser = 101 + }; + + +typedef TUint32 TSuplSlpAddressType; +enum _TSuplSlpAddressType + { + ESuplSlpAddressTypeIp = 0, + ESuplSlpAddressTypeFqdn, + + ESuplSlpAddressTypeLimit + }; + +typedef TUint32 TSuplIpAddressType; +enum _TSuplIpAddressType + { + ESuplIpAddressTypeV4 = 0, + ESuplIpAddressTypeV6, + + ESuplIpAddressTypeLimit + }; + +typedef TUint32 TSuplSetIdType; +enum _TSuplSetIdType + { + ESuplSetIdTypeMsisdn, + ESuplSetIdTypeMdn, + ESuplSetIdTypeMin, + ESuplSetIdTypeImsi, + ESuplSetIdTypeNai, + ESuplSetIdTypeIPAddress + }; + + +/** + * Supl Message IPAddress + */ +NONSHARABLE_CLASS(CSuplIpAddress) : public CBase + { +public: + IMPORT_C static CSuplIpAddress* NewL(); + IMPORT_C static CSuplIpAddress* NewLC(); + IMPORT_C ~CSuplIpAddress(); + IMPORT_C TBool operator==(const CSuplIpAddress& other) const; + +private: + CSuplIpAddress(); + void ConstructL(); + +public: + TSuplIpAddressType iIpAddressType; + TBuf8<16> iIpAddress; + }; + +/** + * Supl Message FQDN + */ +NONSHARABLE_CLASS(CSuplFqdn) : public CBase + { +public: + IMPORT_C static CSuplFqdn* NewL(); + IMPORT_C ~CSuplFqdn(); + IMPORT_C TBool operator==(const CSuplFqdn& other) const; + +private: + CSuplFqdn(); + void ConstructL(); + +public: + TBuf8<256> iFqdn; + }; + + +/** + * Supl Message Slp address + */ +NONSHARABLE_CLASS(CSuplSlpAddress) : public CBase + { +public: + IMPORT_C static CSuplSlpAddress* NewL(); + IMPORT_C ~CSuplSlpAddress(); + IMPORT_C TBool operator==(const CSuplSlpAddress& other) const; + +private: + CSuplSlpAddress(); + void ConstructL(); + +public: + TSuplSlpAddressType iSlpAddressType; + CSuplIpAddress* iIpAddress; + CSuplFqdn* iFqdn; + }; + +/** + * Supl Message SessionId + */ +NONSHARABLE_CLASS(CSuplSlpSessionId) : public CBase + { +public: + IMPORT_C static CSuplSlpSessionId* NewL(); + IMPORT_C ~CSuplSlpSessionId(); + IMPORT_C TBool operator==(const CSuplSlpSessionId& other) const; + +private: + void ConstructL(); + void ConstructL(const CSuplSlpSessionId* aSlpSessionId); + +public: + TBuf8<4> iSessionId; + CSuplSlpAddress* iSlpAddress; + }; + + +/** + * Supl Message SetId + */ +NONSHARABLE_CLASS(CSuplSetId) : public CBase + { +public: + IMPORT_C static CSuplSetId* NewL(); + IMPORT_C ~CSuplSetId(); + IMPORT_C TBool operator==(const CSuplSetId& other) const; + +private: + CSuplSetId(); + void ConstructL(); + +public: + TSuplSetIdType iSetIdType; + CSuplIpAddress* iIpAddress; + TBuf8<16> iSetId; + }; + +/** + * Supl Message SessionId + */ +NONSHARABLE_CLASS(CSuplSetSessionId) : public CBase + { +public: + IMPORT_C static CSuplSetSessionId* NewL(); + IMPORT_C ~CSuplSetSessionId(); + IMPORT_C TBool operator==(const CSuplSetSessionId& other) const; + +private: + CSuplSetSessionId(); + void ConstructL(); + +public: + TUint16 iSessionId; + CSuplSetId* iSetId; + }; + +/** + * Supl Message SessionId + */ +NONSHARABLE_CLASS(CSuplSessionId) : public CBase + { +public: + IMPORT_C static CSuplSessionId* NewL(); + IMPORT_C static CSuplSessionId* NewLC(); + IMPORT_C ~CSuplSessionId(); + IMPORT_C TBool operator==(const CSuplSessionId& other) const; + +private: + CSuplSessionId(); + void ConstructL(); + +public: + TBool iSetSessionIdPresent; + TBool iSlpSessionIdPresent; + CSuplSetSessionId* iSetSessionId; + CSuplSlpSessionId* iSlpSessionId; + }; + + +/** + * Supl Message Version + */ +NONSHARABLE_CLASS(CSuplVersion) : public CBase + { +public: + IMPORT_C static CSuplVersion* NewL(); + IMPORT_C ~CSuplVersion(); + IMPORT_C TBool operator==(const CSuplVersion& other) const; + +private: + CSuplVersion(); + void ConstructL(); + +public: + TInt iMaj; + TInt iMin; + TInt iServind; + }; + +/** + * NMR Element for GSM Cell Info + */ +NONSHARABLE_CLASS(TSuplGsmNmrElement) + { +public: + TInt iARFCN; // (0..1023) + TInt iBSIC; // (0..63) + TInt iRxLev; // (0..63) + }; + + +/** + * Supl GSM Cell Info + */ +NONSHARABLE_CLASS(CSuplGsmCellInfo) : public CBase + { +public: + IMPORT_C static CSuplGsmCellInfo* NewL(); + IMPORT_C ~CSuplGsmCellInfo(); + +private: + CSuplGsmCellInfo(); + void ConstructL(); + +public: + TInt iRefMCC; // (0..999), -- Mobile Country Code + TInt iRefMNC; // (0..999), -- Mobile Network Code + TInt iRefLAC; // (0..65535), -- Location area code + TInt iRefCI; // (0..65535), -- Cell identity + TInt iNMR; // indicates number of NMR elements (0..15) + TSuplGsmNmrElement iNmrElements[15]; // optional + TInt iTA; // (0..255) OPTIONAL, --Timing Advance + }; + + +/** + * Supl CDMA Cell Info + */ +NONSHARABLE_CLASS(CSuplCdmaCellInfo) : public CBase + { +public: + IMPORT_C static CSuplCdmaCellInfo* NewL(); + IMPORT_C ~CSuplCdmaCellInfo(); + +private: + CSuplCdmaCellInfo(); + void ConstructL(); + +public: + TInt iRefNID; // (0..65535), -- Network Id + TInt iRefSID; // (0..32767), -- System Id + TInt iRefBASEID; // (0..65535), -- Base Station Id + TInt iRefBASELAT; // (0..4194303),-- Base Station Latitude + TInt iReBASELONG; // (0..8388607),-- Base Station Longitude + TInt iRefREFPN; // (0..511), -- Base Station PN Code + TInt iRefWeekNumber; // (0..65535), -- GPS Week Number + TInt iRefSeconds; // (0..4194303) -- GPS Seconds + }; + +/** + * Supl WCDMA Cell Info + */ +NONSHARABLE_CLASS(CSuplWcdmaCellInfo) : public CBase + { +public: + IMPORT_C static CSuplWcdmaCellInfo* NewL(); + IMPORT_C ~CSuplWcdmaCellInfo(); + +private: + CSuplWcdmaCellInfo(); + void ConstructL(); + +public: + TInt iRefMCC; // (0..999), -- Mobile Country Code + TInt iRefMNC; // (0..999), -- Mobile Network Code + TInt iRefUC; // (0..268435455), -- Cell identity + // iRrequencyInfo FrequencyInfo OPTIONAL, + // TUint16 iPrimaryScramblingCode // (0..511) OPTIONAL, + // CSuplMeasureResultsList iMeasuredResultsList // OPTIONAL, + }; + +/** + * Supl Location Type + */ +typedef TUint32 TSuplLocationType; +enum _TSuplLocationType + { + ESuplLocationTypeGsm, + ESuplLocationTypeCdma, + ESuplLocationTypeWcdma, + ESuplLocationTypeLimit + }; + +/** + * Supl Location Status + */ +typedef TUint32 TSuplLocationStatus; +enum _TSuplLocationStatus + { + ESuplLocStatusStale, + ESuplLocStatusCurrent, + ESuplLocStatusUnknown + }; + +/** + * Supl Location ID + */ +NONSHARABLE_CLASS(CSuplLocationId) : public CBase + { +public: + IMPORT_C static CSuplLocationId* NewL(TSuplLocationType aType); + IMPORT_C ~CSuplLocationId(); + +private: + CSuplLocationId(TSuplLocationType aType); + void ConstructL(); + +public: + TSuplLocationType iType; + TSuplLocationStatus iStatus; + + CSuplGsmCellInfo* iGsmCellInfo; + CSuplCdmaCellInfo* iCdmaCellInfo; + CSuplWcdmaCellInfo* iWcdmaCellInfo; + }; + + +#endif // LBS_SUPL_MESSAGE_COMMON_H + + +