1c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Copyright (C) 2013 The Android Open Source Project 3c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 4c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Licensed under the Apache License, Version 2.0 (the "License"); 5c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// you may not use this file except in compliance with the License. 6c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// You may obtain a copy of the License at 7c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 8c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// http://www.apache.org/licenses/LICENSE-2.0 9c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 10c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Unless required by applicable law or agreed to in writing, software 11c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// distributed under the License is distributed on an "AS IS" BASIS, 12c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// See the License for the specific language governing permissions and 14c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// limitations under the License. 15c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// 163e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 173e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu#include "shill/dns_client_factory.h" 183e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 193e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhuusing std::string; 203e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhuusing std::vector; 213e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 223e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhunamespace shill { 233e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 243e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhunamespace { 253e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 263e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhubase::LazyInstance<DNSClientFactory> g_dns_client_factory 273e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu = LAZY_INSTANCE_INITIALIZER; 283e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 293e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu} // namespace 303e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 313e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh PrabhuDNSClientFactory::DNSClientFactory() {} 323e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh PrabhuDNSClientFactory::~DNSClientFactory() {} 333e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 34a794cd60a7339d576ea2eed263a4f0a20fb255afPaul StewartDNSClientFactory* DNSClientFactory::GetInstance() { 353e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu return g_dns_client_factory.Pointer(); 363e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu} 373e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 38a794cd60a7339d576ea2eed263a4f0a20fb255afPaul StewartDNSClient* DNSClientFactory::CreateDNSClient( 393e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu IPAddress::Family family, 40a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewart const string& interface_name, 41a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewart const vector<string>& dns_servers, 423e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu int timeout_ms, 43a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewart EventDispatcher* dispatcher, 44a794cd60a7339d576ea2eed263a4f0a20fb255afPaul Stewart const DNSClient::ClientCallback& callback) { 453e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu return new DNSClient(family, 463e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu interface_name, 473e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu dns_servers, 483e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu timeout_ms, 493e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu dispatcher, 503e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu callback); 513e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu} 523e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu 533e452f8c41b7983f1068a4b7229998c7e7de4334Prathmesh Prabhu} // namespace shill 54