117 os << i->name <<
"=" << i->value->SerializeToString (i->checker);
130 std::string::size_type lbracket, rbracket;
131 lbracket = v.find (
"[");
132 rbracket = v.find (
"]");
133 if (lbracket == std::string::npos && rbracket == std::string::npos)
138 if (lbracket == std::string::npos || rbracket == std::string::npos)
142 NS_ASSERT (lbracket != std::string::npos);
143 NS_ASSERT (rbracket != std::string::npos);
144 std::string tid = v.substr (0, lbracket);
145 std::string parameters = v.substr (lbracket + 1,rbracket - (lbracket + 1));
147 std::string::size_type cur;
149 while (cur != parameters.size ())
151 std::string::size_type equal = parameters.find (
"=", cur);
152 if (equal == std::string::npos)
154 is.setstate (std::ios_base::failbit);
159 std::string name = parameters.substr (cur, equal - cur);
163 is.setstate (std::ios_base::failbit);
168 std::string::size_type next = parameters.find (
"|", cur);
170 if (next == std::string::npos)
172 value = parameters.substr (equal + 1, parameters.size () - (equal + 1));
173 cur = parameters.size ();
177 value = parameters.substr (equal + 1, next - (equal + 1));
181 bool ok = val->DeserializeFromString (value, info.
checker);
184 is.setstate (std::ios_base::failbit);
CIterator End(void) const
void Add(std::string name, Ptr< const AttributeChecker > checker, Ptr< AttributeValue > value)
Add an Attribute to the list.
CIterator Begin(void) const
std::list< struct Item >::const_iterator CIterator
Iterator type.
Hold a value for an Attribute.
Anchor the ns-3 type and attribute system.
Instantiate subclasses of ns3::Object.
TypeId GetTypeId(void) const
Get the TypeId which will be created by this ObjectFactory.
Ptr< Object > Create(void) const
Create an Object instance of the configured TypeId.
bool IsTypeIdSet(void) const
Check if the ObjectFactory has been configured with a TypeId.
void SetTypeId(TypeId tid)
Set the TypeId of the Objects to be created by this factory.
TypeId m_tid
The TypeId this factory will create.
ObjectFactory()
Default constructor.
void DoSet(const std::string &name, const AttributeValue &value)
Set an attribute to be set during construction.
AttributeConstructionList m_parameters
The list of attributes and values to be used in constructing objects by this factory.
A base class which provides memory management and object aggregation.
void Construct(const AttributeConstructionList &attributes)
Initialize all member variables registered as Attributes of this TypeId.
void SetTypeId(TypeId tid)
Set the TypeId of this Object.
Smart pointer class similar to boost::intrusive_ptr.
a unique identifier for an interface.
static TypeId LookupByName(std::string name)
Get a TypeId by name.
uint16_t GetUid(void) const
Get the internal id of this TypeId.
Callback< ObjectBase * > GetConstructor(void) const
Get the constructor callback.
std::string GetName(void) const
Get the name.
bool LookupAttributeByName(std::string name, struct AttributeInformation *info) const
Find an Attribute by name, retrieving the associated AttributeInformation.
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#define NS_ABORT_MSG_IF(cond, msg)
Abnormal program termination if a condition is true, with a message.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#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.
ATTRIBUTE_HELPER_CPP(Length)
std::istream & operator>>(std::istream &is, Angles &a)
std::ostream & operator<<(std::ostream &os, const Angles &a)
ns3::ObjectFactory class declaration.