]> git.tdb.fi Git - libs/net.git/blobdiff - source/sockaddr.h
Add an overload for resolve that takes host and service separately
[libs/net.git] / source / sockaddr.h
index 6e4025d298cc46d0fc16719dcebf1cdad334514a..aad5e29065e5695ff6b8794cf5dd95f5696e2dc3 100644 (file)
@@ -2,9 +2,6 @@
 #define MSP_NET_SOCKADDR_H_
 
 #include <string>
-#ifndef WIN32
-#include <sys/socket.h>
-#endif
 #include "constants.h"
 
 namespace Msp {
@@ -12,26 +9,21 @@ namespace Net {
 
 class SockAddr
 {
+public:
+       struct SysAddr;
+
 protected:
        SockAddr() { }
 public:
        virtual ~SockAddr() { }
 
-       static SockAddr *create(const sockaddr &sa) { return create(reinterpret_cast<const sockaddr_storage &>(sa)); }
-       static SockAddr *create(const sockaddr_storage &);
-
        virtual SockAddr *copy() const = 0;
 
+       static SockAddr *new_from_sys(const SysAddr &);
+       virtual SysAddr to_sys() const = 0;
+
        virtual Family get_family() const = 0;
        virtual std::string str() const = 0;
-
-       /**
-       Fills the given struct sockaddr with information from this SockAddr.
-
-       @return  Number of bytes used
-       */
-       virtual unsigned fill_sockaddr(sockaddr &) const = 0;
-       virtual unsigned fill_sockaddr(sockaddr_storage &) const;
 };
 
 } // namespace Net