williamr@4: // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@4: // All rights reserved. williamr@4: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@4: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: // williamr@4: // Initial Contributors: williamr@4: // Nokia Corporation - initial contribution. williamr@4: // williamr@4: // Contributors: williamr@4: // williamr@4: // Description: williamr@4: // williamr@4: williamr@4: #ifndef ESOCK_PARAMS_H williamr@4: #define ESOCK_PARAMS_H williamr@4: williamr@4: #include williamr@4: #include williamr@4: williamr@4: #include williamr@4: #include williamr@4: williamr@4: class TConnAPPref : public Meta::SMetaDataECom williamr@4: /** williamr@4: Connection preference to specify an access point to start. williamr@4: williamr@4: However, this preference cannot be used with RConnection::Start as a TConnPref. It williamr@4: must be part of a TConnPrefList. williamr@4: williamr@4: TConnAPPref can be added to the list to chose the top level access point. For the williamr@4: KAfInet tier this type behaves in the same way as TConnSnapPref. williamr@4: williamr@4: It is recommended that at most one TConnAPPref from each tier is added to the williamr@4: TConnPrefList. williamr@4: williamr@4: If no TConnAPPref is specified, then the default access point for the KAfInet williamr@4: tier will be used for selection. williamr@4: williamr@4: @see TConnSnapPref williamr@4: @see TConnPrefList williamr@4: @see RConnection::Start williamr@4: williamr@4: @publishedAll williamr@4: @released since 9.5 williamr@4: */ williamr@4: { williamr@4: public: williamr@4: inline static TConnAPPref* NewL(); williamr@4: inline static TConnAPPref* NewL(TUint aAP); williamr@4: williamr@4: enum williamr@4: { williamr@4: EUid = 0x10285E27, williamr@4: ETypeId = 2 williamr@4: }; williamr@4: williamr@4: inline void SetAP(TUint aAP); williamr@4: inline TInt GetAP(); williamr@4: williamr@4: protected: williamr@4: DATA_VTABLE williamr@4: williamr@4: TUint iAP; williamr@4: }; williamr@4: williamr@4: williamr@4: class TConnAutoStartPref : public Meta::SMetaDataECom williamr@4: /** The connection preference requires that the connection waits until its selected access point is available williamr@4: before starting. The start request does not complete until the connection is fully up. williamr@4: williamr@4: Without this preference(e.g in the TConnPrefList), if the selected access point is unavailable due to contention or williamr@4: lack of coverage, the RConnection::Start is errored immediately. williamr@4: williamr@4: TConnAutoStartPref does not aid access point selection. When specified without any other preference in the williamr@4: TConnPrefList, the default access point in the KAfInet tier will be selected. williamr@4: williamr@4: @code williamr@4: RConnection conn; williamr@4: User::LeaveIfError(conn.Open(sockSvr)); williamr@4: CleanupClosePushL(conn); williamr@4: williamr@4: TConnPrefList* prefs = TConnPrefList::NewL(); williamr@4: CleanupStack::PushL(prefs); williamr@4: TConnAPPref* APPref = TConnAPPref::NewL(aPara->iAp); williamr@4: CleanupStack::PushL(APPref); williamr@4: TConnAutoStartPref autoPref = TConnAutoStartPref::NewL(); williamr@4: CleanupStack::PushL(autoPref); williamr@4: williamr@4: prefs->AppendL(autoPref); williamr@4: prefs->AppendL(APPref); williamr@4: williamr@4: error = conn.Start(pref); williamr@4: @endcode williamr@4: williamr@4: @see RConnection::Start williamr@4: @see TConnPrefList williamr@4: williamr@4: @publishedAll williamr@4: @released since 9.5 williamr@4: */ williamr@4: { williamr@4: public: williamr@4: inline static TConnAutoStartPref* NewL(); williamr@4: enum williamr@4: { williamr@4: EUid = 0x10285E27, williamr@4: ETypeId = 3 williamr@4: }; williamr@4: williamr@4: protected: williamr@4: DATA_VTABLE williamr@4: }; williamr@4: williamr@4: williamr@4: #include williamr@4: williamr@4: class CESockParamaterFactory : public CBase williamr@4: /** Connection generic parameter set factory. williamr@4: williamr@4: @internalComponent williamr@4: */ williamr@4: { williamr@4: public: williamr@4: static Meta::SMetaDataECom* NewL(TAny* aConstructionParameters); williamr@4: }; williamr@4: williamr@4: #endif williamr@4: