--- /dev/null
+#ifndef MSP_NET_SOCKADDR_H_
+#define MSP_NET_SOCKADDR_H_
+
+#include <string>
+#include "constants.h"
+
+namespace Msp {
+namespace Net {
+
+class SockAddr
+{
+public:
+ struct SysAddr;
+
+protected:
+ SockAddr() { }
+public:
+ virtual ~SockAddr() { }
+
+ 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;
+};
+
+} // namespace Net
+} // namespace Msp
+
+#endif