RTP Trace System  1.0
unixaddress.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines