]> git.tdb.fi Git - libs/net.git/blobdiff - source/net/resolve.h
Move the address family enum into sockaddr.h
[libs/net.git] / source / net / resolve.h
index 6a0479e6aa363f2b22a49b5e1b999860a7666417..212a7f0a47574068b1b7573acf973ef76cbbc5ca 100644 (file)
@@ -2,19 +2,18 @@
 #define MSP_NET_RESOLVE_H_
 
 #include <deque>
+#include <memory>
 #include <string>
 #include <msp/core/mutex.h>
 #include <msp/core/semaphore.h>
 #include <msp/core/thread.h>
 #include <msp/io/eventdispatcher.h>
 #include <msp/io/pipe.h>
-#include "constants.h"
+#include "sockaddr.h"
 
 namespace Msp {
 namespace Net {
 
-class SockAddr;
-
 /** Resolves host and service names into a socket address.  If host is empty,
 the loopback address will be used.  If host is "*", the wildcard address will
 be used.  If service is empty, a socket address with a null service will be
@@ -40,8 +39,8 @@ private:
                std::string host;
                std::string serv;
                Family family = UNSPEC;
-               SockAddr *addr = 0;
-               std::runtime_error *error = 0;
+               std::unique_ptr<SockAddr> addr;
+               std::unique_ptr<std::runtime_error> error;
 
                bool is_complete() const { return addr || error; }
        };
@@ -59,7 +58,7 @@ private:
                WorkerThread();
                ~WorkerThread();
 
-               void add_task(const Task &);
+               void add_task(Task &&);
                Task *get_complete_task();
                void pop_complete_task();
 
@@ -74,7 +73,7 @@ public:
        sigc::signal<void, unsigned, const std::exception &> signal_resolve_failed;
 
 private:
-       IO::EventDispatcher *event_disp = 0;
+       IO::EventDispatcher *event_disp = nullptr;
        WorkerThread thread;
        unsigned next_tag = 1;