From fd419ce4f2bcadae313f4f368361c733c1249ae9 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 22 Mar 2009 17:50:10 +0000 Subject: added error callback to resolver for better handling of resolvCallback exceptions --- src/resolver.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/resolver.h') diff --git a/src/resolver.h b/src/resolver.h index 8a64738..b5553bc 100644 --- a/src/resolver.h +++ b/src/resolver.h @@ -39,17 +39,22 @@ #include "datatypes.h" #include "threadUtils.hpp" +typedef boost::function UdpResolveCallback; +typedef boost::function TcpResolveCallback; +typedef boost::function ErrorCallback; + template class ResolveHandler { public: - ResolveHandler(const std::string& addr, const std::string& port, boost::function)> const& onResolve, ResolvAddrType r = ANY); + ResolveHandler(const std::string& addr, const std::string& port, boost::function)> const& onResolve, ErrorCallback const& onError, ResolvAddrType r = ANY); void operator()(const boost::system::error_code& e, const boost::asio::ip::basic_resolver_iterator); private: std::string addr_; std::string port_; - boost::function)> callback_; + boost::function)> onResolve_; + ErrorCallback onError_; ResolvAddrType resolv_addr_type_; }; @@ -64,8 +69,8 @@ public: void init(); void run(); - void resolveUdp(const std::string& addr, const std::string& port, boost::function const& onResolve, ResolvAddrType r = ANY); - void resolveTcp(const std::string& addr, const std::string& port, boost::function const& onResolve, ResolvAddrType r = ANY); + void resolveUdp(const std::string& addr, const std::string& port, UdpResolveCallback const& onResolve, ErrorCallback const& onError, ResolvAddrType r = ANY); + void resolveTcp(const std::string& addr, const std::string& port, TcpResolveCallback const& onResolve, ErrorCallback const& onError, ResolvAddrType r = ANY); private: Resolver(); -- cgit v1.2.3