]> git.tdb.fi Git - libs/net.git/blobdiff - source/sockaddr.h
Initial revision
[libs/net.git] / source / sockaddr.h
diff --git a/source/sockaddr.h b/source/sockaddr.h
new file mode 100644 (file)
index 0000000..63f2ab4
--- /dev/null
@@ -0,0 +1,44 @@
+/* $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