class SockAddr
{
+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;
+
virtual Family get_family() const = 0;
virtual std::string str() const = 0;
*/
virtual unsigned fill_sockaddr(sockaddr &) const = 0;
virtual unsigned fill_sockaddr(sockaddr_storage &) const;
-
- virtual SockAddr *copy() const =0;
-
- virtual ~SockAddr() { }
-
- static SockAddr *create(const sockaddr &sa) { return create(reinterpret_cast<const sockaddr_storage &>(sa)); }
- static SockAddr *create(const sockaddr_storage &);
-protected:
- SockAddr() { }
};
} // namespace Net