RTP Trace System
1.0
|
00001 // ########################################################################## 00002 // #### #### 00003 // #### RTP Audio Server Project #### 00004 // #### ============================ #### 00005 // #### #### 00006 // #### Unix Address #### 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 UNIXADDRESS_H 00019 #define UNIXADDRESS_H 00020 00021 00022 #include "system.h" 00023 #include "strings.h" 00024 #include "socketaddress.h" 00025 #include "portableaddress.h" 00026 00027 00028 #include <sys/socket.h> 00029 #include <sys/un.h> 00030 00031 00032 namespace Coral { 00033 00034 00042 class UnixAddress : virtual public SocketAddress 00043 { 00044 // ====== Constructors/Destructor ======================================== 00045 public: 00049 UnixAddress(); 00050 00056 UnixAddress(const UnixAddress& address); 00057 00064 UnixAddress(const char* name); 00065 00072 UnixAddress(sockaddr* address, cardinal length); 00073 00077 ~UnixAddress(); 00078 00079 00080 // ====== Initialization ================================================= 00084 void reset(); 00085 00089 void init(const UnixAddress& address); 00090 00094 void init(const char* name); 00095 00099 inline UnixAddress& operator=(const UnixAddress& source); 00100 00101 00102 // ====== Address functions ============================================== 00108 bool isValid() const; 00109 00115 inline bool isNull() const; 00116 00122 String getAddressString() const; 00123 00124 00125 // ====== Get/set system sockaddr structure ============================== 00131 cardinal getSystemAddress(sockaddr* buffer, 00132 const cardinal length, 00133 const cardinal type) const; 00134 00140 bool setSystemAddress(sockaddr* address, const cardinal length); 00141 00142 00143 // ====== Comparision operators ========================================= 00147 int operator==(const UnixAddress& address) const; 00148 00152 inline int operator!=(const UnixAddress& address) const; 00153 00157 int operator<(const UnixAddress& address) const; 00158 00162 inline int operator<=(const UnixAddress& address) const; 00163 00167 int operator>(const UnixAddress& address) const; 00168 00172 inline int operator>=(const UnixAddress& address) const; 00173 00174 00175 // ====== Private data =================================================== 00176 private: 00177 static const cardinal MaxNameLength = 108; 00178 00179 char Name[MaxNameLength]; 00180 }; 00181 00182 00183 } 00184 00185 00186 #include "unixaddress.icc" 00187 00188 00189 #endif