diff -r 000000000000 -r 307788aac0a8 realtimenetprots/rtp/cfrtp/inc/rtpflow.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/rtp/cfrtp/inc/rtpflow.h Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,100 @@ +// 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 Flow definitions. +// +// + +/** + @file + @internalComponent +*/ + +#ifndef CRTPFLOW_H +#define CRTPFLOW_H + +#include "rtpprovisioninfo.h" +#include "rtpbaseflow.h" +#include "rtpcontroller.h" + + +const TInt KRtpDefBufSz = 1500; + +NONSHARABLE_CLASS(CRtpFlow) : public CRtpBaseFlow + { + /** CRtpFlow implements the RTP Flow. + + @internalComponent + + **/ + + friend class CRtpFlowFactory; + + public: + static CRtpFlow* NewL(CSubConnectionFlowFactoryBase& aFactory, + const Messages::TNodeId& aSubConn, + CProtocolIntfBase* aProtocolIntf); + + public: + //CSubConnectionFlowBase + virtual void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage); + + virtual TInt Write(RMBufChain& aData, TUint aOptions, TSockAddr* anAddr = NULL ); + virtual TInt GetData(RMBufChain& aData, TUint aLength,TUint aOptions,TSockAddr* anAddr=NULL); + + /*MRtpDataSender*/ + void SendData(TDes8& aBuffer, TSockAddr &aAddr, TInt aFlags, TRequestStatus &aStatus); + + public: + virtual void NewData(TUint aCount); + virtual void CanSend(); + + virtual void DoCanClose(MSessionControlNotify::TDelete aDelete); + + virtual void DoUpdateLocalAddress(const TSockAddr& anAddr); + + virtual TInt DoSetOption(TUint level, TUint name, const TDesC8 &anOption); + virtual TInt DoGetOption(TUint level, TUint name, TDes8 &anOption) const; + + /* When an RTCP flow is created call this function to enable RTCP in + RtpSession. The function will return a Pointer to RTPSession which + can be passed on to RTCP Flow */ + CRtpController* GetRtpSession() const; + + void SetNonRtpSendData(TInt aNonRtpData); + TInt NonRtpSendData(); + + virtual ~CRtpFlow(); + + protected: + CRtpFlow(ESock::CSubConnectionFlowFactoryBase& aFactory, const Messages::TNodeId& aSubConnId, ESock::CProtocolIntfBase* aProtocolIntf); + /* RTP Session Pointer */ + CRtpController *iRtpSession; + void ConstructL(); + /* Worker for Provision */ + void DoProvisionL(const CRtpProvisionConfig *apRtpProv); + /* This buffer is used to pass data to rtp Stack.*/ + RBuf8 iRtpBuffer; + // Non Rtp Data sending flag + TInt iNonRtpSendData; + + /* Handlet For RTP Flow */ + CCFRtpHandler *iRtpHandler; +}; + + + + +#endif // CRTPFLOW_H + +