--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/networkcontrol/ipscpr/inc/deft_scpr.h Tue Aug 31 16:45:15 2010 +0300
@@ -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 <e32base.h>
+#include <e32std.h>
+#include <ss_subconnprov.h>
+#include <ss_connprov.h>
+#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__
+