RTP Audio System
2.0.0
|
00001 /* 00002 * $Id: internetflow.h 1259 2011-12-17 13:26:09Z dreibh $ 00003 * 00004 * SocketAPI implementation for the sctplib. 00005 * Copyright (C) 1999-2012 by Thomas Dreibholz 00006 * 00007 * Realized in co-operation between 00008 * - Siemens AG 00009 * - University of Essen, Institute of Computer Networking Technology 00010 * - University of Applied Sciences, Muenster 00011 * 00012 * Acknowledgement 00013 * This work was partially funded by the Bundesministerium fuer Bildung und 00014 * Forschung (BMBF) of the Federal Republic of Germany (Foerderkennzeichen 01AK045). 00015 * The authors alone are responsible for the contents. 00016 * 00017 * This program is free software: you can redistribute it and/or modify 00018 * it under the terms of the GNU General Public License as published by 00019 * the Free Software Foundation, either version 3 of the License, or 00020 * (at your option) any later version. 00021 00022 * This program is distributed in the hope that it will be useful, 00023 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00025 * GNU General Public License for more details. 00026 * 00027 * You should have received a copy of the GNU General Public License 00028 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00029 * 00030 * Contact: discussion@sctp.de 00031 * dreibh@iem.uni-due.de 00032 * tuexen@fh-muenster.de 00033 * 00034 * Purpose: Internet Flow Implementation 00035 * 00036 */ 00037 00038 00039 00040 #ifndef INTERNETFLOW_H 00041 #define INTERNETFLOW_H 00042 00043 00044 #include "tdsystem.h" 00045 #include "internetaddress.h" 00046 00047 00048 00057 class InternetFlow : public InternetAddress 00058 { 00059 // ====== Constructors/Destructor ======================================== 00060 public: 00065 InternetFlow(); 00066 00072 InternetFlow(const InternetFlow& flow); 00073 00081 InternetFlow(const InternetAddress& address, 00082 const card32 flowLabel, 00083 const card8 trafficClass); 00084 00085 00086 // ====== Initialization ================================================= 00090 void reset(); 00091 00097 SocketAddress* duplicate() const; 00098 00099 00100 // ====== Address functions ============================================== 00106 String getAddressString(const cardinal format = PF_Default) const; 00107 00108 00109 // ====== Get/set system sockaddr structure ============================== 00115 cardinal getSystemAddress(sockaddr* buffer, 00116 const socklen_t length, 00117 const cardinal type) const; 00118 00124 bool setSystemAddress(sockaddr* address, socklen_t length); 00125 00126 00127 // ====== Status functions =============================================== 00133 inline card32 getFlowInfo() const; 00134 00135 00141 inline card32 getFlowLabel() const; 00142 00148 inline void setFlowLabel(const card32 flowLabel); 00149 00150 00156 inline card8 getTrafficClass() const; 00157 00163 inline void setTrafficClass(const card8 trafficClass); 00164 00165 00166 // ====== Private data =================================================== 00167 private: 00168 card32 FlowInfo; 00169 }; 00170 00171 00172 #include "internetflow.icc" 00173 00174 00175 #endif