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

RetransBase.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_BASE_H 00026 #define RETRANS_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 "MNTimeval.h" 00036 00037 /************************************************************** 00038 * Class: RetransBase 00039 * Description: contains the basic functionality to perform 00040 * retransmissions. 00041 * Oslo, August 2002 00042 **************************************************************/ 00043 00044 namespace SH 00045 { 00046 class Base; 00047 class SinkEndpoint; 00048 class Data; 00049 }; 00050 00051 class MNRope; 00052 class MNRTPEncoderBase; 00053 00054 class RetransBase 00055 { 00056 public: 00057 00060 RetransBase( ); 00061 virtual ~RetransBase( ); 00062 00071 static RetransBase* factory( SDP::RetransTypes retrans_type, SH::Base* enc ); 00072 00077 virtual MNRope* createExtensionHeaderData( int& type ) = 0; 00078 00081 virtual void setEncoder( MNRTPEncoderBase* enc ) = 0; 00082 00085 virtual MNRTPEncoderBase* getEncoder( ) = 0; 00086 00090 virtual bool hasExtHeader( ) = 0; 00091 virtual bool prepareCallback( ) = 0; 00092 virtual SH::ReportPtr sendEnd( ); 00093 virtual MNRope* get_next_data( SH::SinkEndpoint* pull_here, 00094 size_t max_bytes_to_pull, 00095 SH::ReturnCode& except, 00096 size_t& pulled_bytes, 00097 bool& rtp_marker, 00098 u_int32& rtp_timestamp, 00099 Timeval& next_playtime_packet, 00100 int bandwidth, 00101 int& cbpidx ) = 0; 00102 virtual bool evalRTRTCP( void* data, int len, int subtype, int& cbpidx); 00103 00104 }; 00105 00106 #endif /* RETRANS_BASE_H */

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