40 configPlatform_(filename),
50 std::unique_ptr<EMANE::Application::NEMManager>
55 for(
const auto & nemConfiguration : configPlatform_.
getNEMs())
57 nems.push_back(createNEM(nemConfiguration));
61 std::unique_ptr<NEMManager>
70 std::unique_ptr<EMANE::Application::NEM>
76 EMANE::LayerConfigurations::const_iterator layerIter =
79 for ( ; layerIter != pNEMConfig->
getLayers().end(); ++layerIter)
81 if ((*layerIter)->getType() ==
"phy")
85 (*layerIter)->getLibrary(),
86 (*layerIter)->getConfigurationUpdateRequest()));
88 else if ((*layerIter)->getType() ==
"mac")
92 (*layerIter)->getLibrary(),
93 (*layerIter)->getConfigurationUpdateRequest()));
95 else if ((*layerIter)->getType() ==
"shim")
99 (*layerIter)->getLibrary(),
100 (*layerIter)->getConfigurationUpdateRequest()));
106 (*layerIter)->getLibrary(),
107 (*layerIter)->getConfigurationUpdateRequest()));
113 std::stringstream excStream;
117 <<
" is NOT properly configured!" 120 <<
"Possible reason(s):" 124 <<
" NEM XML is missing one of phy|mac|transport."
std::list< std::unique_ptr< NEMLayer > > NEMLayers
std::unique_ptr< NEMManager > buildNEMManager(const uuid_t &uuid, NEMs &nems, const ConfigurationUpdateRequest &request)
std::unique_ptr< NEMLayer > buildMACLayer(NEMId id, const std::string &sLibraryFile, const ConfigurationUpdateRequest &request, bool bSkipConfigure=false)
std::unique_ptr< NEMLayer > buildPHYLayer(NEMId id, const std::string &sLibraryFile, const ConfigurationUpdateRequest &request, bool bSkipConfigure=false)
NEMDirector(const std::string &filename, NEMBuilder &builder)
std::unique_ptr< NEMManager > construct(const uuid_t &uuid)
const LayerConfigurations & getLayers()
const ConfigurationUpdateRequest getConfigurationUpdateRequest()
std::unique_ptr< NEM > buildNEM(NEMId id, NEMLayers &layers, const ConfigurationUpdateRequest &request, bool bHasExternalTransport)
std::list< std::unique_ptr< NEM > > NEMs
bool isExternalTransport()
std::unique_ptr< NEMLayer > buildTransportLayer(NEMId id, const std::string &sLibraryFile, const ConfigurationUpdateRequest &request, bool bSkipConfigure=false)
Contains all configuration associated with an NEM.
Provides methods for constructing an emulator instance from its constituent parts.
std::unique_ptr< NEMLayer > buildShimLayer(NEMId id, const std::string &sLibraryFile, const ConfigurationUpdateRequest &request, bool bSkipConfigure=false)