realtimenetprots/rtp/cfrtp/inc/rtpscpr.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/rtp/cfrtp/inc/rtpscpr.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,95 @@
+// Copyright (c) 2008-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:
+// RTP SubConnection Provider class definition.
+// 
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef SYMBIAN_RTPSCPR_H
+#define SYMBIAN_RTPSCPR_H
+
+#include <comms-infras/ss_subconnprov.h>
+#include <comms-infras/corescpr.h>
+#include <comms-infras/corescprstates.h>
+
+#include <cs_subconevents.h>
+#include <cs_subconparams.h>
+
+
+#if defined(_DEBUG) || defined(__RTP_LOG_ACTIVE)
+#define KRTPSCprTag  KESockSubConnectionTag
+_LIT8(KRTPSCprSubTag, "RtpScpr");
+#endif
+
+_LIT(KRtpScprPanic, "RtpScprPanic");
+
+namespace RtpSCprStates
+    {
+	class TNoTagOrErrorTag;
+    class TCreateDataClient;
+    class TSetParameters;
+    class TRequestCommsBinder;
+    class TAwaitingBinderRequest;
+    }
+
+NONSHARABLE_CLASS(CRtpSubConnectionProvider) : public CCoreSubConnectionProvider
+/** RTP Subconnection provider. Created as a result of CSubConRTPGenericParamSet 
+    parameter setting on subconnection. 
+
+@internalTechnology
+*/
+    {
+    friend class CRtpSubConnectionProviderFactory;  
+    friend class RtpSCprStates::TNoTagOrErrorTag;
+    friend class RtpSCprStates::TCreateDataClient;
+    friend class RtpSCprStates::TSetParameters;
+    friend class RtpSCprStates::TRequestCommsBinder;
+    friend class RtpSCprStates::TAwaitingBinderRequest;
+    
+public:
+	virtual ~CRtpSubConnectionProvider();
+	inline ESock::RCFParameterFamilyBundle_const& GetLocalParameterBundle()
+		{
+		return iLocalParameterBundle;
+		}
+	ESock::RCFParameterFamilyBundle& GetOrCreateLocalParameterBundleL();
+protected:
+    //-====================================
+    //Construction methods bundle - accessible thru the factory only
+    //-====================================
+    CRtpSubConnectionProvider(ESock::CSubConnectionProviderFactoryBase& aFactory);
+	static CRtpSubConnectionProvider* NewL(ESock::CSubConnectionProviderFactoryBase& aFactory);
+	void ConstructL();
+	
+    //-====================================
+    //ACFNode overrides
+    //-====================================
+ 	void Received(MeshMachine::TNodeContextBase& aContext);
+ 	void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+    
+private:
+   	//RTP param stored here
+	TInt								iRTPProtocolID;			
+	TUid								iRTPProtocolUiD;
+	TInt								iServiceProtocolID;
+	RSubConnection::TSubConnType		iSubConnType;
+	ESock::RCFParameterFamilyBundle     iLocalParameterBundle;
+    };
+
+
+#endif //SYMBIAN_RTPSCPR_H