AM Daemon ライブラリリファレンス
DnsResolver.h
[詳解]
1 /// @file
2 /// @brief ドメイン名のIPv4名前解決を非同期で行うクラス DnsResolver のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_UTIL_DNSRESOLVER_H
7 #define AMDAEMON_UTIL_DNSRESOLVER_H
8 
9 #include "amdaemon/env.h"
11 
12 #include <memory>
13 
14 namespace amdaemon
15 {
16 namespace util
17 {
18 /// @addtogroup g_util
19 /// @{
20 
21  /// ドメイン名のIPv4名前解決を非同期で行うクラス。
23  {
24  public:
25  /// @brief コンストラクタ。
26  ///
27  /// 無効なインスタンスとして初期化する。
28  /// 他のインスタンスのコピー先変数を予め宣言しておく場合等に用いられる。
29  DnsResolver();
30 
31  /// @brief コンストラクタ。
32  /// @param[in] name ドメイン名。
33  ///
34  /// @exception Exception
35  /// - 引数 name に nullptr を指定した場合。
36  /// - 非同期処理の開始に失敗した場合。
37  ///
38  /// インスタンス構築と同時に名前解決処理を開始する。
39  DnsResolver(const wchar_t* name);
40 
41  /// @brief コピーコンストラクタ。
42  /// @param[in] src ムーブ元。
43  DnsResolver(const DnsResolver& src);
44 
45  /// @brief ムーブコンストラクタ。
46  /// @param[in] src ムーブ元。
47  DnsResolver(DnsResolver&& src);
48 
49  /// デストラクタ。
50  ~DnsResolver();
51 
52  /// @brief コピー代入演算子のオーバロード。
53  /// @param[in] r 右辺値。
54  /// @return 自身の参照。
56 
57  /// @brief ムーブ代入演算子のオーバロード。
58  /// @param[in] r 右辺値。
59  /// @return 自身の参照。
61 
62  /// @brief 名前解決対象のドメイン名を取得する。
63  /// @return 名前解決対象のドメイン名。無効なインスタンスならば空文字列。
64  const wchar_t* getName() const;
65 
66  /// @brief 有効なインスタンスであるか否かを取得する。
67  /// @retval true 有効なインスタンスである場合。
68  /// @retval false 無効なインスタンスである場合。
69  bool valid() const;
70 
71  /// @brief 名前解決処理の完了まで待機する。
72  /// @retval true 処理が成功した場合。
73  /// @retval false 処理が失敗したか、無効なインスタンスである場合。
74  bool sync() const;
75 
76  /// @brief 名前解決処理が完了したか否かを取得する。
77  /// @retval true 完了した場合。
78  /// @retval false 未完了であるか、無効なインスタンスである場合。
79  bool isDone() const;
80 
81  /// @brief 名前解決処理が成功したか否かを取得する。
82  /// @retval true 成功した場合。
83  /// @retval false 失敗したか、未完了である場合。
84  bool isSucceeded() const;
85 
86  /// @brief 名前解決結果のIPアドレス値を取得する。
87  /// @return IPアドレス値。名前解決に成功していない場合は IpAddress::zero() 。
88  IpAddress getAddress() const;
89 
90  private:
91  struct Data;
92 
93  /// 内部データ。
94  std::shared_ptr<Data> _data;
95  };
96 
97 /// @}
98 } // namespace util
99 } // namespace amdaemon
100 
101 #endif // AMDAEMON_UTIL_DNSRESOLVER_H
const wchar_t * getName() const
名前解決対象のドメイン名を取得する。
IPv4のIPアドレスを表す構造体。
Definition: IpAddress.h:29
bool isSucceeded() const
名前解決処理が成功したか否かを取得する。
ドメイン名のIPv4名前解決を非同期で行うクラス。
Definition: DnsResolver.h:22
~DnsResolver()
デストラクタ。
DnsResolver()
コンストラクタ。
Daemonライブラリの環境定義を行うヘッダ。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
bool sync() const
名前解決処理の完了まで待機する。
IPv4のIPアドレスを表す構造体 IpAddress のヘッダ。
bool isDone() const
名前解決処理が完了したか否かを取得する。
IpAddress getAddress() const
名前解決結果のIPアドレス値を取得する。
DnsResolver & operator=(const DnsResolver &r)
コピー代入演算子のオーバロード。
bool valid() const
有効なインスタンスであるか否かを取得する。