diff -r 000000000000 -r 307788aac0a8 realtimenetprots/rtp/cfrtp/inc/cfrtphandler.h --- /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 +#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__ +