5#ifndef PICOSCENES_PLATFORM_NICPORTAL_HXX
6#define PICOSCENES_PLATFORM_NICPORTAL_HXX
41 std::shared_ptr<AbstractNIC>
getNIC(
const std::string &referredName);
50 template<
typename T,
class = std::enable_if_t<std::is_base_of_v<AbstractNIC, T>>>
51 std::shared_ptr<T>
getTypedNIC(
const std::string &referredName) {
52 return std::dynamic_pointer_cast<T>(
getNIC(referredName));
64 static std::map<std::string, std::shared_ptr<AbstractNIC>> nicNameMap;
Portal class for managing Network Interface Cards.
std::vector< std::shared_ptr< po::options_description > > getAllHALOptions()
Get all HAL (Hardware Abstraction Layer) options.
std::vector< std::shared_ptr< AbstractNIC > > getAllNICs()
Get all registered NICs.
std::shared_ptr< AbstractNIC > getNIC(const std::string &referredName)
Get NIC by interface name.
std::shared_ptr< T > getTypedNIC(const std::string &referredName)
Get typed NIC by interface name.
static std::shared_ptr< NICPortal > getInstance()
Get singleton instance of NICPortal.