1#ifndef UPnPsdk_NETADAPTER_HPP
2#define UPnPsdk_NETADAPTER_HPP
10#include <UPnPsdk/netadapter_platform.hpp>
36 const ::sockaddr_storage* a_netmask);
59 const ::sockaddr_storage* a_saddr,
62 const unsigned int a_prefixlength,
65 SSockaddr& a_saddrObj);
113 std::make_shared<CNetadapter_platform>());
136 UPnPsdk_API
unsigned int index()
const;
138 UPnPsdk_API std::string
name()
const;
144 UPnPsdk_API
unsigned int bitmask()
const;
199 std::string_view a_name_or_addr =
"");
215 const unsigned int a_index);
238 enum struct Find { finish, best, loopback,
index } m_state{};
242 unsigned int m_find_index{};
246 void reset()
noexcept;
Get information from local network adapters.
UPnPsdk_API void get_first()
Load a list of network adapters from the operating system and select its first entry.
UPnPsdk_API void socknetmask(SSockaddr &a_snetmask) const
Get socket address netmask from current selected list entry.
UPnPsdk_API void sockaddr(SSockaddr &a_saddr) const
Get socket address from current selected list entry.
UPnPsdk_API bool find_next()
Find next ip address from local network adapters.
UPnPsdk_API unsigned int index() const
Get index number from current selected list entry.
UPnPsdk_API std::string name() const
Get network adapter name from current selected list entry.
UPnPsdk_API bool get_next()
Select next entry from the network adapter list that was initial loaded with get_first().
UPnPsdk_API bool find_first(std::string_view a_name_or_addr="")
Find local network adapter with given name or ip address.
UPnPsdk_API unsigned int bitmask() const
Get prefix length from the ip address of the current selected local network adapter.
uint8_t netmask_to_bitmask(const ::sockaddr_storage *a_netmask)
Get prefix bit number from a network address mask.
void bitmask_to_netmask(const ::sockaddr_storage *a_saddr, const unsigned int a_prefixlength, SSockaddr &a_saddrObj)
Get network address mask from address prefix bit number.
Reengineered Object Oriented UPnP+ program code.
std::shared_ptr< INetadapter > PNetadapter_platform
Smart pointer to hold the injected pointer to the netadapter object for the current used platform.
Trivial ::sockaddr structures enhanced with methods.