00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_network.h"
00035 #include "../../Core/System/sharedptr.h"
00036 #include <vector>
00037
00038 class CL_DNSResourceRecord;
00039 class CL_DNSPacket;
00040 class CL_DNSResolver_Impl;
00041
00045 class CL_API_NETWORK CL_DNSResolver
00046 {
00049
00050 public:
00051 CL_DNSResolver();
00052
00053 ~CL_DNSResolver();
00054
00058
00059 public:
00060
00064
00065 public:
00066 std::vector<CL_DNSResourceRecord> lookup_resource(
00067 const CL_String &domain_name,
00068 const CL_String &resource_type,
00069 int timeout);
00070
00071 CL_DNSPacket perform_query(
00072 CL_DNSPacket &packet,
00073 int timeout,
00074 const CL_String &dns_server_name);
00075
00076 CL_DNSPacket perform_query(
00077 const CL_String &domain_name,
00078 const CL_String &resource_type,
00079 int timeout,
00080 const CL_String &dns_server_name);
00081
00085
00086 private:
00087 CL_SharedPtr<CL_DNSResolver_Impl> impl;
00089 };
00090