williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: /** williamr@2: @file williamr@4: @publishedAll williamr@2: */ williamr@2: williamr@2: #if !defined(__ES_WSMS_H__) williamr@2: #define __ES_WSMS_H__ williamr@2: williamr@2: #include williamr@2: williamr@2: /** WAP SMS Protocol Module address family ID. */ williamr@2: const TUint KWAPSMSAddrFamily=0x011; williamr@2: /** WAP SMS Protocol Module datagram protocol ID. */ williamr@2: const TUint KWAPSMSDatagramProtocol=0x01; williamr@2: /** WAP SMS Protocol Module maximum number of sockets supported. */ williamr@2: const TInt KWAPSMSNumberSockets=0x100; williamr@2: /** The maximum datagram size the SMS sockets protocol supports. */ williamr@2: const TUint KWAPSMSMaxDatagramSize = 255*160; // Based on 7 bit encoding williamr@2: /** WAP SMS Protocol Module service information flags. */ williamr@2: const TUint KWAPSMSDatagramServiceInfo = KSIConnectionLess | KSIMessageBased; williamr@2: /** CDMA WAP SMS Protocol Module address family ID for legacy WDP application. */ williamr@2: const TUint KWAPCDMASMSAddrFamily=0x013; williamr@2: williamr@2: /** williamr@4: * @publishedAll williamr@2: */ williamr@2: _LIT(KWAPSMSProtocolId,"WAPSMS Datagram"); williamr@2: _LIT(KWAPCDMASMSProtocolId,"WAP CDMA SMS Datagram"); williamr@2: williamr@4: // williamr@2: // Wap Address / Port Settings williamr@4: // williamr@2: williamr@2: /** WAP port setting. */ williamr@2: enum TWapPortNumber williamr@2: { williamr@2: /** Unspecified. */ williamr@2: EWapPortUnspecified = -1, williamr@2: /** Connectionless session protocol. */ williamr@2: EWapPortWsp = 9200, williamr@2: /** Connection oriented session protocol. */ williamr@2: EWapPortWspWtp = 9201, williamr@2: /** Secure connectionless session protocol. */ williamr@2: EWapPortWspWtls = 9202, williamr@2: /** Secure connection oriented session protocol. */ williamr@2: EWapPortWspWtpWtls = 9203, williamr@2: /** vCard. */ williamr@2: EWapPortVCard = 9204, williamr@2: /** Secure vCard. */ williamr@2: EWapPortVCardWtls = 9206, williamr@2: /** vCal. */ williamr@2: EWapPortVCal = 9205, williamr@2: /** Secure vCal. */ williamr@2: EWapPortVCalWtls = 9207 williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: * Socket address type used with the WAP SMS Protocol Module. williamr@2: * @publishedAll williamr@2: * @released williamr@2: */ williamr@2: class TWapAddr : public TSockAddr williamr@2: { williamr@2: public: williamr@2: enum { EMaxWapAddressLength = 24 }; williamr@2: public: williamr@2: /** williamr@2: * Gets the WAP port number. williamr@2: * williamr@2: * * @return WAP port number williamr@2: */ williamr@2: inline TWapPortNumber WapPort() const; williamr@2: williamr@2: /** williamr@2: * Sets the WAP port number. williamr@2: * williamr@2: * * @param aPort WAP port number williamr@2: */ williamr@2: inline void SetWapPort(TWapPortNumber aPort); williamr@2: williamr@2: /** williamr@2: * Sets the WAP address. williamr@2: * williamr@2: * * @param aTel WAP address williamr@2: */ williamr@2: inline void SetWapAddress(const TDesC8& aTel); williamr@2: williamr@2: /** williamr@2: * Gets the WAP address. williamr@2: * williamr@2: * * @return WAP address williamr@2: */ williamr@2: inline TPtrC8 WapAddress() const; williamr@2: williamr@2: /** williamr@2: * Equality operator. williamr@2: * williamr@2: * @param aAddr Object to compare williamr@2: * * @return ETrue if the object value's are equal williamr@2: */ williamr@2: inline TBool operator==(const TWapAddr& aAddr) const; williamr@2: }; williamr@2: williamr@4: // williamr@2: // Option Settings williamr@4: // williamr@2: williamr@2: /** WAP SMS Protocol Module option level, for RSocket::SetOpt() and RSocket::GetOpt() calls. */ williamr@2: const TInt KWapSmsOptionLevel = KSOLSocket + 1; williamr@2: williamr@2: /** williamr@2: * WAP SMS Protocol Module option for the data coding scheme. williamr@2: * williamr@2: * * anOption in RSocket::GetOpt() and RSocket::SetOpt() should be a TWapSmsDataCodingScheme value. williamr@2: */ williamr@2: const TInt KWapSmsOptionNameDCS = 0x01; williamr@2: williamr@2: /** Unused. */ williamr@2: const TInt KWapSmsOptionSmartMessage = 0x02; williamr@2: williamr@2: /** WAP SMS Protocol Module option to set the message type to WAP datagram. */ williamr@2: const TInt KWapSmsOptionWapDatagram = 0x03; williamr@2: williamr@2: /** WAP SMS Protocol Module option to set the status report of the last segment. */ williamr@2: const TInt KWapSmsStatusReportScheme = 0x06; // KWapSmsOptionNewStyleClient = 0x04; williamr@2: // KWapSmsOptionOKToDeleteMessage = 0x05; williamr@2: // Defined in wap_sock.h williamr@2: williamr@2: williamr@2: /** williamr@2: * WAP Data Coding Scheme types. williamr@2: * williamr@2: * * These are used with KWapSmsOptionNameDCS. williamr@2: */ williamr@2: enum TWapSmsDataCodingScheme williamr@2: { williamr@2: /** 7-bit. */ williamr@2: EWapSms7BitDCS, williamr@2: /** 8-bit. */ williamr@2: EWapSms8BitDCS williamr@2: }; williamr@2: williamr@2: williamr@2: /** WAP Status Report Scheme types. williamr@2: * williamr@2: * These are used with KWapSmsStatusReportScheme. */ williamr@2: enum TWapSmsStatusReportScheme williamr@2: { williamr@2: /** Default Scheme. */ williamr@2: EWapSmsDefault, williamr@2: /** TPSRR Scheme. */ williamr@2: EWapSmsTPSRR, williamr@2: /** Control Information Element Scheme. */ williamr@2: EWapSmsCtrlInfoElement williamr@2: }; williamr@2: williamr@2: #include "es_wsms.inl" williamr@2: williamr@2: #endif