27 #include "ns3/core-config.h"
61 NS_FATAL_ERROR (
"Value set by user on " << name <<
" is invalid.");
72 const char *envVar = getenv (
"NS_GLOBAL_VALUE");
73 if (envVar == 0 || std::strlen (envVar) == 0)
77 std::string env = envVar;
78 std::string::size_type cur = 0;
79 std::string::size_type next = 0;
80 while (next != std::string::npos)
82 next = env.find (
";", cur);
83 std::string tmp = std::string (env, cur, next - cur);
84 std::string::size_type equal = tmp.find (
"=");
85 if (equal != std::string::npos)
87 std::string name = tmp.substr (0, equal);
88 std::string value = tmp.substr (equal + 1, tmp.size () - equal - 1);
161 if ((*i)->GetName () == name)
163 if (!(*i)->SetValue (value))
179 if ((*i)->GetName () == name)
181 return (*i)->SetValue (value);
213 if ((*gvit)->GetName () == name)
215 (*gvit)->GetValue (value);
228 NS_FATAL_ERROR (
"Could not find GlobalValue named \"" << name <<
"\"");
ns3::AttributeValue, ns3::AttributeAccessor and ns3::AttributeChecker declarations.
Hold a value for an Attribute.
Vector::const_iterator Iterator
Iterator type for the list of all global values.
static Iterator End(void)
The End iterator.
void InitializeFromEnv(void)
Initialize from the NS_GLOBAL_VALUE environment variable.
Ptr< const AttributeChecker > GetChecker(void) const
Get the AttributeChecker.
std::string GetHelp(void) const
Get the help string.
void GetValue(AttributeValue &value) const
Get the value.
static void Bind(std::string name, const AttributeValue &value)
Iterate over the set of GlobalValues until a matching name is found and then set its value with Globa...
static bool GetValueByNameFailSafe(std::string name, AttributeValue &value)
Finds the GlobalValue with the given name and returns its value.
std::vector< GlobalValue * > Vector
Container type for holding all the GlobalValues.
static Vector * GetVector(void)
Get the static vector of all GlobalValues.
void ResetInitialValue(void)
Reset to the initial value.
std::string m_help
The help string.
Ptr< const AttributeChecker > m_checker
The AttributeChecker for this GlobalValue.
Ptr< AttributeValue > m_currentValue
The current value.
std::string GetName(void) const
Get the name.
bool SetValue(const AttributeValue &value)
Set the value of this GlobalValue.
static void GetValueByName(std::string name, AttributeValue &value)
Finds the GlobalValue with the given name and returns its value.
static bool BindFailSafe(std::string name, const AttributeValue &value)
Iterate over the set of GlobalValues until a matching name is found and then set its value with Globa...
static Iterator Begin(void)
The Begin iterator.
Ptr< AttributeValue > m_initialValue
The initial value.
GlobalValue(std::string name, std::string help, const AttributeValue &initialValue, Ptr< const AttributeChecker > checker)
Constructor.
std::string m_name
The name of this GlobalValue.
Smart pointer class similar to boost::intrusive_ptr.
Hold variables of type string.
void Set(const std::string &value)
Set the value.
NS_FATAL_x macro definitions.
ns3::GlobalValue declaration.
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_FUNCTION_NOARGS()
Output the name of the function.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::StringValue attribute value declarations.
ns3::UintegerValue attribute value declarations and template implementations.