--- /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 <e32base.h>
+
+/**
+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
+
+
+