1.1 --- a/epoc32/include/es_sock.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/es_sock.h Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,9 +1,9 @@
1.4 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 // All rights reserved.
1.6 // This component and the accompanying materials are made available
1.7 -// 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
1.8 +// under the terms of "Eclipse Public License v1.0"
1.9 // which accompanies this distribution, and is available
1.10 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.11 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.12 //
1.13 // Initial Contributors:
1.14 // Nokia Corporation - initial contribution.
1.15 @@ -13,8 +13,6 @@
1.16 // Description:
1.17 //
1.18
1.19 -
1.20 -
1.21 /**
1.22 @file
1.23 @publishedAll
1.24 @@ -34,6 +32,11 @@
1.25 #endif
1.26
1.27 #include <comms-infras/metacontainer.h>
1.28 +#include <elements/sd_errors.h>
1.29 +#include <comms-infras/es_parameterset.h>
1.30 +
1.31 +#include <comms-infras/es_event.h>
1.32 +
1.33 using Meta::STypeId;
1.34 using Meta::SMetaDataECom;
1.35 using Meta::RMetaDataEComContainer;
1.36 @@ -46,12 +49,6 @@
1.37 }
1.38
1.39 /**
1.40 -Name of ESock server in EKA2
1.41 -@internalComponent
1.42 -*/
1.43 -_LIT(SOCKET_SERVER_NAME, "!SocketServer");
1.44 -
1.45 -/**
1.46 Canonical names for the core ESOCKSVR modules
1.47 */
1.48 _LIT8(SOCKET_SERVER_MAIN_MODULE_NAME, "ESock_Main"); // Worker 0
1.49 @@ -60,11 +57,28 @@
1.50 _LIT8(SOCKET_SERVER_IR_MODULE_NAME, "ESock_Ir"); // Worker 3
1.51 _LIT8(SOCKET_SERVER_SMSWAP_MODULE_NAME, "ESock_SmsWap"); // Worker 4
1.52
1.53 +
1.54 /**
1.55 -Id of the network layer.
1.56 -@publishedPartner
1.57 +Progress Notification to inform clients Connection is up
1.58 +This event has the same numerical values as
1.59 +KLinkLayerOpen which is deprecated
1.60 +@publishedAll
1.61 +@released
1.62 */
1.63 -const TUint KCommsNetworkLayerId = 1;
1.64 +
1.65 +const TUint KConnectionUp = 7000;
1.66 +/**
1.67 +Progress Notification to inform clients Connection is up
1.68 +This event has the same numerical values as
1.69 +KLinkLayerClosed which is deprecated
1.70 +
1.71 +@publishedAll
1.72 +@released
1.73 +*/
1.74 +
1.75 +const TUint KConnectionDown = 8000;
1.76 +
1.77 +
1.78
1.79 /**
1.80 Default number of message slots.
1.81 @@ -73,32 +87,12 @@
1.82 */
1.83 const TUint KESockDefaultMessageSlots=8;
1.84
1.85 -/**
1.86 -Major Version Number of Connection
1.87 -
1.88 -@internalComponent
1.89 -*/
1.90 -const TUint KConnectionMajorVersionNumber=1;
1.91 -
1.92 -/**
1.93 -Minor Version Number of Connection
1.94 -
1.95 -@internalComponent
1.96 -*/
1.97 -const TUint KConnectionMinorVersionNumber=0;
1.98 -
1.99 -/**
1.100 -Build Version Number of Connection
1.101 -this must not be changed - expected by TCPIP to be >=68
1.102 -
1.103 -@internalComponent
1.104 -*/
1.105 -const TUint KConnectionBuildVersionNumber=68;
1.106
1.107 /**
1.108 Size of Maximum SubConnection event
1.109
1.110 -@internalComponent
1.111 +@publishedAll
1.112 +@released
1.113 @note If you allocate this on the heap, remember to delete through the pointer to the buffer and not any pointers to the events held inside it
1.114 if you change this value, you will alter the function signature and break the .def file
1.115 */
1.116 @@ -106,6 +100,9 @@
1.117
1.118 /**
1.119 SubConnection Unique Id
1.120 +
1.121 +THIS API IS TO BE DEPRECATED
1.122 +
1.123 @publishedPartner
1.124 @released
1.125 */
1.126 @@ -113,14 +110,17 @@
1.127
1.128 /**
1.129 Buffer for notification of any change in the state of SubConnection.
1.130 +
1.131 +THIS API IS TO BE DEPRECATED
1.132 +
1.133 @publishedPartner
1.134 @released
1.135 */
1.136 typedef TBuf8<KMaxSubConnectionEventSize> TSubConnectionNotificationBuf;
1.137 //
1.138 -const TUint KUseEmbeddedUniqueId = 0; ///< Used by RConnection to identify cases where the subconnection id is embedded in the data structure
1.139 +const TUint KUseEmbeddedUniqueId = 0; //< Used by RConnection to identify cases where the subconnection id is embedded in the data structure
1.140
1.141 -const TUint KConnProgressDefault = 0; ///< Default Connection Progress
1.142 +const TUint KConnProgressDefault = 0; //< Default Connection Progress
1.143
1.144 class TSessionPref
1.145 /**
1.146 @@ -160,6 +160,8 @@
1.147 {
1.148 public:
1.149 inline TNifProgress();
1.150 + inline TNifProgress(TInt aStage, TInt aError);
1.151 + inline TBool operator==(const TNifProgress& aRHS) const;
1.152 TInt iStage;
1.153 TInt iError;
1.154 };
1.155 @@ -336,7 +338,11 @@
1.156 support urgent data).
1.157 Value is a TInt. */
1.158 const TUint KSOUrgentDataOffset=8;
1.159 -/** Getting only: retrieves the last error. Value is a TInt. */
1.160 +/**
1.161 +Getting only: retrieves the last error.
1.162 +Errors are normally reported by the called method and behaviour is protocol dependent.
1.163 +KSOSelectLastError does not return such errors.
1.164 +Value is a TInt. */
1.165 const TUint KSOSelectLastError=9;
1.166
1.167
1.168 @@ -362,17 +368,8 @@
1.169 const TInt KSocketDefaultBufferSize=4096;
1.170
1.171 //internal
1.172 -const TUint KSocketInternalOptionBit=0x80000000; ///< Must not be set for client requests
1.173 +const TUint KSocketInternalOptionBit=0x80000000; //< Must not be set for client requests
1.174
1.175 -/**
1.176 -Ioctls
1.177 -
1.178 -Must not be set for client requests
1.179 -
1.180 -@internalComponent
1.181 -@released
1.182 -*/
1.183 -const TUint KInternalIoctlBit=0x80000000;
1.184
1.185 /** The aDesc parameter of RSocket::Ioctl() specifies a TUint containing a bitmask
1.186 of Socket status constants. The completion status will be the subset of those
1.187 @@ -443,7 +440,7 @@
1.188 // TServerProtocolDesc and TProtocolDesc
1.189 //
1.190 /** The protocol is connectionless.
1.191 -@publishedPartner
1.192 +@publishedAll
1.193 @released */
1.194 const TUint KSIConnectionLess=0x00000001;
1.195 /** The protocol is reliable. */
1.196 @@ -483,8 +480,11 @@
1.197 const TUint KSIPeekData=0x00010000;
1.198 /** Protocol is to be informed of the identity of the client (i.e. process ID,
1.199 thread ID and UID) of each SAP (i.e. Socket Service Provider) created.
1.200 +Note that this value has no meaningful interpretation on the client side.
1.201 @see KSoOwnerInfo and TSoOwnerInfo */
1.202 const TUint KSIRequiresOwnerInfo=0x00020000; // SetOption(KSoOwnerInfo) invoked on each SAP
1.203 +/** @internalTechnology */
1.204 +const TUint KSIReserved=0xFFFC0000;
1.205
1.206 //
1.207 // Naming service constants
1.208 @@ -493,13 +493,13 @@
1.209 //
1.210 /** Protocol supports resolving human readable entity names into network addresses
1.211 (like DNS).
1.212 -@publishedPartner
1.213 +@publishedAll
1.214 @released */
1.215 const TUint KNSNameResolution=0x00000001;
1.216 /** Network naming is hierarchical. */
1.217 const TUint KNSHierarchicalNaming=0x00000002;
1.218 /** @deprecated Use KNSHierarchicalNaming instead. */
1.219 -const TUint KNSHeirarchicalNaming=0x00000002;
1.220 +const TUint KNSHeirarchicalNaming=KNSHierarchicalNaming;
1.221 /** Addressing is dynamic and should be attempted every time before connecting
1.222 (like IrDA). */
1.223 const TUint KNSRemoteDiscovery=0x00000004;
1.224 @@ -516,8 +516,12 @@
1.225 /** Protocol has another database which is defined by the protocol. */
1.226 const TUint KNSInfoDatabase=0x00000080;
1.227 /** Protocol may request Socket Server to startup a connection on its behalf (via
1.228 -the KErrCompletion error code)*/
1.229 +the KErrCompletion error code)
1.230 +Note that this value has no meaningful interpretation on the client side.
1.231 +*/
1.232 const TUint KNSRequiresConnectionStartup=0x00000100;
1.233 +/** @internalTechnology */
1.234 +const TUint KNSReserved=0xFFFFFE00;
1.235
1.236 // Security Schemes
1.237 // The following constants are defined for
1.238 @@ -557,6 +561,12 @@
1.239 @released */
1.240 const TUint KUndefinedProtocol=0xFFFFFFFE;
1.241
1.242 +/** Undefined address family
1.243 +@publishedPartner
1.244 +@released
1.245 + */
1.246 +const TUint KUndefinedAddressFamily = 0;
1.247 +
1.248 /** Contains the name of a protocol in structure TProtocolDesc.
1.249 @publishedAll
1.250 @released */
1.251 @@ -633,56 +643,45 @@
1.252 */
1.253 const TInt KErrConnectionTerminated=-17210;
1.254
1.255 -const TInt KErrCannotFindProtocol = -17211;
1.256 +const TInt KErrCannotFindProtocol = Den::KErrPlayerNotFound;
1.257 +const TInt KErrTierNotFound = -17212;
1.258 +const TInt KErrConnectionContention = -17213;
1.259 +
1.260 +/**
1.261 +The protocol requested for the socket was recognised but was not able to be used.
1.262 +This can happen with protocols that require specific settings to have been prepared
1.263 +prior to the socket being opened.
1.264 +
1.265 +@publishedAll
1.266 +@released
1.267 +*/
1.268 +const TInt KErrProtocolNotReady = -17214;
1.269 +
1.270 +// -17215 used for non published error. Do not use here.
1.271 +
1.272
1.273 /** Used in RSocket read and write calls to pass the length of data read and written.
1.274 @publishedAll
1.275 @released */
1.276 typedef TPckgBuf<TInt> TSockXfrLength;
1.277
1.278 -class TSockIO
1.279 -/**
1.280 -IPC Data holder
1.281
1.282 -@internalComponent
1.283 -*/
1.284 +
1.285 +namespace ESockDebug
1.286 {
1.287 -public:
1.288 - const TSockXfrLength* iLength; ///< length of data read and written
1.289 - TUint iFlags; ///< Flag
1.290 - TSockAddr* iAddr; ///< Socket Address
1.291 - };
1.292 -
1.293 -class TSockIOBufC : public TPckgC<TSockIO>
1.294 -/** @internalComponent */
1.295 - {
1.296 -public:
1.297 - inline TSockIOBufC();
1.298 - TSockIO iArgs;
1.299 - };
1.300 -
1.301 -class TSockOpen
1.302 -/** @internalComponent */
1.303 - {
1.304 -public:
1.305 - TUint iAddrFamily;
1.306 - TUint iSockType;
1.307 - TUint iProtocol;
1.308 - TInt iHandle;
1.309 - TInt iReserved;
1.310 - };
1.311 -
1.312 -class TSockOpenBufC : public TPckgC<TSockOpen>
1.313 -/** @internalComponent */
1.314 - {
1.315 -public:
1.316 - inline TSockOpenBufC();
1.317 - TSockOpen iArgs;
1.318 - };
1.319 + class TControlMsg;
1.320 + }
1.321
1.322 class RSocket;
1.323 class RConnection;
1.324 -class RSocketServ : public RSessionBase
1.325 +
1.326 +NONSHARABLE_CLASS(RCommsSession) : public RSessionBase
1.327 + {
1.328 + friend class RCommsApiExtensionBase;
1.329 + friend class CCommsSessionApiExtProvider;
1.330 + };
1.331 +
1.332 +class RSocketServ : public RCommsSession
1.333 /** Provides the Connect() function to create an IPC communication channel to the
1.334 socket server. To close the channel RHandleBase provides a RHandleBase::Close()
1.335 function.
1.336 @@ -729,11 +728,13 @@
1.337 IMPORT_C TInt __DbgCheckMbuf(TInt asize);
1.338 IMPORT_C TInt __DbgMbufFreeSpace();
1.339 IMPORT_C TInt __DbgMbufTotalSpace();
1.340 + IMPORT_C TInt __DbgControl(const ESockDebug::TControlMsg& aRequestMsg);
1.341 };
1.342
1.343 NONSHARABLE_CLASS(RCommsSubSession) : public RSubSessionBase
1.344 {
1.345 friend class RCommsApiExtensionBase;
1.346 + friend class CCommsSubSessionApiExtProvider;
1.347 };
1.348
1.349 class RSubConnection;
1.350 @@ -759,7 +760,8 @@
1.351 {
1.352 friend class RSocketServ;
1.353 public:
1.354 - /** Used in structure TProtocolDesc to describes the endianness of a protocol. */
1.355 + /** Argument to RSocket::Shutdown() specifying how abruptly the shutdown occurs.
1.356 + */
1.357 enum TShutdown
1.358 {
1.359 /** Complete when socket output/input stopped. */
1.360 @@ -789,6 +791,7 @@
1.361 IMPORT_C void Recv(TDes8& aDesc,TUint flags,TRequestStatus& aStatus,TSockXfrLength& aLen);
1.362
1.363 IMPORT_C void RecvOneOrMore(TDes8& aDesc,TUint flags,TRequestStatus& aStatus,TSockXfrLength& aLen);
1.364 + IMPORT_C void RecvOneOrMore(TDes8& aDesc,TUint flags,TRequestStatus& aStatus);
1.365 IMPORT_C void CancelRecv();
1.366
1.367 IMPORT_C void Read(TDes8& aDesc,TRequestStatus& aStatus);
1.368 @@ -839,10 +842,13 @@
1.369 {
1.370 public:
1.371 inline TNameRecord();
1.372 - /**
1.373 - @internalComponent
1.374 - */
1.375 - enum {EAlias=0x00000001,};
1.376 +
1.377 + enum
1.378 + {
1.379 + EAlias=0x00000001,
1.380 + EPartial=0x00000002, /*!< Indicates a partial (truncated) host name. */
1.381 +
1.382 + };
1.383 /** A host name
1.384
1.385 @see THostName */
1.386 @@ -908,6 +914,7 @@
1.387 IMPORT_C TInt Query(const TDesC8& aQuery, TDes8& aResult);
1.388 IMPORT_C void QueryGetNext(TDes8& aResult, TRequestStatus& aStatus);
1.389 IMPORT_C TInt QueryGetNext(TDes8& aResult);
1.390 + IMPORT_C TInt SetOpt(TUint anOptionName,TUint anOptionLevel,const TDesC8& anOption=TPtrC8(NULL,0));
1.391
1.392 private:
1.393 };
1.394 @@ -970,51 +977,6 @@
1.395 private:
1.396 };
1.397
1.398 -/**
1.399 -@publishedPartner
1.400 -@released
1.401 -*/
1.402 -
1.403 -const TUint KCOLConnection = 1; // level for RConnection::Control()
1.404 -const TUint KCOLProvider = 2; // level for RConnection::Control()
1.405 -const TUint KConnInternalOptionBit = 0x80000000; // Must not be set for client requests
1.406 -const TUint KConnWriteUserDataBit = 0x40000000;
1.407 -const TUint KConnReadUserDataBit = 0x20000000;
1.408 -
1.409 -/**
1.410 -Level for RConnection::Control()
1.411 -
1.412 -@publishedPartner
1.413 -@deprecated in 8.1
1.414 -@capability NetworkControl Restrict access to connection clients
1.415 -@ref RConnection::Control()
1.416 -*/
1.417 -const TUint KCoEnumerateConnectionClients = 1 | (KConnWriteUserDataBit | KConnReadUserDataBit);
1.418 -
1.419 -/**
1.420 -Level for RConnection::Control()
1.421 -Information about client
1.422 -
1.423 -@publishedPartner
1.424 -@deprecated in 8.1
1.425 -@capability NetworkControl Restrict access to connection client info
1.426 -@ref RConnection::Control()
1.427 -*/
1.428 -const TUint KCoGetConnectionClientInfo = 2 | (KConnWriteUserDataBit | KConnReadUserDataBit);
1.429 -
1.430 -/** @internalTechnology */
1.431 -const TUint KCoEnumerateConnectionSockets = 3 | (KConnWriteUserDataBit | KConnReadUserDataBit);
1.432 -
1.433 -/**
1.434 -Level for RConnection::Control()
1.435 -Information about connected socket
1.436 -
1.437 -@publishedPartner
1.438 -@deprecated
1.439 -@capability NetworkControl Restrict access to socket info on a connection
1.440 -@ref RConnection::Control()
1.441 -*/
1.442 -const TUint KCoGetConnectionSocketInfo = 4 | (KConnWriteUserDataBit | KConnReadUserDataBit);
1.443
1.444 /**
1.445 Default connection type
1.446 @@ -1023,20 +985,6 @@
1.447 */
1.448 const TUint KConnectionTypeDefault = 0x0800; // KAfInet is the default connection type
1.449
1.450 -/**
1.451 -Setting only: enable processes to "clone" open this RConnection instance via a call to
1.452 -RConnection::Open(..., TName&), as long as they conform to the security policy
1.453 -passed as argument (specified as a TSecurityPolicyBuf).
1.454 -@internalTechnology
1.455 -*/
1.456 -const TUint KCoEnableCloneOpen = 5 | (KConnReadUserDataBit);
1.457 -
1.458 -/**
1.459 -Setting only: disable "clone" open of this RConnection instance, which was enabled via
1.460 -a previous KCoEnableCloneOpen option.
1.461 -@internalTechnology
1.462 -*/
1.463 -const TUint KCoDisableCloneOpen = 6 | (KConnReadUserDataBit);
1.464
1.465 class TConnPref;
1.466 class TSubConnectionInfo;
1.467 @@ -1157,17 +1105,35 @@
1.468 IMPORT_C void ServiceChangeNotification(TUint32& aNewISPId, TDes& aNewServiceType, TRequestStatus& aStatus);
1.469 IMPORT_C void CancelServiceChangeNotification();
1.470
1.471 +
1.472 + /**
1.473 + @deprecated Since SymbianOS v9.5
1.474 + */
1.475 IMPORT_C TInt GetIntSetting(const TDesC& aSettingName, TUint32& aValue);
1.476 +
1.477 + /**
1.478 + @deprecated Since SymbianOS v9.5
1.479 + */
1.480 IMPORT_C TInt GetBoolSetting(const TDesC& aSettingName, TBool& aValue);
1.481 +
1.482 + /**
1.483 + @deprecated Since SymbianOS v9.5
1.484 + */
1.485 IMPORT_C TInt GetDesSetting(const TDesC& aSettingName, TDes8& aValue);
1.486 +
1.487 + /**
1.488 + @deprecated Since SymbianOS v9.5
1.489 + */
1.490 IMPORT_C TInt GetDesSetting(const TDesC& aSettingName, TDes16& aValue);
1.491 +
1.492 + /**
1.493 + @deprecated Since SymbianOS v9.5
1.494 + */
1.495 IMPORT_C TInt GetLongDesSetting(const TDesC& aSettingName, TDes& aValue);
1.496
1.497
1.498 - /**
1.499 - @prototype SymbianOS v9.4
1.500 - */
1.501 IMPORT_C TInt GetParameters(ESock::CCommsDataObjectBase& aDataObject);
1.502 + IMPORT_C TInt SetParameters(ESock::CCommsDataObjectBase& aDataObject);
1.503
1.504 IMPORT_C TInt Name(TName& aName);
1.505
1.506 @@ -1215,11 +1181,13 @@
1.507 TUint32 iReserved[4];
1.508 };
1.509
1.510 -class CSubConParameterSet : public SMetaDataECom
1.511 +class CSubConParameterSet : public XParameterSetBase
1.512 /** Base class for all RSubConnection parameter sets.
1.513
1.514 +THIS API IS DEPRECATED IN FAVOUR OF XParameterSet
1.515 +
1.516 @publishedAll
1.517 -@released since v9.0 */
1.518 +@deprecated since v9.6 */
1.519 {
1.520 public:
1.521 IMPORT_C static CSubConParameterSet* NewL(const STypeId& aTypeId);
1.522 @@ -1233,8 +1201,10 @@
1.523 class CSubConGenericParameterSet : public CSubConParameterSet
1.524 /** Base class for generic RSubConnection parameter sets.
1.525
1.526 +THIS API IS DEPRECATED IN FAVOUR OF XParameterSet
1.527 +
1.528 @publishedAll
1.529 -@released since v9.0 */
1.530 +@deprecated since v9.6 */
1.531 {
1.532 public:
1.533 IMPORT_C ~CSubConGenericParameterSet();
1.534 @@ -1246,8 +1216,10 @@
1.535 class CSubConExtensionParameterSet : public CSubConParameterSet
1.536 /** Base class for extended RSubConnection parameter sets.
1.537
1.538 +THIS API IS DEPRECATED IN FAVOUR OF XParameterSet
1.539 +
1.540 @publishedAll
1.541 -@released since v9.0 */
1.542 +@deprecated since v9.6 */
1.543 {
1.544 public:
1.545 IMPORT_C ~CSubConExtensionParameterSet();
1.546 @@ -1265,13 +1237,17 @@
1.547 const TInt32 KSubConnGenericParamsImplUid = 0x10204304;
1.548 const TInt32 KSubConnGenericEventsImplUid = 0x10204306;
1.549
1.550 -const TUint32 KSubConGlobalFamily = 0;
1.551 -const TUint32 KSubConQoSFamily = 1;
1.552 -const TUint32 KSubConAuthorisationFamily = 2;
1.553 -const TUint32 KSubConnCallDescrParamsFamily = 3;
1.554 -#ifdef SYMBIAN_NETWORKING_UMTSR5
1.555 -const TUint32 KSubConnContextDescrParamsFamily = 4;
1.556 -#endif //SYMBIAN_NETWORKING_UMTSR5
1.557 +const TUint32 KSubConGlobalFamily = 0;
1.558 +const TUint32 KSubConQoSFamily = 1;
1.559 +const TUint32 KSubConAuthorisationFamily = 2;
1.560 +const TUint32 KSubConnCallDescrParamsFamily = 3;
1.561 +const TUint32 KSubConnContextDescrParamsFamily = 4;
1.562 +
1.563 +const TUint32 KSubConIPAddressInfoFamily = 5;
1.564 +
1.565 +const TInt32 KProtocolExtensionFamily = 6;
1.566 +const TInt32 KFlowParametersFamily = 7;
1.567 +class RParameterFamily;
1.568
1.569 class CSubConParameterFamily : public CBase
1.570 /** Container of RSubConnection parameter sets.
1.571 @@ -1279,8 +1255,16 @@
1.572 For each Parameter Type (Requested, Acceptable and Granted) it
1.573 contains one generic and 0..N extended parameter sets.
1.574
1.575 +Note:
1.576 +a CSubConParameterBundle or RSubConParameterBundle object can take ownership of a
1.577 +CSubConParameterFamily object, in this case, when the bundle is destroyed, this
1.578 +family object will also be destroyed (along with any parameter sets that are owned
1.579 +by the family).
1.580 +
1.581 +THIS API IS DEPRECATED IN FAVOUR OF RParameterFamily
1.582 +
1.583 @publishedAll
1.584 -@released since v9.0 */
1.585 +@deprecated since v9.6 */
1.586 {
1.587 public:
1.588
1.589 @@ -1314,59 +1298,47 @@
1.590 IMPORT_C TInt Store(TDes8& aDes) const;
1.591 IMPORT_C void ClearAllParameters(TParameterSetType aType);
1.592
1.593 + /**
1.594 + Copy the parameters of this CSubConParameterFamily to a RParameterFamily.
1.595 + @param aDest RParameterFamily object to copy to
1.596 + */
1.597 + void CopyToFamilyL(RParameterFamily& aDest) const;
1.598 +
1.599 + /**
1.600 + Copy the parameters of this CSubConParameterFamily from a RParameterFamily.
1.601 + @param aSrc RParameterFamily object to copy from
1.602 + */
1.603 + void CopyFromFamilyL(RParameterFamily& aSrc);
1.604 protected:
1.605 - explicit CSubConParameterFamily(TUint32 aFamilyId);
1.606 - void ConstructL(RSubConParameterBundle& aBundle);
1.607 - void ConstructL(CSubConParameterBundle& aBundle);
1.608 + IMPORT_C explicit CSubConParameterFamily(TUint32 aFamilyId);
1.609 + IMPORT_C void ConstructL(RSubConParameterBundle& aBundle);
1.610 + IMPORT_C void ConstructL(CSubConParameterBundle& aBundle);
1.611
1.612 - static TInt32 ExtractFamilyAndCreateBufferL(TPtrC8& aBuffer, TPtrC8& aContainerBuffer);
1.613 + IMPORT_C static TInt32 ExtractFamilyAndCreateBufferL(TPtrC8& aBuffer, TPtrC8& aContainerBuffer);
1.614
1.615 private:
1.616 - const TUint32 iFamilyId;
1.617 + const TUint32 iFamilyId; // This member variable is accessed by an inline function ( Id () ).
1.618 RMetaDataEComContainer iGenericSets;
1.619 +protected:
1.620 RMetaDataEComContainer iExtensionSets[ENumValues];
1.621 +
1.622 };
1.623
1.624 -class CSubConParameterBundle : public CObject
1.625 -/** Container for (bundle of) SubConnection parameter families.
1.626 -
1.627 -May contain and 0..N parameter families.
1.628 -
1.629 -@publishedPartner
1.630 -@released since v9.0 */
1.631 - {
1.632 -public:
1.633 - IMPORT_C static CSubConParameterBundle* NewL();
1.634 - IMPORT_C static CSubConParameterBundle* LoadL(TDesC8& aDes);
1.635 -
1.636 - IMPORT_C ~CSubConParameterBundle();
1.637 -
1.638 - IMPORT_C TUint Length() const;
1.639 - IMPORT_C TInt Load(const TDesC8& aDes);
1.640 - IMPORT_C TInt Store(TDes8& aDes) const;
1.641 - IMPORT_C void AddFamilyL(CSubConParameterFamily* aFamily);
1.642 - IMPORT_C CSubConParameterFamily* FindFamily(TUint32 aFamilyId);
1.643 - IMPORT_C void ClearAllParameters(CSubConParameterFamily::TParameterSetType aType);
1.644 -
1.645 -protected:
1.646 - CSubConParameterBundle();
1.647 -
1.648 -private:
1.649 - CSubConParameterBundle(const CSubConParameterBundle& aBundle);
1.650 - CSubConParameterBundle& operator=(const CSubConParameterBundle& aBundle);
1.651 -
1.652 -private:
1.653 - RPointerArray<CSubConParameterFamily> iFamilies;
1.654 - };
1.655 -
1.656 +class RParameterFamilyBundle;
1.657 class RSubConParameterBundle
1.658 /** Container for (bundle of) SubConnection parameter families.
1.659
1.660 May contain and 0..N SubConnection parameter families.
1.661
1.662 +Note:
1.663 +If the RSubConParameterBundle object takes ownership of any CSubConParameterFamily object,
1.664 +then when the bundle object is destroyed, any family owned by this object will also be
1.665 +destroyed.
1.666 +
1.667 +THIS API IS DEPRECATED IN FAVOUR OF RParameterFamilyBundle
1.668
1.669 @publishedAll
1.670 -@released since v9.0 */
1.671 +@deprecated since v9.6 */
1.672 {
1.673 public:
1.674 IMPORT_C RSubConParameterBundle();
1.675 @@ -1379,6 +1351,18 @@
1.676 IMPORT_C CSubConParameterFamily* FindFamily(TUint32 aFamilyId);
1.677 IMPORT_C void ClearAllParameters(CSubConParameterFamily::TParameterSetType aType);
1.678
1.679 + /**
1.680 + Copy the contents of this parameter bundle to a RParameterFamilyBundle.
1.681 + @param aDest RParameterFamilyBundle to copy parameters to
1.682 + */
1.683 + void CopyToFamilyBundleL(RParameterFamilyBundle& aDest) const;
1.684 +
1.685 + /**
1.686 + Copy the contents of an RParameterFamilyBundle to this RSubConParameterBundle
1.687 + @param aSrc RParameterFamilyBundle to copy contents from
1.688 + */
1.689 + void CopyFromFamilyBundleL(RParameterFamilyBundle& aSrc);
1.690 +
1.691 protected:
1.692 TInt CheckBundle() const;
1.693 private:
1.694 @@ -1389,6 +1373,7 @@
1.695 mutable CSubConParameterBundle* iBundle;
1.696 };
1.697
1.698 +
1.699 const TInt KNotificationEventMaxSize = 2048;
1.700 class TNotificationEventBuf : public TBuf8<KNotificationEventMaxSize>
1.701 /**
1.702 @@ -1407,7 +1392,11 @@
1.703 IMPORT_C TUint32 Id() const;
1.704 };
1.705
1.706 +#ifndef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
1.707 class CSubConNotificationEvent : public SMetaDataECom
1.708 +#else
1.709 +class CSubConNotificationEvent : public ESock::XEventBase
1.710 +#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
1.711 {
1.712 public:
1.713 IMPORT_C static CSubConNotificationEvent* NewL(const STypeId& aTypeId);
1.714 @@ -1439,10 +1428,10 @@
1.715 TInt iReserved;
1.716 };
1.717
1.718 -class RSubConnection : public RSubSessionBase
1.719 +class RSubConnection : public RCommsSubSession
1.720 /** A Sub-Connection, a channel within a Connection. A representation of a channel between this device and remote devices with which we are communicating. This channel will be used by one or more sockets.
1.721 Depending on the state of the channel, it may not be possible to bind arbitary sockets into it. Attempts to bind sockets from different protocol families to a single channel is an error, as each channel can only be used by one protocol family.
1.722 - @note The sub-connection can represent a end-to-end channel and/or a channel from this device to an intermediate device (e.g an access server such as a GGSN which using UMTS and PDP contexts. Properties can be specified simultaneously on protocol and link level.
1.723 + @note The sub-connection can represent a end-to-end channel and/or a channel from this device to an intermediate device (e.g an access server such as a GGSN which using UMTS and PDP contexts. Properties can be specified simultaneously on protocol and link level.)
1.724
1.725 Before using any of these services, a connection to a socket server session
1.726 must have been made and the connection must be open.
1.727 @@ -1456,7 +1445,8 @@
1.728 enum TSubConnType
1.729 {
1.730 EAttachToDefault,
1.731 - ECreateNew
1.732 + ECreateNew,
1.733 + EWaitIncoming
1.734 };
1.735
1.736 struct TEventFilter
1.737 @@ -1473,16 +1463,20 @@
1.738 IMPORT_C void Close();
1.739 IMPORT_C void Start(TRequestStatus& aStatus);
1.740 IMPORT_C TInt Start();
1.741 - IMPORT_C TInt Stop();
1.742 + IMPORT_C TInt Stop();
1.743
1.744 // Socket Management
1.745 IMPORT_C void Add(RSocket& aSocket, TRequestStatus& aStatus);
1.746 IMPORT_C void Remove(RSocket& aSocket, TRequestStatus& aStatus);
1.747
1.748 - // QoS Properties
1.749 + // QoS Properties (legacy bundles - to be deprecated)
1.750 IMPORT_C TInt SetParameters(const RSubConParameterBundle& aParametersSet);
1.751 IMPORT_C TInt GetParameters(RSubConParameterBundle& aParametersSet);
1.752
1.753 + // QoS Properties (new prototype bundles)
1.754 + IMPORT_C TInt SetParameters(const RParameterFamilyBundle& aParametersSet);
1.755 + IMPORT_C TInt GetParameters(RParameterFamilyBundle& aParametersSet);
1.756 +
1.757 // Event Notification
1.758 IMPORT_C void EventNotification(TNotificationEventBuf& aEventBuffer, TBool aGenericEventsOnly, TRequestStatus& aStatus);
1.759 IMPORT_C void EventNotification(TNotificationEventBuf& aEventBuffer, TEventFilter aEventFilterList[], TUint aEventListLength, TRequestStatus& aStatus);
1.760 @@ -1490,6 +1484,15 @@
1.761
1.762 // Generic Control
1.763 IMPORT_C TInt Control(TUint aOptionLevel, TUint aOptionName, TDes8& aOption);
1.764 +
1.765 + //
1.766 + // IMPORT_C TInt Stop(TConnStopType aStopType);
1.767 + // IMPORT_C void ProgressNotification(TNifProgressBuf& aProgress, TRequestStatus& aStatus, TUint aSelectedProgress = KConnProgressDefault);
1.768 + // IMPORT_C void CancelProgressNotification();
1.769 + // IMPORT_C TInt Progress(TNifProgress& aProgress);
1.770 + // IMPORT_C void IsSubConnectionActiveRequest(TUint aSecs, TPckg<TBool>& aState, TRequestStatus& aStatus);
1.771 + // IMPORT_C void IsSubConnectionActiveCancel();
1.772 + //
1.773
1.774 TBool SameSession(TInt aSessionHandle);
1.775
1.776 @@ -1538,7 +1541,9 @@
1.777
1.778 class TAccessPointInfo
1.779 /** Stores Access Point information.
1.780 -@publishedAll */
1.781 +@publishedAll
1.782 +@released
1.783 +*/
1.784 {
1.785 public:
1.786 TAccessPointInfo(TUint aApId = 0);
1.787 @@ -1551,6 +1556,13 @@
1.788 TUint iAccessPointId;
1.789 };
1.790
1.791 +
1.792 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1.793 +#include <es_sock_internal.h>
1.794 +#include <es_sock_partner.h>
1.795 +#endif
1.796 +
1.797 #include <es_sock.inl>
1.798
1.799 #endif //__ES_SOCK_H__
1.800 +