--- a/epoc32/include/cdmasmsaddr.h Wed Mar 31 12:27:01 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
-// which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// Declares the cdmau address classes and constants.
-//
-//
-
-
-
-/**
- @file
- @publishedAll
- @interim
-*/
-
-#if !(defined __CDMASMSADDR_H__)
-#define __CDMASMSADDR_H__
-
-#include <smsuaddr.h>
-#include "tia637.h"
-
-// CDMA SMS PROT public constants start
-_LIT(KCdmaSmsDatagram,"CDMA SMS Datagram");
-/** Cdma SMS sockets family identifier. */
-const TUint KCdmaSMSAddrFamily = 0x012;
-/** Cdmd SMS sockets protocol ID. */
-const TUint KCdmaSMSDatagramProtocol = KSMSDatagramProtocol;
-
-// Followings are the Ioctl commands used in cdmssmsprot
-// Ioctl commands that are supported in both cdma and gsm include the following from smsuaddr.h:
-// KIoctlDeleteSmsMessage = 0x0300;
-// KIoctlEnumerateSmsMessages = 0x0301;
-// KIoctlReadMessageSucceeded = 0x0304;
-// KIoctlReadMessageFailed = 0x0305;
-// KIoctlSendSmsMessage = 0x0306;
-// KIoctlWriteSmsMessage = 0x0307;
-
-// Gsm Ioctl commands 0x0308-0x0310 are not supported for cdma
-
-/** Ioctl command for retrieving message identifier token object
-
-@capability NetworkServices
-@see RSocket::Ioctl(TUint aLevel,TUint aName,TDes8* aOption)
-*/
-const TUint KIoctlGetMsgId=0x0311;
-
-/** Ioctl command for retrieving the last transport layer acknowledgement cause code
-This command is valid only after a KIoctlSendSmsMessage ioctl command and
- aReqestStatus return one of the KErrCdmaSms extended errors and
- bearer reply option parameter was present in the previous sent message.
-Otherwise the cause error received will be meaningless
-
-@capability NetworkServices
-@see RSocket::Ioctl(TUint aLevel,TUint aName,TDes8* aOption)
-*/
-const TUint KIoctlGetLastSendError=0x0312;
-/** Value that aOptions could take when client demand traffic channel to stay open.
- Used only for KIoctlSendSmsMessage Ioctl command */
-const TUint KKeepChannelOpen=0x01;
-
-/** Maximum size of storage location */
-const TInt KCdmaMaxLocationStorageSize=256;
-
-typedef TBuf8<KCdmaMaxLocationStorageSize> TCdmaSmsStorageLocation;
-
-
-// CDMA SMS PROT public constants end
-
-/**
-Sockets for CDMA SMS messages must be bound to an address. The 'address'
-provides a rule that tells the CDMA SMS stack which received messages should
-be given to the socket; see TCdmaSmsAddr for a more detailed explanation.
-
-Each address must belong to a family. The family must be one of the values
-listed below.
-*/
-enum TCdmaSmsAddrFamily
- {
- // as in GSMU
- /** This indicates that the address's family has not been set
- */
- ECdmaSmsAddrUnbound=ESmsAddrUnbound,
- /** Sockets bound to a ECdmaSmsAddrSendOnly address can only be for
- sending CDMA SMS messages; they will not receive any messages until they
- are bound to a different address.
-
- Note that a socket bound to any address family except for
- ECdmaSmsAddrLocalOperation can be used to send messages; not just
- ECdmaSmsAddrSendOnly
- */
- ECdmaSmsAddrSendOnly=ESmsAddrSendOnly,
- /** Sockets bound to a ECdmaSmsAddrLocalOperation address can only be used
- for local protocol operations such as enumerating, writing and deleting
- messages. These sockets cannot be used for sending or receiving messages
- until they are bound to a different address.
-
- Any socket kind of binded address and be used for writing and deleting messages.
- Only LocalOperation can be used for enumerating messages.
- */
- ECdmaSmsAddrLocalOperation=ESmsAddrLocalOperation,
- /**
- Sockets bound to a ECdmaSmsWemtAddrMatchIEI address will receive messages
- on the WEMT teleservice that have a particular Information Element
- Identifier (IEI).
-
- As well as setting the address's family to ECdmaSmsWemtAddrMatchIEI, set
- the address's 'port'to one of the IEIs in TSmsInformationElementIdentifier;
- see CSmsInformationElement..
-
- The following example binds a socket so that it will receive messages on
- the WEMT teleservice that have the IEI "Special SMS Message Indication":
-
- @code
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsWemtAddrMatchIEI);
- smsaddr.SetPort(CSmsInformationElement::ESmsIEISpecialSMSMessageIndication);
- ret=socket.Bind(smsaddr);
- @endcode
- */
- ECdmaSmsWemtAddrMatchIEI=ESmsAddrMatchIEI,
- /**
- Sockets bound to a ECdmaSmsAddrMatchText address will receive messages
- whose user data matches contains particular text. The messages
- teleservice does not matter.
-
- As well as setting the address's family to ECdmaSmsAddrMatchText, use
- TCdmaSmsAddr::SetTextMatch to specify an ASCII string. This string is
- compared to the user data in the message. If the two match then the
- message is delivered to the socket. The string can contain the wildcards
- '?' to match one instance of any character and '*' to match any number of
- characters.
-
- @code
- // match messages that start with 12345
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsAddrMatchText);
- smsaddr.SetTextMatch(_L8("12345"));
- ret=socketMatchText.Bind(smsaddr);
-
- // match messages that end with 12345
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsAddrMatchText);
- smsaddr.SetTextMatch(_L8("*12345"));
- ret=socketMatchText.Bind(smsaddr);
-
- // match message that contain 12345
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsAddrMatchText);
- smsaddr.SetTextMatch(_L8("*12345*"));
- ret=socketMatchText.Bind(smsaddr);
- @endcode
- */
- ECdmaSmsAddrMatchText=ESmsAddrMatchText,
- /**
- Sockets bound to a ECdmaSmsWemtAddrApplication8BitPort address will
- receive messages on the WEMT teleservice that are from a particular 8 bit
- application port.
-
- As well as setting the address's family to ECdmaSmsWemtAddrMatchIEI, set
- the address's 'port' to an 8-bit number.
-
- The following example binds a socket so that it will receive messages on
- the WEMT teleservice that are on the port 83:
-
- @code
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsWemtAddrApplication8BitPort);
- smsaddr.SetPort(83);
- ret=socket.Bind(smsaddr);
- @endcode
- */
- ECdmaSmsWemtAddrApplication8BitPort=ESmsAddrApplication8BitPort,
- /**
- This is similar to ECdmaSmsWemtAddrApplication8BitPort, except that the
- WEMT message must be from a particular 16 bit application port. The
- address's port must be set to a 16-bit number. For example:
-
- @code
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsWemtAddrApplication16BitPort);
- smsaddr.SetPort(1000);
- ret=socket.Bind(smsaddr);
- @endcode
- */
- ECdmaSmsWemtAddrApplication16BitPort=ESmsAddrApplication16BitPort,
-
- // new values
-
- /**
- Sockets bound to a ECdmaSmsAddrTeleservice address will receive messages
- on a particular teleservice.
-
- As well as setting the address's family to ECdmaSmsAddrTeleservice, use
- TCdmaSmsAddr::SetTeleserviceId to set the required teleservice. For
- example, to receive messages on the WEMT teleservice:
-
- @code
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsAddrTeleservice);
- smsaddr.SetTeleserviceId(KTeleserviceWEMT);
- ret=socket.Bind(smsaddr);
- @endcode
- */
- ECdmaSmsAddrTeleservice =10,
- /**
- Sockets bound to a ECdmaSmsWemtAddrWdp address will receive messages on
- the WAP teleservice that are for a particular WDP port.
-
- As well as setting the address's family to ECdmaSmsWemtAddrWdp, set the
- address's 'port' to a WDP port. For example:
-
- @code
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsAddrWdp);
- smsaddr.SetPort(wdpPort);
- ret=socket.Bind(smsaddr);
- @endcode
- */
- ECdmaSmsAddrWdp =11,
- /**
- Sockets bound to a ECdmaSmsAddrBroadcast address will receive broadcast
- messages. Note that broadcast messages cannot be received using other
- address family.
-
- Broadcast messages belong to a service category. A socket can
- be bound so that it receives broadcast messages from a specified service
- category. Alternatively it can receive all broadcast messages, whatever
- the service category.
-
- As well as setting the address's family to ECdmaSmsAddrBroadcast, use
- TCdmaSmsAddr::SetPort to set the required service category from those in
- tia637::TServiceCategory.
-
- @code
- // Receive messages from the Emergency Broadcast service catagory
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsAddrBroadcast);
- smsaddr.SetPort(KEmergencyBroadcasts);
- ret=broadcastSocket.Bind(smsaddr);
-
- // Receive messages from any service category by setting the port to zero
- smsaddr.SetCdmaSmsAddrFamily(ECdmaSmsAddrBroadcast);
- smsaddr.SetPort(0);
- ret=broadcastSocket2.Bind(smsaddr);
- @endcode
- */
- ECdmaSmsAddrBroadcast=12
- };
-
-
-/**
-Sockets for CDMA SMS messages must be bound to an address. A
-socket's address can be thought of as a rule that tells the sockets server
-which messages should be delivered to the socket. When the CDMA SMS stack
-receives a message, it compares the message to the address (or rule) of each
-of the CDMA SMS sockets. If the message's contents match one of the rules,
-the SMS stack uses Symbian OS's sockets server to pass the message to an
-appropriate socket.
-
-The address is an instance of TCdmaSmsAddr. Create an instance then use its
-setter methods to configure up the address. Before receiving SMS messages,
-RSocket::Bind must be called to bind a socket to a appropriate address.
-
-Each address must belong to a family. This broadly defines the type of rule
-used to match messages to socket. Set an address's family with
-SetCdmaSmsAddrFamily. Depending upon the family, call methods to set further
-address variables, thus refining the rule further. To understand address
-better, see the descriptions of the address families in TCdmaSmsAddrFamily.
-
-Two sockets cannot be bound to the same address - the second attempt to bind a
-socket will fail.
-
-Sometimes, a message is received matches several addresses, and so could
-be sent to more than one socket. The messages are compared to address in a
-particular order; see CdmaSmsAddressPriority below for more information.
-*/
-class TCdmaSmsAddr : public TSockAddr
- {
-public:
- /** Maximum length of the text pattern used to match the incoming text. */
- enum { EMaxTextMatchLength = 24 };
-public:
- IMPORT_C TCdmaSmsAddr();
- IMPORT_C TCdmaSmsAddrFamily CdmaSmsAddrFamily() const;
- IMPORT_C void SetCdmaSmsAddrFamily(TCdmaSmsAddrFamily aFamily);
- IMPORT_C TPtrC8 TextMatch() const;
- IMPORT_C void SetTextMatch(const TDesC8& aText);
- IMPORT_C TInt NumTextMatchChar() const;
- IMPORT_C TBool operator==(const TCdmaSmsAddr& aAddr) const;
- IMPORT_C TInt CdmaSmsAddressPriority()const;
- IMPORT_C tia637::TTeleserviceId TeleserviceId() const;
- IMPORT_C void SetTeleserviceId(tia637::TTeleserviceId aTeleserviceId);
- };
-
-#endif //__CDMASMSADDR_H__