|
|
| 106 |
* Add a constructor Callback to this type id. |
106 |
* Add a constructor Callback to this type id. |
| 107 |
* \param [in] uid The id. |
107 |
* \param [in] uid The id. |
| 108 |
* \param [in] callback The Callback for the constructor. |
108 |
* \param [in] callback The Callback for the constructor. |
|
|
109 |
* \param [in] canBeDupicate If true, this class can be registered more than once |
| 109 |
*/ |
110 |
*/ |
| 110 |
void AddConstructor (uint16_t uid, Callback<ObjectBase *> callback); |
111 |
void AddConstructor (uint16_t uid, Callback<ObjectBase *> callback, bool canBeDuplicate = false); |
| 111 |
/** |
112 |
/** |
| 112 |
* Mark this type id to be excluded from documentation. |
113 |
* Mark this type id to be excluded from documentation. |
| 113 |
* \param [in] uid The id. |
114 |
* \param [in] uid The id. |
|
|
| 171 |
* Get the total number of type ids. |
172 |
* Get the total number of type ids. |
| 172 |
* \returns The total number. |
173 |
* \returns The total number. |
| 173 |
*/ |
174 |
*/ |
| 174 |
uint32_t GetRegisteredN (void) const; |
175 |
uint16_t GetRegisteredN (void) const; |
| 175 |
/** |
176 |
/** |
| 176 |
* Get a type id by index. |
177 |
* Get a type id by index. |
| 177 |
* |
178 |
* |
|
|
| 181 |
* \param [in] i The index. |
182 |
* \param [in] i The index. |
| 182 |
* \returns The type id. |
183 |
* \returns The type id. |
| 183 |
*/ |
184 |
*/ |
| 184 |
uint16_t GetRegistered (uint32_t i) const; |
185 |
uint16_t GetRegistered (uint16_t i) const; |
| 185 |
/** |
186 |
/** |
| 186 |
* Record a new attribute in a type id. |
187 |
* Record a new attribute in a type id. |
| 187 |
* \param [in] uid The id. |
188 |
* \param [in] uid The id. |
|
|
| 214 |
* \param [in] initialValue The new initial value to use for this attribute. |
215 |
* \param [in] initialValue The new initial value to use for this attribute. |
| 215 |
*/ |
216 |
*/ |
| 216 |
void SetAttributeInitialValue(uint16_t uid, |
217 |
void SetAttributeInitialValue(uint16_t uid, |
| 217 |
uint32_t i, |
218 |
std::size_t i, |
| 218 |
Ptr<const AttributeValue> initialValue); |
219 |
Ptr<const AttributeValue> initialValue); |
| 219 |
/** |
220 |
/** |
| 220 |
* Get the number of attributes. |
221 |
* Get the number of attributes. |
| 221 |
* \param [in] uid The id. |
222 |
* \param [in] uid The id. |
| 222 |
* \returns The number of attributes associated to this TypeId |
223 |
* \returns The number of attributes associated to this TypeId |
| 223 |
*/ |
224 |
*/ |
| 224 |
uint32_t GetAttributeN (uint16_t uid) const; |
225 |
std::size_t GetAttributeN (uint16_t uid) const; |
| 225 |
/** |
226 |
/** |
| 226 |
* Get Attribute information by index. |
227 |
* Get Attribute information by index. |
| 227 |
* \param [in] uid The id. |
228 |
* \param [in] uid The id. |
| 228 |
* \param [in] i Index into attribute array |
229 |
* \param [in] i Index into attribute array |
| 229 |
* \returns The information associated to attribute whose index is \p i. |
230 |
* \returns The information associated to attribute whose index is \p i. |
| 230 |
*/ |
231 |
*/ |
| 231 |
struct TypeId::AttributeInformation GetAttribute(uint16_t uid, uint32_t i) const; |
232 |
struct TypeId::AttributeInformation GetAttribute(uint16_t uid, std::size_t i) const; |
| 232 |
/** |
233 |
/** |
| 233 |
* Record a new TraceSource. |
234 |
* Record a new TraceSource. |
| 234 |
* \param [in] uid The id. |
235 |
* \param [in] uid The id. |
|
|
| 242 |
* "ns3::" namespace qualifier. |
243 |
* "ns3::" namespace qualifier. |
| 243 |
* \param [in] supportLevel The support/deprecation status for this attribute. |
244 |
* \param [in] supportLevel The support/deprecation status for this attribute. |
| 244 |
* \param [in] supportMsg Upgrade hint if this attribute is no longer supported. |
245 |
* \param [in] supportMsg Upgrade hint if this attribute is no longer supported. |
|
|
246 |
* \param [in] canBeDupicate If true, this class can be registered more than once |
| 245 |
* \returns This TypeId instance. |
247 |
* \returns This TypeId instance. |
| 246 |
*/ |
248 |
*/ |
| 247 |
void AddTraceSource (uint16_t uid, |
249 |
void AddTraceSource (uint16_t uid, |
|
|
| 250 |
Ptr<const TraceSourceAccessor> accessor, |
252 |
Ptr<const TraceSourceAccessor> accessor, |
| 251 |
std::string callback, |
253 |
std::string callback, |
| 252 |
TypeId::SupportLevel supportLevel = TypeId::SUPPORTED, |
254 |
TypeId::SupportLevel supportLevel = TypeId::SUPPORTED, |
| 253 |
const std::string &supportMsg = ""); |
255 |
const std::string &supportMsg = "", |
|
|
256 |
bool canBeDuplicate = false); |
| 254 |
/** |
257 |
/** |
| 255 |
* Get the number of Trace sources. |
258 |
* Get the number of Trace sources. |
| 256 |
* \param [in] uid The id. |
259 |
* \param [in] uid The id. |
| 257 |
* \returns The number of trace sources defined in this TypeId. |
260 |
* \returns The number of trace sources defined in this TypeId. |
| 258 |
*/ |
261 |
*/ |
| 259 |
uint32_t GetTraceSourceN (uint16_t uid) const; |
262 |
std::size_t GetTraceSourceN (uint16_t uid) const; |
| 260 |
/** |
263 |
/** |
| 261 |
* Get the trace source by index. |
264 |
* Get the trace source by index. |
| 262 |
* \param [in] uid The id. |
265 |
* \param [in] uid The id. |
| 263 |
* \param [in] i Index into trace source array. |
266 |
* \param [in] i Index into trace source array. |
| 264 |
* \returns Detailed information about the requested trace source. |
267 |
* \returns Detailed information about the requested trace source. |
| 265 |
*/ |
268 |
*/ |
| 266 |
struct TypeId::TraceSourceInformation GetTraceSource(uint16_t uid, uint32_t i) const; |
269 |
struct TypeId::TraceSourceInformation GetTraceSource(uint16_t uid, std::size_t i) const; |
| 267 |
/** |
270 |
/** |
| 268 |
* Check if this TypeId should not be listed in documentation. |
271 |
* Check if this TypeId should not be listed in documentation. |
| 269 |
* \param [in] uid The id. |
272 |
* \param [in] uid The id. |
|
|
| 423 |
else |
426 |
else |
| 424 |
{ // chain old type |
427 |
{ // chain old type |
| 425 |
NS_LOG_LOGIC (IIDL << "Old TypeId '" << hinfo->name << "' getting chained."); |
428 |
NS_LOG_LOGIC (IIDL << "Old TypeId '" << hinfo->name << "' getting chained."); |
| 426 |
uint32_t oldUid = GetUid (hinfo->hash); |
429 |
uint16_t oldUid = GetUid (hinfo->hash); |
| 427 |
m_hashmap.erase (m_hashmap.find (hinfo->hash)); |
430 |
m_hashmap.erase (m_hashmap.find (hinfo->hash)); |
| 428 |
hinfo->hash = hash | HashChainFlag; |
431 |
hinfo->hash = hash | HashChainFlag; |
| 429 |
m_hashmap.insert (std::make_pair (hinfo->hash, oldUid)); |
432 |
m_hashmap.insert (std::make_pair (hinfo->hash, oldUid)); |
|
|
| 440 |
information.hasConstructor = false; |
443 |
information.hasConstructor = false; |
| 441 |
information.mustHideFromDocumentation = false; |
444 |
information.mustHideFromDocumentation = false; |
| 442 |
m_information.push_back (information); |
445 |
m_information.push_back (information); |
| 443 |
uint32_t uid = m_information.size (); |
446 |
uint16_t uid = static_cast<uint16_t> (m_information.size ()); |
| 444 |
NS_ASSERT (uid <= 0xffff); |
447 |
NS_ASSERT (uid <= 0xffff); |
| 445 |
|
448 |
|
| 446 |
// Add to both maps: |
449 |
// Add to both maps: |
|
|
| 490 |
} |
493 |
} |
| 491 |
|
494 |
|
| 492 |
void |
495 |
void |
| 493 |
IidManager::AddConstructor (uint16_t uid, Callback<ObjectBase *> callback) |
496 |
IidManager::AddConstructor (uint16_t uid, Callback<ObjectBase *> callback, bool canBeDuplicate) |
| 494 |
{ |
497 |
{ |
| 495 |
NS_LOG_FUNCTION (IID << uid << &callback); |
498 |
NS_LOG_FUNCTION (IID << uid << &callback); |
| 496 |
struct IidInformation *information = LookupInformation (uid); |
499 |
struct IidInformation *information = LookupInformation (uid); |
| 497 |
if (information->hasConstructor) |
500 |
if (!canBeDuplicate && information->hasConstructor) |
| 498 |
{ |
501 |
{ |
| 499 |
NS_FATAL_ERROR (information->name<<" already has a constructor."); |
502 |
NS_FATAL_ERROR (information->name<<" already has a constructor."); |
| 500 |
} |
503 |
} |
|
|
| 594 |
return hasC; |
597 |
return hasC; |
| 595 |
} |
598 |
} |
| 596 |
|
599 |
|
| 597 |
uint32_t |
600 |
uint16_t |
| 598 |
IidManager::GetRegisteredN (void) const |
601 |
IidManager::GetRegisteredN (void) const |
| 599 |
{ |
602 |
{ |
| 600 |
NS_LOG_FUNCTION (IID << m_information.size ()); |
603 |
NS_LOG_FUNCTION (IID << m_information.size ()); |
| 601 |
return m_information.size (); |
604 |
return static_cast<uint16_t> (m_information.size ()); |
| 602 |
} |
605 |
} |
| 603 |
uint16_t |
606 |
uint16_t |
| 604 |
IidManager::GetRegistered (uint32_t i) const |
607 |
IidManager::GetRegistered (uint16_t i) const |
| 605 |
{ |
608 |
{ |
| 606 |
NS_LOG_FUNCTION (IID << i); |
609 |
NS_LOG_FUNCTION (IID << i); |
| 607 |
return i + 1; |
610 |
return i + 1; |
|
|
| 679 |
} |
682 |
} |
| 680 |
void |
683 |
void |
| 681 |
IidManager::SetAttributeInitialValue(uint16_t uid, |
684 |
IidManager::SetAttributeInitialValue(uint16_t uid, |
| 682 |
uint32_t i, |
685 |
std::size_t i, |
| 683 |
Ptr<const AttributeValue> initialValue) |
686 |
Ptr<const AttributeValue> initialValue) |
| 684 |
{ |
687 |
{ |
| 685 |
NS_LOG_FUNCTION (IID << uid << i << initialValue); |
688 |
NS_LOG_FUNCTION (IID << uid << i << initialValue); |
|
|
| 690 |
|
693 |
|
| 691 |
|
694 |
|
| 692 |
|
695 |
|
| 693 |
uint32_t |
696 |
std::size_t |
| 694 |
IidManager::GetAttributeN (uint16_t uid) const |
697 |
IidManager::GetAttributeN (uint16_t uid) const |
| 695 |
{ |
698 |
{ |
| 696 |
NS_LOG_FUNCTION (IID << uid); |
699 |
NS_LOG_FUNCTION (IID << uid); |
| 697 |
struct IidInformation *information = LookupInformation (uid); |
700 |
struct IidInformation *information = LookupInformation (uid); |
| 698 |
uint32_t size = information->attributes.size (); |
701 |
std::size_t size = information->attributes.size (); |
| 699 |
NS_LOG_LOGIC (IIDL << size); |
702 |
NS_LOG_LOGIC (IIDL << size); |
| 700 |
return size; |
703 |
return size; |
| 701 |
} |
704 |
} |
| 702 |
struct TypeId::AttributeInformation |
705 |
struct TypeId::AttributeInformation |
| 703 |
IidManager::GetAttribute(uint16_t uid, uint32_t i) const |
706 |
IidManager::GetAttribute(uint16_t uid, std::size_t i) const |
| 704 |
{ |
707 |
{ |
| 705 |
NS_LOG_FUNCTION (IID << uid << i); |
708 |
NS_LOG_FUNCTION (IID << uid << i); |
| 706 |
struct IidInformation *information = LookupInformation (uid); |
709 |
struct IidInformation *information = LookupInformation (uid); |
|
|
| 747 |
Ptr<const TraceSourceAccessor> accessor, |
750 |
Ptr<const TraceSourceAccessor> accessor, |
| 748 |
std::string callback, |
751 |
std::string callback, |
| 749 |
TypeId::SupportLevel supportLevel, |
752 |
TypeId::SupportLevel supportLevel, |
| 750 |
const std::string &supportMsg) |
753 |
const std::string &supportMsg, |
|
|
754 |
bool canBeDuplicate) |
| 751 |
{ |
755 |
{ |
| 752 |
NS_LOG_FUNCTION (IID << uid << name << help |
756 |
NS_LOG_FUNCTION (IID << uid << name << help |
| 753 |
<< accessor << callback |
757 |
<< accessor << callback |
| 754 |
<< supportLevel << supportMsg); |
758 |
<< supportLevel << supportMsg); |
| 755 |
struct IidInformation *information = LookupInformation (uid); |
759 |
struct IidInformation *information = LookupInformation (uid); |
| 756 |
if (HasTraceSource (uid, name)) |
760 |
if (!canBeDuplicate && HasTraceSource(uid, name)) |
| 757 |
{ |
761 |
{ |
| 758 |
NS_FATAL_ERROR ("Trace source \"" << name << "\" already registered on tid=\"" << |
762 |
NS_FATAL_ERROR ("Trace source \"" << name << "\" already registered on tid=\"" << |
| 759 |
information->name << "\""); |
763 |
information->name << "\""); |
|
|
| 768 |
information->traceSources.push_back (source); |
772 |
information->traceSources.push_back (source); |
| 769 |
NS_LOG_LOGIC (IIDL << information->traceSources.size () - 1); |
773 |
NS_LOG_LOGIC (IIDL << information->traceSources.size () - 1); |
| 770 |
} |
774 |
} |
| 771 |
uint32_t |
775 |
std::size_t |
| 772 |
IidManager::GetTraceSourceN (uint16_t uid) const |
776 |
IidManager::GetTraceSourceN (uint16_t uid) const |
| 773 |
{ |
777 |
{ |
| 774 |
NS_LOG_FUNCTION (IID << uid); |
778 |
NS_LOG_FUNCTION (IID << uid); |
| 775 |
struct IidInformation *information = LookupInformation (uid); |
779 |
struct IidInformation *information = LookupInformation (uid); |
| 776 |
uint32_t size = information->traceSources.size (); |
780 |
std::size_t size = information->traceSources.size (); |
| 777 |
NS_LOG_LOGIC (IIDL << size); |
781 |
NS_LOG_LOGIC (IIDL << size); |
| 778 |
return size; |
782 |
return size; |
| 779 |
} |
783 |
} |
| 780 |
struct TypeId::TraceSourceInformation |
784 |
struct TypeId::TraceSourceInformation |
| 781 |
IidManager::GetTraceSource(uint16_t uid, uint32_t i) const |
785 |
IidManager::GetTraceSource(uint16_t uid, std::size_t i) const |
| 782 |
{ |
786 |
{ |
| 783 |
NS_LOG_FUNCTION (IID << uid << i); |
787 |
NS_LOG_FUNCTION (IID << uid << i); |
| 784 |
struct IidInformation *information = LookupInformation (uid); |
788 |
struct IidInformation *information = LookupInformation (uid); |
|
|
| 804 |
* The TypeId class |
808 |
* The TypeId class |
| 805 |
*********************************************************************/ |
809 |
*********************************************************************/ |
| 806 |
|
810 |
|
| 807 |
TypeId::TypeId (const char *name) |
811 |
TypeId::TypeId (const char *name, bool canBeDuplicate) |
| 808 |
{ |
812 |
{ |
| 809 |
NS_LOG_FUNCTION (this << name); |
813 |
NS_LOG_FUNCTION (this << name); |
| 810 |
uint16_t uid = IidManager::Get ()->AllocateUid (name); |
814 |
uint16_t uid = 0; |
| 811 |
NS_LOG_LOGIC (uid); |
815 |
if (canBeDuplicate) |
| 812 |
NS_ASSERT (uid != 0); |
816 |
{ |
|
|
817 |
uid = IidManager::Get()->GetUid(name); |
| 818 |
NS_LOG_LOGIC(uid); |
| 819 |
if (uid != 0) |
| 820 |
{ |
| 821 |
m_tid = uid; |
| 822 |
return; |
| 823 |
} |
| 824 |
} |
| 825 |
|
| 826 |
uid = IidManager::Get()->AllocateUid(name); |
| 827 |
NS_LOG_LOGIC(uid); |
| 828 |
NS_ASSERT(uid != 0); |
| 813 |
m_tid = uid; |
829 |
m_tid = uid; |
| 814 |
} |
830 |
} |
| 815 |
|
831 |
|
| 816 |
|
|
|
| 817 |
TypeId::TypeId (uint16_t tid) |
832 |
TypeId::TypeId (uint16_t tid) |
| 818 |
: m_tid (tid) |
833 |
: m_tid (tid) |
| 819 |
{ |
834 |
{ |
| 820 |
NS_LOG_FUNCTION (this << tid); |
835 |
NS_LOG_FUNCTION (this << tid); |
| 821 |
} |
836 |
} |
|
|
837 |
|
| 822 |
TypeId |
838 |
TypeId |
| 823 |
TypeId::LookupByName (std::string name) |
839 |
TypeId::LookupByName (std::string name) |
| 824 |
{ |
840 |
{ |
|
|
| 859 |
return true; |
875 |
return true; |
| 860 |
} |
876 |
} |
| 861 |
|
877 |
|
| 862 |
uint32_t |
878 |
uint16_t |
| 863 |
TypeId::GetRegisteredN (void) |
879 |
TypeId::GetRegisteredN (void) |
| 864 |
{ |
880 |
{ |
| 865 |
NS_LOG_FUNCTION_NOARGS (); |
881 |
NS_LOG_FUNCTION_NOARGS (); |
| 866 |
return IidManager::Get ()->GetRegisteredN (); |
882 |
return IidManager::Get ()->GetRegisteredN (); |
| 867 |
} |
883 |
} |
| 868 |
TypeId |
884 |
TypeId |
| 869 |
TypeId::GetRegistered (uint32_t i) |
885 |
TypeId::GetRegistered (uint16_t i) |
| 870 |
{ |
886 |
{ |
| 871 |
NS_LOG_FUNCTION (i); |
887 |
NS_LOG_FUNCTION (i); |
| 872 |
return TypeId (IidManager::Get ()->GetRegistered (i)); |
888 |
return TypeId (IidManager::Get ()->GetRegistered (i)); |
|
|
| 880 |
TypeId nextTid = *this; |
896 |
TypeId nextTid = *this; |
| 881 |
do { |
897 |
do { |
| 882 |
tid = nextTid; |
898 |
tid = nextTid; |
| 883 |
for (uint32_t i = 0; i < tid.GetAttributeN (); i++) |
899 |
for (std::size_t i = 0; i < tid.GetAttributeN (); i++) |
| 884 |
{ |
900 |
{ |
| 885 |
struct TypeId::AttributeInformation tmp = tid.GetAttribute(i); |
901 |
struct TypeId::AttributeInformation tmp = tid.GetAttribute(i); |
| 886 |
if (tmp.name == name) |
902 |
if (tmp.name == name) |
|
|
| 995 |
} |
1011 |
} |
| 996 |
|
1012 |
|
| 997 |
void |
1013 |
void |
| 998 |
TypeId::DoAddConstructor (Callback<ObjectBase *> cb) |
1014 |
TypeId::DoAddConstructor (Callback<ObjectBase *> cb, bool canBeDuplicate) |
| 999 |
{ |
1015 |
{ |
| 1000 |
NS_LOG_FUNCTION (this << &cb); |
1016 |
NS_LOG_FUNCTION (this << &cb); |
| 1001 |
IidManager::Get ()->AddConstructor (m_tid, cb); |
1017 |
IidManager::Get ()->AddConstructor (m_tid, cb, canBeDuplicate); |
| 1002 |
} |
1018 |
} |
| 1003 |
|
1019 |
|
| 1004 |
TypeId |
1020 |
TypeId |
|
|
| 1039 |
} |
1055 |
} |
| 1040 |
|
1056 |
|
| 1041 |
bool |
1057 |
bool |
| 1042 |
TypeId::SetAttributeInitialValue(uint32_t i, |
1058 |
TypeId::SetAttributeInitialValue(std::size_t i, |
| 1043 |
Ptr<const AttributeValue> initialValue) |
1059 |
Ptr<const AttributeValue> initialValue) |
| 1044 |
{ |
1060 |
{ |
| 1045 |
NS_LOG_FUNCTION (this << i << initialValue); |
1061 |
NS_LOG_FUNCTION (this << i << initialValue); |
|
|
| 1064 |
return mustHide; |
1080 |
return mustHide; |
| 1065 |
} |
1081 |
} |
| 1066 |
|
1082 |
|
| 1067 |
uint32_t |
1083 |
std::size_t |
| 1068 |
TypeId::GetAttributeN (void) const |
1084 |
TypeId::GetAttributeN (void) const |
| 1069 |
{ |
1085 |
{ |
| 1070 |
NS_LOG_FUNCTION (this); |
1086 |
NS_LOG_FUNCTION (this); |
| 1071 |
uint32_t n = IidManager::Get ()->GetAttributeN (m_tid); |
1087 |
std::size_t n = IidManager::Get ()->GetAttributeN (m_tid); |
| 1072 |
return n; |
1088 |
return n; |
| 1073 |
} |
1089 |
} |
| 1074 |
struct TypeId::AttributeInformation |
1090 |
struct TypeId::AttributeInformation |
| 1075 |
TypeId::GetAttribute(uint32_t i) const |
1091 |
TypeId::GetAttribute(std::size_t i) const |
| 1076 |
{ |
1092 |
{ |
| 1077 |
NS_LOG_FUNCTION (this << i); |
1093 |
NS_LOG_FUNCTION (this << i); |
| 1078 |
return IidManager::Get ()->GetAttribute(m_tid, i); |
1094 |
return IidManager::Get ()->GetAttribute(m_tid, i); |
| 1079 |
} |
1095 |
} |
| 1080 |
std::string |
1096 |
std::string |
| 1081 |
TypeId::GetAttributeFullName (uint32_t i) const |
1097 |
TypeId::GetAttributeFullName (std::size_t i) const |
| 1082 |
{ |
1098 |
{ |
| 1083 |
NS_LOG_FUNCTION (this << i); |
1099 |
NS_LOG_FUNCTION (this << i); |
| 1084 |
struct TypeId::AttributeInformation info = GetAttribute(i); |
1100 |
struct TypeId::AttributeInformation info = GetAttribute(i); |
| 1085 |
return GetName () + "::" + info.name; |
1101 |
return GetName () + "::" + info.name; |
| 1086 |
} |
1102 |
} |
| 1087 |
|
1103 |
|
| 1088 |
uint32_t |
1104 |
std::size_t |
| 1089 |
TypeId::GetTraceSourceN (void) const |
1105 |
TypeId::GetTraceSourceN (void) const |
| 1090 |
{ |
1106 |
{ |
| 1091 |
NS_LOG_FUNCTION (this); |
1107 |
NS_LOG_FUNCTION (this); |
| 1092 |
return IidManager::Get ()->GetTraceSourceN (m_tid); |
1108 |
return IidManager::Get ()->GetTraceSourceN (m_tid); |
| 1093 |
} |
1109 |
} |
| 1094 |
struct TypeId::TraceSourceInformation |
1110 |
struct TypeId::TraceSourceInformation |
| 1095 |
TypeId::GetTraceSource(uint32_t i) const |
1111 |
TypeId::GetTraceSource(std::size_t i) const |
| 1096 |
{ |
1112 |
{ |
| 1097 |
NS_LOG_FUNCTION (this << i); |
1113 |
NS_LOG_FUNCTION (this << i); |
| 1098 |
return IidManager::Get ()->GetTraceSource(m_tid, i); |
1114 |
return IidManager::Get ()->GetTraceSource(m_tid, i); |
|
|
| 1112 |
Ptr<const TraceSourceAccessor> accessor, |
1128 |
Ptr<const TraceSourceAccessor> accessor, |
| 1113 |
std::string callback, |
1129 |
std::string callback, |
| 1114 |
SupportLevel supportLevel, |
1130 |
SupportLevel supportLevel, |
| 1115 |
const std::string &supportMsg) |
1131 |
const std::string &supportMsg, |
|
|
1132 |
bool canBeDuplicate) |
| 1116 |
{ |
1133 |
{ |
| 1117 |
NS_LOG_FUNCTION (this << name << help |
1134 |
NS_LOG_FUNCTION (this << name << help |
| 1118 |
<< accessor << callback |
1135 |
<< accessor << callback |
| 1119 |
<< supportLevel << supportMsg); |
1136 |
<< supportLevel << supportMsg); |
| 1120 |
IidManager::Get ()->AddTraceSource (m_tid, name, help, |
1137 |
IidManager::Get ()->AddTraceSource (m_tid, name, help, |
| 1121 |
accessor, callback, |
1138 |
accessor, callback, |
| 1122 |
supportLevel, supportMsg); |
1139 |
supportLevel, supportMsg, |
|
|
1140 |
canBeDuplicate); |
| 1123 |
return *this; |
1141 |
return *this; |
| 1124 |
} |
1142 |
} |
| 1125 |
|
1143 |
|
|
|
| 1141 |
struct TypeId::TraceSourceInformation tmp; |
1159 |
struct TypeId::TraceSourceInformation tmp; |
| 1142 |
do { |
1160 |
do { |
| 1143 |
tid = nextTid; |
1161 |
tid = nextTid; |
| 1144 |
for (uint32_t i = 0; i < tid.GetTraceSourceN (); i++) |
1162 |
for (std::size_t i = 0; i < tid.GetTraceSourceN (); i++) |
| 1145 |
{ |
1163 |
{ |
| 1146 |
tmp = tid.GetTraceSource (i); |
1164 |
tmp = tid.GetTraceSource (i); |
| 1147 |
if (tmp.name == name) |
1165 |
if (tmp.name == name) |