Logo
~Sockets~
~Examples~
~Contact~


ResolvSocket.h

Go to the documentation of this file.
00001 
00005 /*
00006 Copyright (C) 2004-2007  Anders Hedstrom
00007 
00008 This library is made available under the terms of the GNU GPL.
00009 
00010 If you would like to use this library in a closed-source application,
00011 a separate license agreement is available. For information about 
00012 the closed-source license agreement for the C++ sockets library,
00013 please visit http://www.alhem.net/Sockets/license.html and/or
00014 email license@alhem.net.
00015 
00016 This program is free software; you can redistribute it and/or
00017 modify it under the terms of the GNU General Public License
00018 as published by the Free Software Foundation; either version 2
00019 of the License, or (at your option) any later version.
00020 
00021 This program is distributed in the hope that it will be useful,
00022 but WITHOUT ANY WARRANTY; without even the implied warranty of
00023 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00024 GNU General Public License for more details.
00025 
00026 You should have received a copy of the GNU General Public License
00027 along with this program; if not, write to the Free Software
00028 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00029 */
00030 #ifndef _SOCKETS_ResolvSocket_H
00031 #define _SOCKETS_ResolvSocket_H
00032 #include "sockets-config.h"
00033 #ifdef ENABLE_RESOLVER
00034 #include "TcpSocket.h"
00035 
00036 #ifdef SOCKETS_NAMESPACE
00037 namespace SOCKETS_NAMESPACE {
00038 #endif
00039 
00042 class ResolvSocket : public TcpSocket
00043 {
00044 public:
00045         ResolvSocket(ISocketHandler&,Socket *parent = NULL);
00046         ~ResolvSocket();
00047 
00048         void OnAccept() { m_bServer = true; }
00049         void OnLine(const std::string& line);
00050         void OnDetached();
00051         void OnDelete();
00052 
00053         void SetId(int x) { m_resolv_id = x; }
00054         void SetHost(const std::string& x) { m_resolv_host = x; }
00055         void SetAddress(ipaddr_t x) { m_resolv_address = x; }
00056 #ifdef ENABLE_IPV6
00057         void SetAddress(in6_addr& a) { m_resolv_address6 = a; m_resolve_ipv6 = true; }
00058 #endif
00059         void SetPort(port_t x) { m_resolv_port = x; }
00060         void OnConnect();
00061 
00062 #ifdef ENABLE_IPV6
00063         void SetResolveIpv6(bool x = true) { m_resolve_ipv6 = x; }
00064 #endif
00065 
00066 private:
00067         ResolvSocket(const ResolvSocket& s) : TcpSocket(s) {} // copy constructor
00068         ResolvSocket& operator=(const ResolvSocket& ) { return *this; } // assignment operator
00069 
00070         std::string m_query;
00071         std::string m_data;
00072         bool m_bServer;
00073         Socket *m_parent;
00074         int m_resolv_id;
00075         std::string m_resolv_host;
00076         port_t m_resolv_port;
00077         ipaddr_t m_resolv_address;
00078 #ifdef ENABLE_IPV6
00079         bool m_resolve_ipv6;
00080         in6_addr m_resolv_address6;
00081 #endif
00082 };
00083 
00084 
00085 
00086 
00087 #ifdef SOCKETS_NAMESPACE
00088 }
00089 #endif
00090 
00091 #endif // ENABLE_RESOLVER
00092 #endif // _SOCKETS_ResolvSocket_H
Page, code, and content Copyright (C) 2007 by Anders Hedström
Generated for C++ Sockets by  doxygen 1.4.4