RTP Trace System  1.0
rtpreceiver.h
Go to the documentation of this file.
00001 // ##########################################################################
00002 // ####                                                                  ####
00003 // ####                      RTP Audio Server Project                    ####
00004 // ####                    ============================                  ####
00005 // ####                                                                  ####
00006 // #### RTP Receiver                                                     ####
00007 // ####                                                                  ####
00008 // #### Version 1.00  --  February 16, 2001                              ####
00009 // ####                                                                  ####
00010 // #### Copyright (C) 1999  Thomas Dreibholz                             ####
00011 // ####               2000  Universität Bonn, Abt. IV                    ####
00012 // ####               2001  EMail: dreibh@iem.uni-due.de                 ####
00013 // ####                     WWW:   https://www.uni-due.de/~be0001        ####
00014 // ####                                                                  ####
00015 // ##########################################################################
00016 
00017 
00018 #ifndef RTPRECEIVER_H
00019 #define RTPRECEIVER_H
00020 
00021 
00022 #include "system.h"
00023 #include "thread.h"
00024 #include "socket.h"
00025 #include "rtppacket.h"
00026 #include "decoderinterface.h"
00027 #include "sourcestateinfo.h"
00028 #include "internetflow.h"
00029 #ifdef USE_TRANSPORTINFO
00030 #include "transportinfo.h"
00031 #endif
00032 
00033 
00034 namespace Coral {
00035 
00036 
00044 class RTPReceiver : public Thread
00045 {
00046    // ====== Constructor/Destructor =========================================
00047    public:
00054    RTPReceiver();
00055 
00065    RTPReceiver(DecoderInterface* decoder,
00066                Socket*           receiverSocket);
00067 
00071    ~RTPReceiver();
00072 
00073 
00074    // ====== Initialize =====================================================
00084    void init(DecoderInterface* decoder,
00085              Socket*           receiverSocket);
00086 
00087 
00088    // ====== Status functions ===============================================
00089 #ifdef USE_TRANSPORTINFO
00090 
00097    inline void getTransportInfo(TransportInfo& transportInfo,
00098                                 const bool     calculateLevels) const;
00099 #endif
00100 
00107    inline card64 getPosition() const;
00108 
00115    inline card64 getMaxPosition() const;
00116 
00123    inline card64 getBytesReceived(const cardinal layer) const;
00124       
00131    inline card64 getPacketsReceived(const cardinal layer) const;
00132 
00138    inline void resetBytesReceived(const cardinal layer);
00139    
00145    inline void resetPacketsReceived(const cardinal layer);
00146 
00152    inline cardinal getLayers() const;
00153    
00160    inline InternetFlow getInternetFlow(const cardinal layer = 0) const;
00161 
00165    inline SourceStateInfo getSSI(const cardinal layer = 0) const;
00166 
00167 
00172    friend class RTCPSender;
00173 
00174 
00175    // ====== Protected data =================================================
00176    protected:
00177    cardinal        Layers;
00178    InternetFlow    Flow[RTPConstants::RTPMaxQualityLayers];
00179    SourceStateInfo SSI[RTPConstants::RTPMaxQualityLayers];
00180    card64          BytesReceived[RTPConstants::RTPMaxQualityLayers];
00181    card64          PacketsReceived[RTPConstants::RTPMaxQualityLayers];
00182 
00183 
00184    // ====== Private data ===================================================
00185    private:
00186    void run();
00187 
00188 
00189    DecoderInterface* Decoder;
00190    Socket*           ReceiverSocket;
00191 };
00192 
00193 
00194 }
00195 
00196 
00197 #include "rtpreceiver.icc"
00198 
00199 
00200 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines