--- 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 <e32std.h>
+#include <nifvar.h>
+#include <es_sock.h>
+
+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<TConnectionInfo> 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<TConnectionInfoV2> 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<TInterfaceNotification> 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<TInterfaceNotification> 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<TConnectionEnumArg> 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<TConnectionGetClientInfoArg> 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<TConnectionGetSocketInfoArg> TConnGetSocketInfoArgBuf;
+
+#include <es_enum.inl>
+
+#endif // __ES_ENUM_H__