--- /dev/null
+/* $Id$
+
+This file is part of libmspnet
+Copyright © 2008 Mikkosoft Productions, Mikko Rasa
+Distributed under the LGPL
+*/
+
+#ifndef MSP_NET_SOCKADDR_H_
+#define MSP_NET_SOCKADDR_H_
+
+#ifndef WIN32
+#include <sys/socket.h>
+#endif
+#include "constants.h"
+
+namespace Msp {
+namespace Net {
+
+class SockAddr
+{
+public:
+ 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 SockAddr *copy() const =0;
+
+ virtual ~SockAddr() { }
+
+ static SockAddr *create(sockaddr &);
+protected:
+ SockAddr() { }
+};
+
+} // namespace Net
+} // namespace Msp
+
+#endif