21 #include "fatal-error.h"
29 EnumValue::EnumValue ()
34 EnumValue::EnumValue (
int v)
40 EnumValue::Set (
int v)
46 EnumValue::Get (
void)
const
55 return ns3::Create<EnumValue> (*this);
63 for (EnumChecker::ValueSet::const_iterator i = p->m_valueSet.begin (); i != p->m_valueSet.end (); i++)
71 NS_FATAL_ERROR (
"The user has set an invalid C++ value in this Enum");
81 for (EnumChecker::ValueSet::const_iterator i = p->m_valueSet.begin (); i != p->m_valueSet.end (); i++)
83 if (i->second == value)
92 EnumChecker::EnumChecker ()
98 EnumChecker::AddDefault (
int v, std::string name)
101 m_valueSet.push_front (std::make_pair (v, name));
104 EnumChecker::Add (
int v, std::string name)
107 m_valueSet.push_back (std::make_pair (v, name));
118 for (ValueSet::const_iterator i = m_valueSet.begin (); i != m_valueSet.end (); i++)
120 if (i->first == p->Get ())
131 return "ns3::EnumValue";
143 std::ostringstream oss;
144 for (ValueSet::const_iterator i = m_valueSet.begin (); i != m_valueSet.end ();)
148 if (i != m_valueSet.end ())
159 return ns3::Create<EnumValue> ();
168 if (src == 0 || dst == 0)
177 Ptr<const AttributeChecker>
178 MakeEnumChecker (
int v1, std::string n1,
179 int v2, std::string n2,
180 int v3, std::string n3,
181 int v4, std::string n4,
182 int v5, std::string n5,
183 int v6, std::string n6,
184 int v7, std::string n7,
185 int v8, std::string n8,
186 int v9, std::string n9,
187 int v10, std::string n10,
188 int v11, std::string n11,
189 int v12, std::string n12,
190 int v13, std::string n13,
191 int v14, std::string n14,
192 int v15, std::string n15,
193 int v16, std::string n16,
194 int v17, std::string n17,
195 int v18, std::string n18,
196 int v19, std::string n19,
197 int v20, std::string n20,
198 int v21, std::string n21,
199 int v22, std::string n22)
201 NS_LOG_FUNCTION (v1 << n1 << v2 << n2 << v3 << n3 << v4 << n4 << v5 << n5 <<
202 v6 << n6 << v7 << n7 << v8 << n8 << v9 << n9 << v10 << n10 <<
203 v11 << n11 << v12 << n12 << v13 << n13 << v14 << n14 <<
204 v15 << n15 << v16 << n16 << v17 << n17 << v18 << n18 <<
205 v19 << n19 << v20 << n20 << v21 << n21 << v22 << n22);
206 Ptr<EnumChecker> checker = Create<EnumChecker> ();
207 checker->AddDefault (v1, n1);
212 checker->Add (v2, n2);
217 checker->Add (v3, n3);
222 checker->Add (v4, n4);
227 checker->Add (v5, n5);
232 checker->Add (v6, n6);
237 checker->Add (v7, n7);
242 checker->Add (v8, n8);
247 checker->Add (v9, n9);
252 checker->Add (v10, n10);
257 checker->Add (v11, n11);
262 checker->Add (v12, n12);
267 checker->Add (v13, n13);
272 checker->Add (v14, n14);
277 checker->Add (v15, n15);
282 checker->Add (v16, n16);
287 checker->Add (v17, n17);
292 checker->Add (v18, n18);
297 checker->Add (v19, n19);
302 checker->Add (v20, n20);
307 checker->Add (v21, n21);
312 checker->Add (v22, n22);
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
Hold a value for an Attribute.
virtual std::string SerializeToString(Ptr< const AttributeChecker > checker) const
#define NS_ASSERT(condition)
#define NS_LOG_COMPONENT_DEFINE(name)
virtual Ptr< AttributeValue > Create(void) const
#define NS_FATAL_ERROR(msg)
fatal error handling
hold variables of type 'enum'
virtual std::string GetUnderlyingTypeInformation(void) const
virtual Ptr< AttributeValue > Copy(void) const
virtual bool DeserializeFromString(std::string value, Ptr< const AttributeChecker > checker)
virtual bool HasUnderlyingTypeInformation(void) const
virtual std::string GetValueTypeName(void) const
virtual bool Check(const AttributeValue &value) const