Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / third_party / libjingle / source / talk / base / nethelpers.h
index 66f7910..5b385bb 100644 (file)
 
 #ifdef POSIX
 #include <netdb.h>
-#include <cstddef>
+#include <stddef.h>
 #elif WIN32
 #include <winsock2.h>  // NOLINT
 #endif
 
 #include <list>
 
+#include "talk/base/asyncresolverinterface.h"
 #include "talk/base/signalthread.h"
 #include "talk/base/sigslot.h"
 #include "talk/base/socketaddress.h"
 
 namespace talk_base {
 
+class AsyncResolverTest;
+
 // AsyncResolver will perform async DNS resolution, signaling the result on
-// the inherited SignalWorkDone when the operation completes.
-class AsyncResolver : public SignalThread {
+// the SignalDone from AsyncResolverInterface when the operation completes.
+class AsyncResolver : public SignalThread, public AsyncResolverInterface {
  public:
   AsyncResolver();
+  virtual ~AsyncResolver() {}
+
+  virtual void Start(const SocketAddress& addr);
+  virtual bool GetResolvedAddress(int family, SocketAddress* addr) const;
+  virtual int GetError() const { return error_; }
+  virtual void Destroy(bool wait) { SignalThread::Destroy(wait); }
 
-  const SocketAddress& address() const { return addr_; }
   const std::vector<IPAddress>& addresses() const { return addresses_; }
-  void set_address(const SocketAddress& addr) { addr_ = addr; }
-  int error() const { return error_; }
   void set_error(int error) { error_ = error; }
 
-
  protected:
   virtual void DoWork();
   virtual void OnWorkDone();