realtimenetprots/rtp/cfrtp/inc/cfrtphandler.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/rtp/cfrtp/inc/cfrtphandler.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,133 @@
+// Copyright (c) 2007-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:
+// CCFRtp Handler Declarations
+// 
+//
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+#if !defined(__CFRTP_HANDLER_H__)
+#define __CFRTP_HANDLER_H__
+
+#include <in_sock.h>
+#include "rtphandlerbase.h"
+
+// forward declarations
+
+class MRtpDataSender
+	{
+	public:
+	virtual void SendData(TDes8& aBuffer,TSockAddr& aRemoteAddr, TInt aFlags, TRequestStatus& aStatus)=0;
+	};
+
+
+NONSHARABLE_CLASS(CCFRtpHandler) : public CRtpHandlerBase
+	{
+public:
+	static CCFRtpHandler* NewL(MRtpDataSender *aDataSender,	TInt aPriority = EPriorityNormal);
+
+	virtual ~CCFRtpHandler();
+
+	// virtual functions from CRtpHandlerBase
+	virtual void Send(TDes8& aBuffer, TRequestStatus& aStatus);
+	virtual void Read(TDes8& aBuffer);
+	
+	void Cancel();
+	
+	virtual void ActivateL(RSocketServ& aServer,TRtpConnectionType aConnectionType,RConnection& aConnection);
+	virtual void ActivateL(RSocketServ& aServer,TRtpConnectionType aConnectionType,RSubConnection& aSubConnection);
+	virtual void ActivateL(RSocketServ& aServer,TRtpConnectionType aConnectionType);
+	
+	virtual TBool CompareAddresses(const TSockAddr& aAddr1,const TSockAddr& aAddr2);
+
+	virtual inline void SetLocalAddress(const TSockAddr& aAddr);
+	virtual inline void SetRemoteAddress(const TSockAddr& aAddr);
+	virtual inline TSockAddr& RemoteAddress();
+	virtual inline TSockAddr& LocalAddress();
+	virtual inline TSockAddr& RecvAddress();
+
+	 // from CActive
+	 virtual void RunL();
+	 virtual TInt RunError(TInt aError);
+	
+	
+	virtual inline void SetDefaultRemoteAddress(const TSockAddr& aAddr);
+	virtual inline TSockAddr& DefaultRemoteAddress();
+	virtual inline void SetRecvAddress(const TSockAddr &aAddr);
+	
+	void CancelSend();
+	void CancelRecv();
+
+private:
+	CCFRtpHandler();
+	CCFRtpHandler(TInt aPriority);
+	
+	// from CHandlerBase
+	virtual void ReadMore();
+private:
+	TInetAddr iLocalAddr;
+	// The remote addres is Overloaded
+	// The same variable is used to send rtcp packet to various sources
+	TInetAddr iRemoteAddr;
+	TInetAddr iRecvAddr;
+	TInetAddr iDefaultRemoteAddr;
+	MRtpDataSender *iDataSender;
+	};
+
+
+inline void CCFRtpHandler::SetLocalAddress(const TSockAddr& aAddr)
+	{
+	iLocalAddr = TInetAddr(aAddr);
+	}
+
+inline void CCFRtpHandler::SetRemoteAddress(const TSockAddr& aAddr)
+	{
+	iRemoteAddr = TInetAddr(aAddr);
+	}
+
+inline TSockAddr& CCFRtpHandler::RemoteAddress()
+	{
+	return iRemoteAddr;
+	}
+
+inline TSockAddr& CCFRtpHandler::LocalAddress()
+	{
+	return iLocalAddr;
+	}
+
+inline void CCFRtpHandler::SetRecvAddress(const TSockAddr &aAddr)
+	{
+	iRecvAddr = aAddr;
+	}
+
+inline TSockAddr& CCFRtpHandler::RecvAddress()
+	{
+	return iRecvAddr;
+	}
+inline void CCFRtpHandler::SetDefaultRemoteAddress(const TSockAddr& aAddr)
+	{
+	iDefaultRemoteAddr = TInetAddr(aAddr);
+	}
+
+inline TSockAddr& CCFRtpHandler::DefaultRemoteAddress()
+	{
+	return iDefaultRemoteAddr;
+	}
+	
+#endif //__CFRTP_HANDLER_H__
+