#pragma once

#include <boost/thread.hpp>
#include <boost/enable_shared_from_this.hpp>

#include "Swiften/Network/DomainNameServiceQuery.h"
#include "Swiften/EventLoop/EventOwner.h"
#include "Swiften/Base/String.h"

namespace Swift {
	class PlatformDomainNameServiceQuery : public DomainNameServiceQuery, public boost::enable_shared_from_this<PlatformDomainNameServiceQuery>, public EventOwner {
		public:
			PlatformDomainNameServiceQuery(const String& service);
			~PlatformDomainNameServiceQuery();

			virtual void run();

		private:
			void doRun();
			void emitError();

		private:
			boost::thread* thread;
			String service;
			bool safeToJoin;
	};
}