parse command-line argumentsInstances of this class can be used to parse command-line arguments: users can register new arguments with CommandLine::AddValue but the most important functionality provided by this class is that it can be used to set the 'initial value' of every attribute in the system with the More...
#include <command-line.h>
Classes | |
class | CallbackItem |
class | Item |
class | UserItem |
Public Member Functions | |
CommandLine () | |
CommandLine (const CommandLine &cmd) | |
~CommandLine () | |
template<typename T > | |
void | AddValue (const std::string &name, const std::string &help, T &value) |
void | AddValue (const std::string &name, const std::string &help, Callback< bool, std::string > callback) |
CommandLine & | operator= (const CommandLine &cmd) |
void | Parse (int argc, char *argv[]) const |
Private Types | |
typedef std::list< Item * > | Items |
Private Member Functions | |
void | Clear (void) |
void | Copy (const CommandLine &cmd) |
void | HandleArgument (std::string name, std::string value) const |
void | PrintAttributes (std::string type) const |
void | PrintGlobals (void) const |
void | PrintGroup (std::string group) const |
void | PrintGroups (void) const |
void | PrintHelp (void) const |
void | PrintTypeIds (void) const |
Private Attributes | |
Items | m_items |
parse command-line arguments
Instances of this class can be used to parse command-line arguments: users can register new arguments with CommandLine::AddValue but the most important functionality provided by this class is that it can be used to set the 'initial value' of every attribute in the system with the
* --TypeIdName::AttributeName=value *
syntax and it can be used to set the value of every GlobalValue in the system with the
* --GlobalValueName=value *
syntax.
Definition at line 50 of file command-line.h.
|
private |
Definition at line 124 of file command-line.h.
ns3::CommandLine::CommandLine | ( | ) |
Definition at line 33 of file command-line.cc.
ns3::CommandLine::CommandLine | ( | const CommandLine & | cmd | ) |
Definition at line 36 of file command-line.cc.
References Copy().
ns3::CommandLine::~CommandLine | ( | ) |
Definition at line 47 of file command-line.cc.
References Clear().
void ns3::CommandLine::AddValue | ( | const std::string & | name, |
const std::string & | help, | ||
T & | value | ||
) |
name | the name of the user-supplied argument |
help | some help text used by –PrintHelp |
value | a reference to the variable where the value parsed will be stored (if no value is parsed, this variable is not modified). |
Definition at line 134 of file command-line.h.
References ns3::CommandLine::Item::m_help, m_items, ns3::CommandLine::Item::m_name, and ns3::CommandLine::UserItem< T >::m_valuePtr.
Referenced by AodvExample::Configure(), MeshTest::Configure(), ns3::CommandLineBooleanTestCase::DoRun(), ns3::CommandLineIntTestCase::DoRun(), ns3::CommandLineUnsignedIntTestCase::DoRun(), ns3::CommandLineStringTestCase::DoRun(), main(), PrintPsr(), PrintPsrVsCollisionInterval(), PrintPsrVsDistance(), and PrintSizeVsRange().
void ns3::CommandLine::AddValue | ( | const std::string & | name, |
const std::string & | help, | ||
Callback< bool, std::string > | callback | ||
) |
name | the name of the user-supplied argument |
help | some help text used by –PrintHelp |
callback | a callback function that will be invoked to parse and collect the value. This normally used by language bindings. |
Definition at line 297 of file command-line.cc.
References ns3::CommandLine::CallbackItem::m_callback, ns3::CommandLine::Item::m_help, m_items, ns3::CommandLine::Item::m_name, and NS_LOG_FUNCTION.
|
private |
Definition at line 61 of file command-line.cc.
References m_items.
Referenced by operator=(), and ~CommandLine().
|
private |
Definition at line 52 of file command-line.cc.
References m_items.
Referenced by CommandLine(), and operator=().
|
private |
Definition at line 223 of file command-line.cc.
References m_items, NS_LOG_DEBUG, PrintAttributes(), PrintGlobals(), PrintGroup(), PrintGroups(), PrintHelp(), PrintTypeIds(), ns3::Config::SetDefaultFailSafe(), and ns3::Config::SetGlobalFailSafe().
Referenced by Parse().
CommandLine & ns3::CommandLine::operator= | ( | const CommandLine & | cmd | ) |
Definition at line 41 of file command-line.cc.
References Clear(), and Copy().
void ns3::CommandLine::Parse | ( | int | argc, |
char * | argv[] | ||
) | const |
argc | the 'argc' variable: number of arguments (including the main program name as first element). |
argv | the 'argv' variable: a null-terminated array of strings, each of which identifies a command-line argument. |
Obviously, this method will parse the input command-line arguments and will attempt to handle them all.
Definition at line 75 of file command-line.cc.
References HandleArgument().
Referenced by AodvExample::Configure(), MeshTest::Configure(), main(), and ns3::CommandLineTestCaseBase::Parse().
|
private |
Definition at line 150 of file command-line.cc.
References ns3::TypeId::AttributeInformation::checker, ns3::TypeId::GetAttribute(), ns3::TypeId::GetAttributeFullName(), ns3::TypeId::GetAttributeN(), ns3::TypeId::AttributeInformation::help, ns3::TypeId::AttributeInformation::initialValue, ns3::TypeId::LookupByNameFailSafe(), NS_FATAL_ERROR, and ns3::AttributeValue::SerializeToString().
Referenced by HandleArgument().
|
private |
Definition at line 136 of file command-line.cc.
References ns3::GlobalValue::Begin(), ns3::GlobalValue::End(), and ns3::StringValue::Get().
Referenced by HandleArgument().
|
private |
Definition at line 168 of file command-line.cc.
References ns3::TypeId::GetGroupName(), ns3::TypeId::GetName(), ns3::TypeId::GetRegistered(), ns3::TypeId::GetRegisteredN(), and visualizer.higcontainer::group.
Referenced by HandleArgument().
|
private |
Definition at line 191 of file command-line.cc.
References ns3::TypeId::GetGroupName(), ns3::TypeId::GetRegistered(), ns3::TypeId::GetRegisteredN(), and visualizer.higcontainer::group.
Referenced by HandleArgument().
|
private |
Definition at line 117 of file command-line.cc.
References m_items.
Referenced by HandleArgument().
|
private |
Definition at line 181 of file command-line.cc.
References ns3::TypeId::GetName(), ns3::TypeId::GetRegistered(), and ns3::TypeId::GetRegisteredN().
Referenced by HandleArgument().
|
private |
Definition at line 125 of file command-line.h.
Referenced by AddValue(), Clear(), Copy(), HandleArgument(), and PrintHelp().