networkcontrol/ipnetworklayer/inc/IPProtoSCPR.h
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkcontrol/ipnetworklayer/inc/IPProtoSCPR.h	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,112 @@
+// Copyright (c) 2006-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:
+// IPProto SubConnection Provider class definition.
+// 
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef SYMBIAN_IPPROTOSCPR_H
+#define SYMBIAN_IPPROTOSCPR_H
+
+#include <comms-infras/ss_subconnprov.h>
+#include <comms-infras/corescpr.h>
+#include <comms-infras/corescprstates.h>
+#include <comms-infras/corecprstates.h>
+#include <comms-infras/netcfgextnotify.h>
+#include <comms-infras/nifconfigurationcontrol.h>
+#include <networking/pdpdef.h>
+#include "IPProtoSCPRFactory.h"
+#include <comms-infras/ss_datamonitoringprovider.h>
+#include <comms-infras/ss_log.h>
+#include <comms-infras/ss_nodemessages_legacy.h>
+
+#define KIPProtoSCPRTag KESockSubConnectionTag
+
+namespace IPProtoSCpr
+{
+    class TStoreProvision;
+	class TAwaitingFlowUp;
+	class TAwaitingFlowDown;
+	class TStartNetCfgExt;
+	class TStopNetCfgExtOrNoTag;
+	class TStopNetCfgExt;
+	class TProcessIoctl;
+	class TCancelOutstandingIoctls;
+	class THandoffToNetCfgExt;
+	class TNoTagOrTryNetCfgExtOrCancelIoctl;
+	class TTryPdpOrTryNetCfgExtOrCancelIoctl;
+	class TNoTagOrCancelIoctl;
+	class TProcessAgentEvent;
+#ifndef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
+	class TSendParamsToServiceProvider;
+#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
+	class TSendDataClientRoutedToFlow;
+	class TStopNetCfgExtDelete;
+	class TNoTagOrProviderStoppedOrDaemonReleased;
+}
+
+class CIPProtoSubConnectionProvider : public CCoreSubConnectionProvider, public ESock::ADataMonitoringProvider, public ESock::ALegacySubConnectionActiveApiExt,
+                                   	  public ITFHIERARCHY_LINK_2(CIPProtoSubConnectionProvider, CCoreSubConnectionProvider, ESock::ADataMonitoringProtocolReq, ESock::ALegacySubConnectionActiveApiExt)
+/** IPProto subconnection provider base class
+
+@internalTechnology
+@released Since 9.4 */
+	{
+	friend class CIPProtoSubConnectionProviderFactory;
+	friend class IPProtoSCpr::TStoreProvision;
+    friend class IPProtoSCpr::TAwaitingFlowUp;
+	friend class IPProtoSCpr::TAwaitingFlowDown;
+	friend class IPProtoSCpr::TStartNetCfgExt;
+	friend class IPProtoSCpr::TStopNetCfgExtOrNoTag;
+	friend class IPProtoSCpr::TStopNetCfgExt;
+	friend class IPProtoSCpr::TProcessIoctl;
+	friend class IPProtoSCpr::TCancelOutstandingIoctls;
+	friend class IPProtoSCpr::THandoffToNetCfgExt;
+	friend class IPProtoSCpr::TNoTagOrTryNetCfgExtOrCancelIoctl;
+	friend class IPProtoSCpr::TNoTagOrCancelIoctl;
+	friend class IPProtoSCpr::TTryPdpOrTryNetCfgExtOrCancelIoctl;
+	friend class IPProtoSCpr::TProcessAgentEvent;		// for iControl
+#ifndef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
+	friend class IPProtoSCpr::TSendParamsToServiceProvider;
+#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
+	friend class IPProtoSCpr::TSendDataClientRoutedToFlow;
+	friend class IPProtoSCpr::TStopNetCfgExtDelete;
+	friend class IPProtoSCpr::TNoTagOrProviderStoppedOrDaemonReleased;
+public:
+	typedef ITFHIERARCHY_LINK_2(CIPProtoSubConnectionProvider, CCoreSubConnectionProvider, ADataMonitoringProtocolReq, ALegacySubConnectionActiveApiExt) TIfStaticFetcherNearestInHierarchy;
+
+    typedef CIPProtoSubConnectionProviderFactory FactoryType;
+	virtual ~CIPProtoSubConnectionProvider();
+
+	void ReturnInterfacePtrL(ADataMonitoringProtocolReq*& aInterface);
+	void ReturnInterfacePtrL(ALegacySubConnectionActiveApiExt*& aInterface);
+
+protected:
+    CIPProtoSubConnectionProvider(ESock::CSubConnectionProviderFactoryBase& aFactory);
+    void ConstructL();
+    static CIPProtoSubConnectionProvider* NewL(ESock::CSubConnectionProviderFactoryBase& aFactory);
+    void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+
+protected:
+	CNetCfgExtNotify* iNotify;
+	CNifConfigurationControl* iControl;
+    Messages::RNodeInterface iFlow;
+	TBool iIoctlCancelled;
+	};
+
+#endif //SYMBIAN_IPPROTOSCPR_H