// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef DEBUGD_SRC_IPADDRS_TOOL_H_
#define DEBUGD_SRC_IPADDRS_TOOL_H_

#include <string>
#include <vector>

#include <base/macros.h>
#include <brillo/variant_dictionary.h>

namespace debugd {

class IpAddrsTool {
 public:
  IpAddrsTool() = default;
  IpAddrsTool(const IpAddrsTool&) = delete;
  IpAddrsTool& operator=(const IpAddrsTool&) = delete;

  ~IpAddrsTool() = default;

  std::vector<std::string> GetIpAddresses(
      const brillo::VariantDictionary& options);
};

}  // namespace debugd

#endif  // DEBUGD_SRC_IPADDRS_TOOL_H_
