From 0cb76eb27591db4614478afa9bb785377584ac01 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Sat, 4 Aug 2007 16:49:06 +0200 Subject: [PATCH] macros to ensure proper initialization --- src/common/header.h | 10 ++++++++++ src/common/trailer.h | 10 ++++++++++ src/internet-node/arp-header.cc | 2 ++ src/internet-node/ipv4-header.cc | 2 ++ src/internet-node/udp-header.cc | 2 ++ src/node/ethernet-header.cc | 2 ++ src/node/ethernet-trailer.cc | 2 ++ src/node/llc-snap-header.cc | 2 ++ 8 files changed, 32 insertions(+) diff --git a/src/common/header.h b/src/common/header.h index e5739a1df..f14d3a10d 100644 --- a/src/common/header.h +++ b/src/common/header.h @@ -24,6 +24,16 @@ #include "chunk.h" +#define NS_HEADER_ENSURE_REGISTERED(x) \ +namespace { \ +static class thisisaveryverylongclassname \ +{ \ +public: \ + thisisaveryverylongclassname () \ + { uint32_t uid; uid = x::GetUid ();} \ +} g_thisisanotherveryveryverylongname; \ +} + namespace ns3 { /** diff --git a/src/common/trailer.h b/src/common/trailer.h index ed6f7bc21..c07ea0b6c 100644 --- a/src/common/trailer.h +++ b/src/common/trailer.h @@ -24,6 +24,16 @@ #include "chunk.h" +#define NS_TRAILER_ENSURE_REGISTERED(x) \ +namespace { \ +static class thisisaveryverylongclassname \ +{ \ +public: \ + thisisaveryverylongclassname () \ + { uint32_t uid; uid = x::GetUid ();} \ +} g_thisisanotherveryveryverylongname; \ +} + namespace ns3 { /** diff --git a/src/internet-node/arp-header.cc b/src/internet-node/arp-header.cc index 1bdab69b7..261385fd2 100644 --- a/src/internet-node/arp-header.cc +++ b/src/internet-node/arp-header.cc @@ -23,6 +23,8 @@ #include "ns3/address-utils.h" #include "arp-header.h" +NS_HEADER_ENSURE_REGISTERED (ns3::ArpHeader); + namespace ns3 { uint32_t diff --git a/src/internet-node/ipv4-header.cc b/src/internet-node/ipv4-header.cc index e16a79db7..6b834991d 100644 --- a/src/internet-node/ipv4-header.cc +++ b/src/internet-node/ipv4-header.cc @@ -26,6 +26,8 @@ NS_DEBUG_COMPONENT_DEFINE ("Ipv4Header"); +NS_HEADER_ENSURE_REGISTERED (ns3::Ipv4Header); + namespace ns3 { bool Ipv4Header::m_calcChecksum = false; diff --git a/src/internet-node/udp-header.cc b/src/internet-node/udp-header.cc index a528f066f..201ab16a1 100644 --- a/src/internet-node/udp-header.cc +++ b/src/internet-node/udp-header.cc @@ -22,6 +22,8 @@ #include "udp-header.h" #include "ipv4-checksum.h" +NS_HEADER_ENSURE_REGISTERED (ns3::UdpHeader); + namespace ns3 { bool UdpHeader::m_calcChecksum = false; diff --git a/src/node/ethernet-header.cc b/src/node/ethernet-header.cc index 7195daff5..781c5723a 100644 --- a/src/node/ethernet-header.cc +++ b/src/node/ethernet-header.cc @@ -27,6 +27,8 @@ NS_DEBUG_COMPONENT_DEFINE ("EthernetHeader"); +NS_HEADER_ENSURE_REGISTERED (ns3::EthernetHeader); + namespace ns3 { uint32_t diff --git a/src/node/ethernet-trailer.cc b/src/node/ethernet-trailer.cc index 2cf23b4a1..d21b2c710 100644 --- a/src/node/ethernet-trailer.cc +++ b/src/node/ethernet-trailer.cc @@ -26,6 +26,8 @@ NS_DEBUG_COMPONENT_DEFINE ("EthernetTrailer"); +NS_TRAILER_ENSURE_REGISTERED (ns3::EthernetTrailer); + namespace ns3 { bool EthernetTrailer::m_calcFcs = false; diff --git a/src/node/llc-snap-header.cc b/src/node/llc-snap-header.cc index 0812fb152..30b18d6a3 100644 --- a/src/node/llc-snap-header.cc +++ b/src/node/llc-snap-header.cc @@ -23,6 +23,8 @@ #include "ns3/assert.h" #include +NS_HEADER_ENSURE_REGISTERED (ns3::LlcSnapHeader); + namespace ns3 {