diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/es_enum.h --- a/epoc32/include/es_enum.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/es_enum.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,340 @@ -es_enum.h +// Copyright (c) 2003-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: +// + +#if !defined (__ES_ENUM_H__) +#define __ES_ENUM_H__ + +#include +#include +#include + +class TConnArgBase +/** + * Base class for many arguments to RConnection functions. Provides versioning information. + * @note Not intended for user instantiation + * @publishedAll + * @released since v7.0s + */ + { +public: + inline TConnArgBase(); + inline TUint8 Version() const; + +protected: + inline TConnArgBase(TUint8 aVersion); + +protected: + TUint8 iVersion; + TUint8 iReserved[3]; + }; + +/** + * Versioning information for connection arguments + * @publishedAll + * @released since v7.0s + */ +const TUint8 KConnArgVersion1 = 1; + +/** +Versioning information for connection arguments + +@publishedAll +@released +*/ +const TUint8 KConnArgVersion2 = 2; + +class TConnectionInfo : public TConnArgBase +/** +@publishedAll +@released since v7.0s +*/ + { +public: + inline TConnectionInfo(); + TConnectionInfo(const TDesC8& aConnectionInfo /*as passed to ::Bearer/::NoBearer*/); + inline TConnectionInfo(TUint32 aIapId, TUint32 aNetId); + + static TBool IsLocalBearer(const TDesC8& aConnectionInfo); + +protected: + inline TConnectionInfo(TUint8 aVersion, TUint32 aIapId, TUint32 aNetId); + +public: + TUint32 iIapId; + TUint32 iNetId; + }; + +/** +@publishedAll +@released since v7.0s +*/ +typedef TPckgBuf TConnectionInfoBuf; + +class TConnectionInfoV2 : public TConnectionInfo +/** + * Connection information structure (version 2) + * Extends basic connection info with connection type information + * @publishedPartner + * @released since v7.0s + * @see TConnectionInfo +*/ + { +public: + inline TConnectionInfoV2(); + inline TConnectionInfoV2(TUint32 aIapId, TUint32 aNetId, TConnectionType aConnectionType); + inline TConnectionType ConnectionType(); + +protected: + inline TConnectionInfoV2(TUint8 aVersion, TUint32 aIapId, TUint32 aNetId, TConnectionType aConnectionType); + +private: + TConnectionType iConnectionType; + }; + +/** +@publishedPartner +@released since v7.0s +*/ +typedef TPckgBuf TConnectionInfoV2Buf; + +class TSubConnectionInfo : public TConnArgBase +/** + * Base class for information about a subconnection + * @publishedPartner + * @released since v7.0s + * @note Classes for information about a specific connection type should derive from this class + * @note Generic classes for most bearers are defined in nifconninfo.h + * @note Classes with increasingly specific parameters for a connection type should derive from the more generic class of the same connection type, as clients can assume that any less specific TSubConnectionInfo-derived classes are acceptable for use in GetSubConnectionInfo() calls. + */ + { +public: + inline TSubConnectionInfo(); + +public: + TSubConnectionUniqueId iSubConnectionUniqueId; + TConnectionType iConnectionType; + TTime iTimeStarted; + }; + +/** +The following classes are used with RConnection::AllInterfaceNotification() to receive information +about interfaces coming up and going down. +*/ + +/** +@publishedAll +@released since v7.0s +*/ +enum TConnInterfaceState + { + EInterfaceUp, + EInterfaceDown + }; + +class TInterfaceNotification +/** +@publishedAll +@released since v7.0s +*/ + { +public: + TConnectionInfo iConnectionInfo; + TConnInterfaceState iState; + }; + +/** +@internalTechnology +*/ +typedef TPckgBuf TInterfaceNotificationBuf; + +/** +Types of events that can occur on a subconnection + +@publishedAll +@released +*/ +enum TSubConnectionEventType +/** + * Types of events that can occur on a subconnection + * @publishedPartner + * @released since v7.0s + */ + { + ESubConnectionOpened, ///< Connection values 0-9999 for agent-based events + ESubConnectionClosed, ///< Connection values 0-9999 for agent-based events + ESubConnectionQoSChanged = 1000 ///< Connection values 10000-19999 for nif-based events + }; + +class TSubConnectionEvent +/** + * Base class for structures that provide information related to a specific subconnection event + * @note Classes derived from this must not exceed KMaxSubConnectionEventSize bytes in size + * @publishedPartner + * @released since v7.0s + */ + { +public: + IMPORT_C TSubConnectionEvent* CloneL() const; + IMPORT_C TUint Length() const; + +protected: + IMPORT_C TSubConnectionEvent(TSubConnectionEventType aEventType, TUint aLength); +public: + TSubConnectionUniqueId iSubConnectionUniqueId; + TSubConnectionEventType iEventType; +protected: + TUint iLength; + }; + +class TSubConnectionOpenedEvent : public TSubConnectionEvent +/** + * Information about a subconnection that has just been opened + * @publishedPartner + * @released since v7.0s + * @note This class currently not passed to clients, as it is (essentially) empty + */ + { +public: + IMPORT_C TSubConnectionOpenedEvent(); + }; + +class TSubConnectionClosedEvent : public TSubConnectionEvent +/** + * Information about a subconnection that has just been closed + * @publishedPartner + * @released since v7.0s + * @note The time closed uses universal time as a time zone + */ + { +public: + IMPORT_C TSubConnectionClosedEvent(); +public: + TUint iTotalUplinkDataVolume; + TUint iTotalDownlinkDataVolume; + TTime iTimeClosed; // universal time + }; + +class TSubConnectionQoSChangedEvent : public TSubConnectionEvent +/** + * Information about a subconnection on which the QoS settings have just changed. This only signals that QoS has changed. If the client wants to know what has changed should then get TSubConnectionInfo + * @publishedPartner + * @released since v7.0s + * @note This will be produced by NIFs when QoS changes + */ + { +public: + IMPORT_C TSubConnectionQoSChangedEvent(); + }; + +/** +@internalTechnology +*/ +typedef TPckgBuf TInterfaceNotificationBuf; + + +/** +The following classes are used to enumerate clients and sockets associated with a +particular connection. RConnection::Control() is used to retrieve this information. +*/ + +class TConnectionEnumArg : public TConnArgBase +/** +for KCoEnumerateConnectionClients and KCoEnumerateConnectionSockets +@publishedPartner +@released since v7.0s +*/ + { +public: + inline TConnectionEnumArg(); +public: + TUint iIndex; + TUint iCount; + }; + +/** +@internalComponent +*/ +typedef TPckgBuf TConnEnumArgBuf; + +class TConnectionClientInfo +/** +@publishedPartner +@released since v7.0s +*/ + { +public: + inline TConnectionClientInfo(); + inline TConnectionClientInfo(TUint aProcId, TUint aUid, TUint aThreadId); +public: + TProcessId iProcessId; + TUid iUid; + TThreadId iThreadId; + }; + +class TConnectionGetClientInfoArg : public TConnArgBase +/** +for KCoGetConnectionClientInfo +@publishedPartner +@released since v7.0s +*/ + { +public: + inline TConnectionGetClientInfoArg(); +public: + TUint iIndex; + TConnectionClientInfo iClientInfo; + }; + +/** +@internalComponent +*/ +typedef TPckgBuf TConnGetClientInfoArgBuf; + +class TConnectionSocketInfo +/** +@internalComponent +*/ + { +public: + inline TConnectionSocketInfo(); +public: + TUint iAddressFamily; + TUint iProtocol; + TSockAddr iSourceAddress; + TSockAddr iDestinationAddress; + }; + +class TConnectionGetSocketInfoArg : public TConnArgBase +/** +for KCoGetConnectionSocketInfo + +@internalComponent +*/ + { +public: + TConnectionGetSocketInfoArg(); +public: + TUint iIndex; + TConnectionSocketInfo iSocketInfo; + }; + +/** +@internalComponent +*/ +typedef TPckgBuf TConnGetSocketInfoArgBuf; + +#include + +#endif // __ES_ENUM_H__