119 os << i->name <<
"=" << i->value->SerializeToString(i->checker);
134 std::string::size_type lbracket;
135 std::string::size_type rbracket;
136 lbracket = v.find(
'[');
137 rbracket = v.find(
']');
138 if (lbracket == std::string::npos && rbracket == std::string::npos)
143 if (lbracket == std::string::npos || rbracket == std::string::npos)
147 NS_ASSERT(lbracket != std::string::npos);
148 NS_ASSERT(rbracket != std::string::npos);
149 std::string tid = v.substr(0, lbracket);
150 std::string parameters = v.substr(lbracket + 1, rbracket - (lbracket + 1));
152 std::string::size_type cur;
154 while (cur != parameters.size())
156 std::string::size_type equal = parameters.find(
'=', cur);
157 if (equal == std::string::npos)
159 is.setstate(std::ios_base::failbit);
164 std::string name = parameters.substr(cur, equal - cur);
168 is.setstate(std::ios_base::failbit);
173 std::string::size_type next = parameters.find(
'|', cur);
175 if (next == std::string::npos)
177 value = parameters.substr(equal + 1, parameters.size() - (equal + 1));
178 cur = parameters.size();
182 value = parameters.substr(equal + 1, next - (equal + 1));
186 bool ok = val->DeserializeFromString(
value, info.
checker);
189 is.setstate(std::ios_base::failbit);
void Add(std::string name, Ptr< const AttributeChecker > checker, Ptr< AttributeValue > value)
Add an Attribute to the list.
std::list< structItem >::const_iterator CIterator
Iterator type.
Hold a value for an Attribute.
Anchor the ns-3 type and attribute system.
Instantiate subclasses of ns3::Object.
Ptr< Object > Create() const
Create an Object instance of the configured TypeId.
TypeId GetTypeId() const
Get the TypeId which will be created by this ObjectFactory.
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.
bool IsTypeIdSet() const
Check if the ObjectFactory has been configured with a TypeId.
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.
Callback< ObjectBase * > GetConstructor() const
Get the constructor callback.
uint16_t GetUid() const
Get the internal id of this TypeId.
bool LookupAttributeByName(std::string name, struct AttributeInformation *info) const
Find an Attribute by name, retrieving the associated AttributeInformation.
std::string GetName() const
Get the name.
#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.
std::ostream & operator<<(std::ostream &os, const Angles &a)
ATTRIBUTE_HELPER_CPP(Length)
std::istream & operator>>(std::istream &is, Angles &a)
ns3::ObjectFactory class declaration.