// Copyright (C) 2022 Internet Systems Consortium, Inc. ("ISC") // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. #ifndef ISC_UTIL_DHCP_SPACE_H #define ISC_UTIL_DHCP_SPACE_H 1 #include #include namespace isc { namespace util { enum DhcpSpace { DHCPv4, DHCPv6, }; /// @brief Provides the C string representation of the DHCP space. /// /// @tparam D DHCP space /// /// @return "4" or "6" template char const* cStringDhcpSpace(); /// @brief Replaces all occurrences of {} with 4 or 6 based on the templated DHCP space. /// /// @tparam D DHCP space /// /// @return the formatted string template std::string formatDhcpSpace(char const* const format_string) { std::string result(format_string); boost::replace_all(result, "{}", cStringDhcpSpace()); return result; } } // namespace util } // namespace isc #endif // ISC_UTIL_DHCP_SPACE_H