blob: 96abee45eccc6947542db39d0ae596b4ea0811a2 [file] [log] [blame]
Zach Steine20867f2018-08-02 13:20:15 -07001/*
2 * Copyright 2018 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef API_ASYNCRESOLVERFACTORY_H_
12#define API_ASYNCRESOLVERFACTORY_H_
13
14#include "rtc_base/asyncresolverinterface.h"
15
16namespace webrtc {
17
18// An abstract factory for creating AsyncResolverInterfaces. This allows
19// client applications to provide WebRTC with their own mechanism for
20// performing DNS resolution.
21class AsyncResolverFactory {
22 public:
23 AsyncResolverFactory() = default;
24 virtual ~AsyncResolverFactory() = default;
25
Zach Stein6fcdc2f2018-08-23 16:25:55 -070026 // The caller should call Destroy on the returned object to delete it.
Zach Steine20867f2018-08-02 13:20:15 -070027 virtual rtc::AsyncResolverInterface* Create() = 0;
28};
29
30} // namespace webrtc
31
32#endif // API_ASYNCRESOLVERFACTORY_H_