diff -r 39bb7c3571e9 -r 052078dda061 networkcontrol/ipscpr/inc/deft_scpr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkcontrol/ipscpr/inc/deft_scpr.h Tue Jun 29 19:20:22 2010 +0530 @@ -0,0 +1,170 @@ +/** +* 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 "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Header file for the default SubConnection Provider +* +* +*/ + + + +/** + @file deft_scpr.h +*/ + +#ifndef __DEFT_CPR_H__ +#define __DEFT_CPR_H__ + +#include +#include +#include +#include +#include "ipscprlog.h" + + +class CConnDataTransfer; +class CEmptySubConnectionProvider : public CSubConnectionProviderBase, public MConnectionEnumerateClients, public MConnectionDataClient +/** +Defines the IP Connection Provider. Class provides a mapping from ESock Subconnection +function calls to QoS.PRT messages. + +@internalComponent + +@released Since v9.0 +*/ + { +protected: + // Construction + CEmptySubConnectionProvider(CSubConnectionProviderFactoryBase& aFactory, CConnectionProviderBase& aConnProvider) : + CSubConnectionProviderBase(aFactory, aConnProvider) + { + __IPCPRLOG(IpCprLog::Printf(_L("CEmptySubConnectionProvider [this=%08x]:\tCEmptySubConnectionProvider() [MConnectionDataClient=%08x]"), + this, (MConnectionDataClient*)this)); + } + + ~CEmptySubConnectionProvider(); + + virtual MConnectionDataClient* DoSelfConnectionDataClient(); + + //MConnectionEnumerateClients + virtual void EnumerateClientsL(TUint& aCount, TDes8& aDes, CConnectionProviderBase::TEnumClients aClientType); + + //MConnectionDataClient + virtual void ConnectionError(TInt aStage, TInt aError); + + virtual void DoControlClientJoiningL(MSubConnectionControlClient& aControlClient); + virtual void DoControlClientLeaving(MSubConnectionControlClient& aControlClient); + }; + + +/** +Defines the default IP Connection Provider. + +@internalComponent + +@released Since v9.0 +*/ +#ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS +class CDefaultSubConnectionProvider : public CEmptySubConnectionProvider, public MSubConnectionControlClient +#else +class CDefaultSubConnectionProvider : public CEmptySubConnectionProvider +#endif +//SYMBIAN_NETWORKING_3GPPDEFAULTQOS + { +public: + + // Construction +#ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS + CDefaultSubConnectionProvider(CSubConnectionProviderFactoryBase& aFactory, CConnectionProviderBase& aConnProvider, RSubConnection::TSubConnType aType) + : CEmptySubConnectionProvider(aFactory, aConnProvider), iSubConnType(aType) +#else + CDefaultSubConnectionProvider(CSubConnectionProviderFactoryBase& aFactory, CConnectionProviderBase& aConnProvider) + : CEmptySubConnectionProvider(aFactory, aConnProvider) +#endif + { +#ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS + __IPCPRLOG(IpCprLog::Printf(_L("CDefaultSubConnectionProvider [this=%08x]:\tCDefaultSubConnectionProvider() [MSubConnectionControlClient=%08x] [MConnectionDataClient=%08x]"), + this, (MSubConnectionControlClient*)this, (MConnectionDataClient*)this)); +#else + __IPCPRLOG(IpCprLog::Printf(_L("CDefaultSubConnectionProvider [this=%08x]:\tCDefaultSubConnectionProvider() [MConnectionDataClient=%08x]"), + this, (MConnectionDataClient*)this)); +#endif + } + + ~CDefaultSubConnectionProvider(); + +#ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS + //-========================================================= + // MSubConnectionControlClient methods + //-========================================================= + /** Override this to inform the sub-connection client (e.g. socket, host resolver etc.) that + the sub-connection is going down + + @param aSubConnProvider the sub-connection provider going down */ + virtual void SubConnectionGoingDown(CSubConnectionProviderBase& aSubConnProvider); + + /** Override this to notify the control client of a sub-connection event, eg. layer up etc. + + @param aSubConnProvider The provider which the event was generated on + @param aNotifyType The type of event + @param aError Error code, if any + @param aEvent The notification object containing specialized information */ + virtual void SubConnectionEvent(CSubConnectionProviderBase& aSubConnProvider, MConnectionDataClient::TNotify aNotifyType, TInt aError, const CSubConNotificationEvent* aEvent); + + + virtual void LayerUp(CSubConnectionProviderBase& aSubConnProvider, TInt aError); + virtual void IncomingConnection(CSubConnectionProviderBase* aSubConnProvider, CSubConParameterBundle* aParameterBundle, TInt aError); +#endif +// SYMBIAN_NETWORKING_3GPPDEFAULTQOS + +protected: + //-========================================================= + // CSubConnectionProviderBase methods + //-========================================================= + // Methods to be overriden be derived subconnection provider + virtual void DoControlClientJoiningL(MSubConnectionControlClient& aControlClient); //Fix for DEF096132 + virtual void DoDataClientJoiningL(MSubConnectionDataClient& aDataClient); + virtual void DoDataClientLeaving(MSubConnectionDataClient& aDataClient); + virtual void DoSourceAddressUpdate(MSubConnectionDataClient& aDataClient, const TSockAddr& aSource); + virtual void DoDestinationAddressUpdate(MSubConnectionDataClient& aDataClient, const TSockAddr& aDestination); + virtual void DoDataClientRouted(MSubConnectionDataClient& aDataClient, const TSockAddr& aSource, const TSockAddr& aDestination, const TDesC8& aConnectionInfo); + virtual void DoParametersAboutToBeSetL(CSubConParameterBundle& aParameterBundle); + virtual TInt DoControl(TUint aOptionLevel, TUint aOptionName, TDes8& aOption); + + virtual void DoStartL(); + virtual void DoStop(); + virtual CSubConnectionProviderBase* DoNextLayer(); + virtual CConnDataTransfer& DoDataTransferL(); + + //MConnectionDataClient + virtual TAny* FetchInterfaceInstanceL(CConnectionProviderBase& aProvider, const STypeId& aTid); + virtual void ConnectionGoingDown(CConnectionProviderBase& aConnProvider); + virtual void Notify(TNotify aNotifyType, CConnectionProviderBase* aConnProvider, TInt aError, const CConNotificationEvent* aConNotificationEvent); + virtual void AttachToNext(CSubConnectionProviderBase* aSubConnProvider); + +#ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS + virtual void DoControlClientLeaving(MSubConnectionControlClient& aControlClient); +private: + const RSubConnection::TSubConnType iSubConnType; +#endif + + +#ifdef SYMBIAN_NETWORKING_UMTSR5 + TUint32 iAppId; + CSubConnectionProviderBase * iSubConNextLayer; +#endif + }; +#endif +// __DEFT_CPR_H__ +