65   T *  pManager{
new T{uuid}};
    68   pManager->initialize(registrarProxy);
    72 int main(
int argc, 
char * argv[])
    78       std::vector<option> options =
    80           {
"help",0,
nullptr,
'h'},
    81           {
"version",0,
nullptr,
'v'},
    82           {
"configuration",0,
nullptr,
'c'},
    83           {
"manifest",0,
nullptr,
'm'},
    89       bool bConfiguration{
false};
    90       bool bShowManifest{
false};
    92       while((iOption = getopt_long(argc,argv,
"hcmv", &options[0],&iOptionIndex)) != -1)
   103               std::cout<<VERSION<<std::endl;
   108               bConfiguration = 
true;
   112               bShowManifest = 
true;
   116               std::cerr<<
"Unknown option: -"<<
static_cast<char>(iOption)<<std::endl;
   121       std::string sFileName;
   125           std::cerr<<
"Missing plugin"<<std::endl;
   130           sFileName = argv[optind];
   139       std::string sPluginName;
   151           sPluginName = sFileName;
   154       std::unique_ptr<EMANE::Component> pComponent;
   157       if(sPluginName == 
"nemmanager")
   159           auto pManager = createManager<EMANE::Application::NEMManagerImpl>();
   160           buildId = pManager->getBuildId();
   161           pComponent.reset(pManager);
   164       else if(sPluginName == 
"transportmanager")
   166           auto pManager = createManager<EMANE::Application::TransportManagerImpl>();
   167           buildId = pManager->getBuildId();
   168           pComponent.reset(pManager);
   170       else if(sPluginName == 
"eventgeneratormanager")
   172           auto pManager = createManager<EMANE::Application::EventGeneratorManagerImpl>();
   173           buildId = pManager->getBuildId();
   174           pComponent.reset(pManager);
   176       else if(sPluginName == 
"eventagentmanager")
   178           auto pManager = createManager<EMANE::Application::EventAgentManagerImpl>();
   179           buildId = pManager->getBuildId();
   180           pComponent.reset(pManager);
   184           if(sPluginName == 
"emanephy" || sPluginName.empty())
   198                 auto pPlugin = nemBuilder.
buildPHYLayer(1,sPluginName,request,!bConfiguration);
   199                 buildId = pPlugin->getBuildId();
   200                 pComponent.reset(pPlugin.release());
   206                 auto pPlugin = nemBuilder.
buildMACLayer(1,sPluginName,request,!bConfiguration);
   207                 buildId = pPlugin->getBuildId();
   208                 pComponent.reset(pPlugin.release());
   214                 auto pPlugin = nemBuilder.
buildShimLayer(1,sPluginName,request,!bConfiguration);
   215                 buildId = pPlugin->getBuildId();
   216                 pComponent.reset(pPlugin.release());
   222                 auto pPlugin = eventGeneratorBuilder.
buildEventGenerator(sPluginName,request,!bConfiguration);
   223                 buildId = pPlugin->getBuildId();
   224                 pComponent.reset(pPlugin.release());
   230                 auto pPlugin = eventAgentBuilder.
buildEventAgent(1,sPluginName,request,!bConfiguration);
   231                 buildId = pPlugin->getBuildId();
   232                 pComponent.reset(pPlugin.release());
   238                 auto pPlugin = transportBuilder.
buildTransport(1,sPluginName,request,!bConfiguration);
   239                 buildId = pPlugin->getBuildId();
   240                 pComponent.reset(pPlugin.release());
   254       std::cerr<<exp.
what()<<std::endl;
   260   catch(
const std::exception & exp)
   262       std::cerr<<exp.what()<<std::endl;
   276   std::cout<<
"usage: emaneinfo [OPTIONS]... <plugin>|'nemmanager'|'transportmanager'|"<<std::endl;
   277   std::cout<<
"                              'eventagentmanager'|'eventgeneratormanager'"<<std::endl;
   278   std::cout<<std::endl;
   279   std::cout<<
" CONFIG_URI                    URI of XML configuration file."<<std::endl;
   280   std::cout<<std::endl;
   281   std::cout<<
"options:"<<std::endl;
   282   std::cout<<
"  -h, --help                     Print this message and exit."<<std::endl;
   283   std::cout<<
"  -m, --manifest                 Print manifest."<<std::endl;
   284   std::cout<<
"  -v, --version                  Print version and exit."<<std::endl;
   285   std::cout<<std::endl;
 const std::string getPluginName() const
 
std::unique_ptr< NEMLayer > buildTransport(NEMId id, const std::string &sLibraryFile, const ConfigurationUpdateRequest &request, bool bSkipConfigure=false) const
 
std::unique_ptr< NEMLayer > buildMACLayer(NEMId id, const std::string &sLibraryFile, const ConfigurationUpdateRequest &request, bool bSkipConfigure=false)
 
std::string manifest(BuildId buildId, const std::string &sName)
 
Exception base class that allows for type and description information. 
 
std::unique_ptr< NEMLayer > buildPHYLayer(NEMId id, const std::string &sLibraryFile, const ConfigurationUpdateRequest &request, bool bSkipConfigure=false)
 
const EMANE::ConfigurationUpdateRequest & getConfigurationUpdateRequest() const
 
const char * what() const
 
Provides methods for contructing transports and a manager to contain and control them as a a group...
 
Provides methods for constructing event generators and a manager to contain and control them as a gro...
 
std::unique_ptr< EventGenerator > buildEventGenerator(const std::string &sLibraryFile, const ConfigurationUpdateRequest &request, bool bSkipConfigure=false)
 
int main(int argc, char *argv[])
 
std::vector< ConfigurationNameStringValues > ConfigurationUpdateRequest
 
Provides methods for constructing event agents and a manager to contain and control them as a group...
 
std::unique_ptr< EventAgent > buildEventAgent(EMANE::NEMId nemId, const std::string &sLibraryFile, const ConfigurationUpdateRequest &request, bool bSkipConfigure=false)
 
static OTAManager * instance()
 
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)
 
PluginType getPluginType() const