Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

RetransRecvBase.h

Go to the documentation of this file.
00001 /* Copyright (C) 2002 KOM/Darmstadt University of Technology 00002 * 00003 * You are allowed to use all other parts of the code under the following terms: 00004 * 00005 * For non-commercial use, code may be used in unmodified form provided 00006 * that this copyright notice and this permission notice appear in 00007 * supporting documentation. 00008 * 00009 * This software is provided "as is" and without any express or implied 00010 * warranties, including, without limitation, the implied warranty of 00011 * fitness for a particular purpose. 00012 * 00013 * The code may be subjected to the GNU General Public License, Version 2, 00014 * and re-distributed under the terms of this license. 00015 * As a special exception, permission is granted to link this code 00016 * with the Qt library and distribute executables, as long as you 00017 * follow the requirements of the GNU GPL in regard to all of the 00018 * software in the executable aside from Qt. 00019 * 00020 * Commercial use other than under the terms of the GNU General Public 00021 * License is allowed only after express negotiation of conditions 00022 * with the authors. 00023 */ 00024 00025 #ifndef RETRANS_RECV_BASE_H 00026 #define RETRANS_RECV_BASE_H 00027 00028 #include <config.h> 00029 00030 #include "var_type.h" 00031 #include "sdp/PayloadTypes.h" 00032 #include "sdp/RetransTypes.h" 00033 #include "sh/SHReport.h" 00034 #include "sh/SHReturnCodes.h" 00035 #include "sh/SHData.h" 00036 #include "rtp/MNRTPPacket.h" 00037 #include "MNTimeval.h" 00038 00039 /************************************************************** 00040 * Class: RetransBase 00041 * Description: contains the basic functionality to perform 00042 * retransmissions. 00043 * Oslo, August 2002 00044 **************************************************************/ 00045 00046 namespace SH 00047 { 00048 class Base; 00049 class SinkEndpoint; 00050 class RTPDecoderSH; 00051 }; 00052 00053 class MNRope; 00054 class MNRTPDecoderBase; 00055 class MNSelector; 00056 00057 class RetransRecvBase 00058 { 00059 public: 00060 00063 RetransRecvBase( ); 00064 virtual ~RetransRecvBase( ); 00065 00074 static RetransRecvBase* factory( SDP::RetransTypes retrans_type, 00075 SH::RTPDecoderSH* enc, 00076 MNSelector& sel ); 00077 00080 virtual void setDecoder( MNRTPDecoderBase* enc ) = 0; 00081 00084 virtual MNRTPDecoderBase* getDecoder( ) = 0; 00085 00086 virtual void init( int32 list_timeout, u_int32 repeat_timeouts ) = 0; 00087 virtual void startStreaming( ) = 0; 00088 virtual void stopStreaming( ) = 0; 00089 virtual void evalLCRTCPPacket( u_int32 ssrc, 00090 void* data, 00091 int len, 00092 int subtype, 00093 char* name, 00094 bool inCallback ) = 0; 00095 virtual SH::DataPtr evalLCRTPPacket( MNRTPPacketPtr packet, 00096 MNRope*& payload, 00097 u_int64_t& bytecount ) = 0; 00098 }; 00099 00100 00101 #endif /* RETRANS_RECV_BASE_H */

Generated on Sun Mar 6 13:35:50 2005 for Komssys by doxygen 1.3.8