]> git.tdb.fi Git - netvis.git/blobdiff - source/resolver.h
Resolve IP addresses to hostnames
[netvis.git] / source / resolver.h
diff --git a/source/resolver.h b/source/resolver.h
new file mode 100644 (file)
index 0000000..fb9dd10
--- /dev/null
@@ -0,0 +1,43 @@
+/* $Id$
+
+This file is part of NetVis
+Copyright @ 2008 Mikko Rasa, Mikkosoft Productions
+Distributed unter the GPL
+*/
+
+#ifndef RESOLVER_H_
+#define RESOLVER_H_
+
+#include <list>
+#include <msp/core/mutex.h>
+#include <msp/core/thread.h>
+
+class Host;
+
+class Resolver: public Msp::Thread
+{
+private:
+       struct Result
+       {
+               Host *host;
+               std::string name;
+
+               Result(Host *h, const std::string &n): host(h), name(n) { }
+       };
+
+       std::list<Host *> in_queue;
+       std::list<Result> out_queue;
+       Msp::Mutex mutex;
+       bool done;
+
+public:
+       Resolver();
+       ~Resolver();
+
+       void push(Host *);
+       void tick();
+private:
+       void main();
+};
+
+#endif