[doxygen] Revise TracedCallback function signatures for const.
--- a/src/applications/model/application-packet-probe.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/applications/model/application-packet-probe.cc Tue Aug 18 16:46:10 2015 -0700
@@ -45,11 +45,11 @@
"The packet plus its socket address that serve "
"as the output for this probe",
MakeTraceSourceAccessor (&ApplicationPacketProbe::m_output),
- "ns3::Packet::PacketAddressTracedCallback")
+ "ns3::Packet::AddressTracedCallback")
.AddTraceSource ( "OutputBytes",
"The number of bytes in the packet",
MakeTraceSourceAccessor (&ApplicationPacketProbe::m_outputBytes),
- "ns3::Packet::PacketSizeTracedCallback")
+ "ns3::Packet::SizeTracedCallback")
;
return tid;
}
--- a/src/applications/model/packet-sink.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/applications/model/packet-sink.cc Tue Aug 18 16:46:10 2015 -0700
@@ -58,7 +58,7 @@
.AddTraceSource ("Rx",
"A packet has been received",
MakeTraceSourceAccessor (&PacketSink::m_rxTrace),
- "ns3::Packet::PacketAddressTracedCallback")
+ "ns3::Packet::AddressTracedCallback")
;
return tid;
}
--- a/src/click/model/ipv4-l3-click-protocol.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/click/model/ipv4-l3-click-protocol.h Tue Aug 18 16:46:10 2015 -0700
@@ -264,8 +264,11 @@
Ptr<Node> m_node;
+ /** \todo Remove; this TracedCallback is never invoked. */
TracedCallback<const Ipv4Header &, Ptr<const Packet>, uint32_t> m_sendOutgoingTrace;
+ /** \todo Remove: this TracedCallback is never invoked. */
TracedCallback<const Ipv4Header &, Ptr<const Packet>, uint32_t> m_unicastForwardTrace;
+ /** \todo This TracedCallback is invoked but not accessible. */
TracedCallback<const Ipv4Header &, Ptr<const Packet>, uint32_t> m_localDeliverTrace;
SocketList m_sockets;
--- a/src/core/model/traced-value.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/core/model/traced-value.h Tue Aug 18 16:46:10 2015 -0700
@@ -56,8 +56,10 @@
* values used by the various model components.
*
* Additional callback function signatures defined elsewhere:
- * - Time::TracedValueCallback
- * - ns3::SequenceNumber32TracedValueCallback
+ * - TracedValueCallback::Time
+ * - TracedValueCallback::SequenceNumber32
+ * - TracedValueCallback::LrWpanMacState
+ * - TracedValueCallback::LrWpanPhyEnumeration
*/
/**
@@ -68,11 +70,14 @@
namespace TracedValueCallback {
/**
+ * \name TracedValueCallback Signatures for POD.
+ * @{
+ */
+ /**
* TracedValue Callback signature for POD.
*
* \param [in] oldValue original value of the traced variable
* \param [in] newValue new value of the traced variable
- * @{
*/
typedef void (* Bool) (bool oldValue, bool newValue);
typedef void (* Int8) (int8_t oldValue, int8_t newValue);
--- a/src/core/test/attribute-test-suite.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/core/test/attribute-test-suite.cc Tue Aug 18 16:46:10 2015 -0700
@@ -283,7 +283,7 @@
TracedValue<int8_t> m_intSrc1;
TracedValue<int8_t> m_intSrc2;
- typedef void (* NumericTracedCallback) (const double, const int, const float);
+ typedef void (* NumericTracedCallback) (double, int, float);
TracedCallback<double, int, float> m_cb;
TracedValue<ValueClassTest> m_valueSrc;
Ptr<Derived> m_ptr;
--- a/src/dsr/model/dsr-options.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/dsr/model/dsr-options.cc Tue Aug 18 16:46:10 2015 -0700
@@ -84,7 +84,7 @@
.AddTraceSource ("Rx",
"Receive DSR packet.",
MakeTraceSourceAccessor (&DsrOptions::m_rxPacketTrace),
- "ns3::Packet::TracedCallback")
+ "ns3::dsr::DsrOptionSRHeader::TracedCallback")
;
return tid;
}
--- a/src/dsr/model/dsr-routing.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/dsr/model/dsr-routing.cc Tue Aug 18 16:46:10 2015 -0700
@@ -343,7 +343,7 @@
.AddTraceSource ("Tx",
"Send DSR packet.",
MakeTraceSourceAccessor (&DsrRouting::m_txPacketTrace),
- "ns3::DsrOptionSRHeader::TracedCallback")
+ "ns3::dsr::DsrOptionSRHeader::TracedCallback")
.AddTraceSource ("Drop",
"Drop DSR packet",
MakeTraceSourceAccessor (&DsrRouting::m_dropTrace),
--- a/src/fd-net-device/model/fd-net-device.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/fd-net-device/model/fd-net-device.h Tue Aug 18 16:46:10 2015 -0700
@@ -387,6 +387,8 @@
* The trace source fired when the phy layer drops a packet as it tries
* to transmit it.
*
+ * \todo Remove: this TracedCallback is never invoked.
+ *
* \see class CallBackTraceSource
*/
TracedCallback<Ptr<const Packet> > m_phyTxDropTrace;
--- a/src/internet/model/ipv4-l3-protocol.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/internet/model/ipv4-l3-protocol.h Tue Aug 18 16:46:10 2015 -0700
@@ -245,8 +245,7 @@
* \param [in] interface
*/
typedef void (* SentTracedCallback)
- (const Ipv4Header & header, const Ptr<const Packet> packet,
- const uint32_t interface);
+ (const Ipv4Header & header, Ptr<const Packet> packet, uint32_t interface);
/**
* TracedCallback signature for packet transmission or reception events.
@@ -254,10 +253,11 @@
* \param [in] packet The packet.
* \param [in] ipv4
* \param [in] interface
+ * \deprecated The non-const \c Ptr<Ipv4> argument is deprecated
+ * and will be changed to \c Ptr<const Ipv4> in a future release.
*/
typedef void (* TxRxTracedCallback)
- (const Ptr<const Packet> packet, const Ptr<const Ipv4> ipv4,
- const uint32_t interface);
+ (Ptr<const Packet> packet, Ptr<Ipv4> ipv4, uint32_t interface);
/**
* TracedCallback signature for packet drop events.
@@ -267,11 +267,13 @@
* \param [in] reason The reason the packet was dropped.
* \param [in] ipv4
* \param [in] interface
+ * \deprecated The non-const \c Ptr<Ipv4> argument is deprecated
+ * and will be changed to \c Ptr<const Ipv4> in a future release.
*/
typedef void (* DropTracedCallback)
- (const Ipv4Header & header, const Ptr<const Packet> packet,
- const DropReason reason, const Ptr<const Ipv4> ipv4,
- const uint32_t interface);
+ (const Ipv4Header & header, Ptr<const Packet> packet,
+ DropReason reason, Ptr<Ipv4> ipv4,
+ uint32_t interface);
protected:
@@ -456,11 +458,17 @@
// The following two traces pass a packet with an IP header
/// Trace of transmitted packets
+ /// \deprecated The non-const \c Ptr<Ipv4> argument is deprecated
+ /// and will be changed to \c Ptr<const Ipv4> in a future release.
TracedCallback<Ptr<const Packet>, Ptr<Ipv4>, uint32_t> m_txTrace;
/// Trace of received packets
+ /// \deprecated The non-const \c Ptr<Ipv4> argument is deprecated
+ /// and will be changed to \c Ptr<const Ipv4> in a future release.
TracedCallback<Ptr<const Packet>, Ptr<Ipv4>, uint32_t> m_rxTrace;
// <ip-header, payload, reason, ifindex> (ifindex not valid if reason is DROP_NO_ROUTE)
/// Trace of dropped packets
+ /// \deprecated The non-const \c Ptr<Ipv4> argument is deprecated
+ /// and will be changed to \c Ptr<const Ipv4> in a future release.
TracedCallback<const Ipv4Header &, Ptr<const Packet>, DropReason, Ptr<Ipv4>, uint32_t> m_dropTrace;
Ptr<Ipv4RoutingProtocol> m_routingProtocol; //!< Routing protocol associated with the stack
--- a/src/internet/model/ipv4-packet-probe.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/internet/model/ipv4-packet-probe.cc Tue Aug 18 16:46:10 2015 -0700
@@ -45,11 +45,11 @@
"The packet plus its IPv4 object and interface "
"that serve as the output for this probe",
MakeTraceSourceAccessor (&Ipv4PacketProbe::m_output),
- "ns3::Ipv4PacketProbe::TracedCallback")
+ "ns3::Ipv4L3Protocol::TxRxTracedCallback")
.AddTraceSource ( "OutputBytes",
"The number of bytes in the packet",
MakeTraceSourceAccessor (&Ipv4PacketProbe::m_outputBytes),
- "ns3::Packet::PacketSizeTracedCallback")
+ "ns3::Packet::SizeTracedCallback")
;
return tid;
}
--- a/src/internet/model/ipv4-packet-probe.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/internet/model/ipv4-packet-probe.h Tue Aug 18 16:46:10 2015 -0700
@@ -93,17 +93,6 @@
*/
virtual void ConnectByPath (std::string path);
- /**
- * TracedCallback signature for PacketProbe events.
- *
- * \param [in] packet The packet.
- * \param [in] ipv4
- * \param [in] interface
- */
- typedef void (* TracedCallback)
- (const Ptr<const Packet> packet, const Ptr<const Ipv4> ipv4,
- const uint32_t interface);
-
private:
/**
* \brief Method to connect to an underlying ns3::TraceSource with
--- a/src/internet/model/ipv6-l3-protocol.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/internet/model/ipv6-l3-protocol.h Tue Aug 18 16:46:10 2015 -0700
@@ -395,8 +395,7 @@
* \param [in] interface
*/
typedef void (* SentTracedCallback)
- (const Ipv6Header & header, const Ptr<const Packet> packet,
- const uint32_t interface);
+ (const Ipv6Header & header, Ptr<const Packet> packet, uint32_t interface);
/**
* TracedCallback signature for packet transmission or reception events.
@@ -404,10 +403,11 @@
* \param [in] packet The packet.
* \param [in] ipv6
* \param [in] interface
+ * \deprecated The non-const \c Ptr<Ipv6> argument is deprecated
+ * and will be changed to \c Ptr<const Ipv6> in a future release.
*/
typedef void (* TxRxTracedCallback)
- (const Ptr<const Packet> packet, const Ptr<const Ipv6> ipv6,
- const uint32_t interface);
+ (Ptr<const Packet> packet, Ptr<Ipv6> ipv6, uint32_t interface);
/**
* TracedCallback signature for packet drop events.
@@ -417,11 +417,13 @@
* \param [in] reason The reason the packet was dropped.
* \param [in] ipv6
* \param [in] interface
+ * \deprecated The non-const \c Ptr<Ipv6> argument is deprecated
+ * and will be changed to \c Ptr<const Ipv6> in a future release.
*/
typedef void (* DropTracedCallback)
- (const Ipv6Header & header, const Ptr<const Packet> packet,
- const DropReason reason, const Ptr<const Ipv6> ipv6,
- const uint32_t interface);
+ (const Ipv6Header & header, Ptr<const Packet> packet,
+ DropReason reason, Ptr<Ipv6> ipv6,
+ uint32_t interface);
protected:
/**
@@ -468,16 +470,22 @@
/**
* \brief Callback to trace TX (transmission) packets.
+ * \deprecated The non-const \c Ptr<Ipv6> argument is deprecated
+ * and will be changed to \c Ptr<const Ipv6> in a future release.
*/
TracedCallback<Ptr<const Packet>, Ptr<Ipv6>, uint32_t> m_txTrace;
/**
* \brief Callback to trace RX (reception) packets.
+ * \deprecated The non-const \c Ptr<Ipv6> argument is deprecated
+ * and will be changed to \c Ptr<const Ipv6> in a future release.
*/
TracedCallback<Ptr<const Packet>, Ptr<Ipv6>, uint32_t> m_rxTrace;
/**
* \brief Callback to trace drop packets.
+ * \deprecated The non-const \c Ptr<Ipv6> argument is deprecated
+ * and will be changed to \c Ptr<const Ipv6> in a future release.
*/
TracedCallback<const Ipv6Header &, Ptr<const Packet>, DropReason, Ptr<Ipv6>, uint32_t> m_dropTrace;
--- a/src/internet/model/ipv6-packet-probe.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/internet/model/ipv6-packet-probe.cc Tue Aug 18 16:46:10 2015 -0700
@@ -46,11 +46,11 @@
"The packet plus its IPv6 object and interface "
"that serve as the output for this probe",
MakeTraceSourceAccessor (&Ipv6PacketProbe::m_output),
- "ns3::Ipv6PacketProbe::TracedCallback")
+ "ns3::Ipv6L3Protocol::TxRxTracedCallback")
.AddTraceSource ( "OutputBytes",
"The number of bytes in the packet",
MakeTraceSourceAccessor (&Ipv6PacketProbe::m_outputBytes),
- "ns3::Packet::PacketSizeTracedCallback")
+ "ns3::Packet::SizeTracedCallback")
;
return tid;
}
--- a/src/internet/model/ipv6-packet-probe.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/internet/model/ipv6-packet-probe.h Tue Aug 18 16:46:10 2015 -0700
@@ -95,17 +95,6 @@
*/
virtual void ConnectByPath (std::string path);
- /**
- * TracedCallback signature for PacketProbe events.
- *
- * \param [in] packet The packet.
- * \param [in] ipv6
- * \param [in] interface
- */
- typedef void (* TracedCallback)
- (const Ptr<const Packet> packet, const Ptr<const Ipv6> ipv6,
- const uint32_t interface);
-
private:
/**
* \brief Method to connect to an underlying ns3::TraceSource with
--- a/src/lr-wpan/model/lr-wpan-mac.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lr-wpan/model/lr-wpan-mac.cc Tue Aug 18 16:46:10 2015 -0700
@@ -111,6 +111,10 @@
"packet sniffer attached to the device",
MakeTraceSourceAccessor (&LrWpanMac::m_promiscSnifferTrace),
"ns3::Packet::TracedCallback")
+ .AddTraceSource ("MacStateValue",
+ "The state of LrWpan Mac",
+ MakeTraceSourceAccessor (&LrWpanMac::m_lrWpanMacState),
+ "ns3::TracedValueCallback::LrWpanMacState")
.AddTraceSource ("MacState",
"The state of LrWpan Mac",
MakeTraceSourceAccessor (&LrWpanMac::m_macStateLogger),
--- a/src/lr-wpan/model/lr-wpan-mac.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lr-wpan/model/lr-wpan-mac.h Tue Aug 18 16:46:10 2015 -0700
@@ -26,6 +26,7 @@
#include <ns3/object.h>
#include <ns3/traced-callback.h>
+#include <ns3/traced-value.h>
#include <ns3/mac16-address.h>
#include <ns3/mac64-address.h>
#include <ns3/sequence-number.h>
@@ -74,6 +75,20 @@
SET_PHY_TX_ON //!< SET_PHY_TX_ON
} LrWpanMacState;
+namespace TracedValueCallback {
+
+/**
+ * \ingroup lr-wpan
+ * TracedValue callback signature for LrWpanMacState.
+ *
+ * \param [in] oldValue original value of the traced variable
+ * \param [in] newValue new value of the traced variable
+ */
+ typedef void (* LrWpanMacState)(LrWpanMacState oldValue,
+ LrWpanMacState newValue);
+
+} // namespace TracedValueCallback
+
/**
* \ingroup lr-wpan
*
@@ -526,17 +541,19 @@
* \param [in] backoffs The number of CSMA backoffs.
*/
typedef void (* SentTracedCallback)
- (const Ptr<const Packet> packet, const uint8_t retries,
- const uint8_t backoffs);
+ (Ptr<const Packet> packet, uint8_t retries, uint8_t backoffs);
/**
* TracedCallback signature for LrWpanMacState change events.
*
* \param [in] oldValue The original state value.
* \param [in] newValue The new state value.
+ * \deprecated The LrWpanMacState is now accessible as the
+ * TracedValue \c MacStateValue. The \c MacState TracedCallback will
+ * be removed in a future release.
*/
typedef void (* StateTracedCallback)
- (const LrWpanMacState oldState, const LrWpanMacState newState);
+ (LrWpanMacState oldState, LrWpanMacState newState);
protected:
// Inherited from Object.
@@ -717,7 +734,9 @@
* A trace source that fires when the LrWpanMac changes states.
* Parameters are the old mac state and the new mac state.
*
- * \todo This should be a TracedValue
+ * \deprecated This TracedCallback is deprecated and will be
+ * removed in a future release, Instead, use the \c MacStateValue
+ * TracedValue.
*/
TracedCallback<LrWpanMacState, LrWpanMacState> m_macStateLogger;
@@ -747,7 +766,7 @@
/**
* The current state of the MAC layer.
*/
- LrWpanMacState m_lrWpanMacState;
+ TracedValue<LrWpanMacState> m_lrWpanMacState;
/**
* The current association status of the MAC layer.
--- a/src/lr-wpan/model/lr-wpan-phy.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lr-wpan/model/lr-wpan-phy.cc Tue Aug 18 16:46:10 2015 -0700
@@ -77,6 +77,10 @@
.SetParent<SpectrumPhy> ()
.SetGroupName ("LrWpan")
.AddConstructor<LrWpanPhy> ()
+ .AddTraceSource ("TrxStateValue",
+ "The state of the transceiver",
+ MakeTraceSourceAccessor (&LrWpanPhy::m_trxState),
+ "ns3::TracedValueCallback::LrWpanPhyEnumeration")
.AddTraceSource ("TrxState",
"The state of the transceiver",
MakeTraceSourceAccessor (&LrWpanPhy::m_trxStateLogger),
@@ -106,7 +110,7 @@
"completely received from the channel medium "
"by the device",
MakeTraceSourceAccessor (&LrWpanPhy::m_phyRxEndTrace),
- "ns3::LrWpanPhy::RxEndTracedCallback")
+ "ns3::Packet::SinrTracedCallback")
.AddTraceSource ("PhyRxDrop",
"Trace source indicating a packet has been "
"dropped by the device during reception",
--- a/src/lr-wpan/model/lr-wpan-phy.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lr-wpan/model/lr-wpan-phy.h Tue Aug 18 16:46:10 2015 -0700
@@ -26,6 +26,7 @@
#include <ns3/spectrum-phy.h>
#include <ns3/traced-callback.h>
+#include <ns3/traced-value.h>
#include <ns3/event-id.h>
namespace ns3 {
@@ -118,6 +119,19 @@
IEEE_802_15_4_PHY_UNSPECIFIED = 0xc // all cases not covered by ieee802.15.4
} LrWpanPhyEnumeration;
+namespace TracedValueCallback
+{
+/**
+ * \ingroup lr-wpan
+ * TracedValue callback signature for LrWpanPhyEnumeration.
+ *
+ * \param [in] oldValue original value of the traced variable
+ * \param [in] newValue new value of the traced variable
+ */
+ typedef void (* LrWpanPhyEnumeration)(LrWpanPhyEnumeration oldValue,
+ LrWpanPhyEnumeration newValue);
+} // namespace TracedValueCallback
+
/**
* \ingroup lr-wpan
*
@@ -468,20 +482,13 @@
* \param [in] time The time of the state change.
* \param [in] oldState The old state.
* \param [in] newState The new state.
+ * \deprecated The LrWpanPhyEnumeration state is now accessible as the
+ * TracedValue \c TrxStateValue. The \c TrxState TracedCallback will
+ * be removed in a future release.
*/
typedef void (* StateTracedCallback)
- (const Time time,
- const LrWpanPhyEnumeration oldState, const LrWpanPhyEnumeration newState);
+ (Time time, LrWpanPhyEnumeration oldState, LrWpanPhyEnumeration newState);
- /**
- * TracedCallback signature for end receive events.
- *
- * \param [in] packet The packet.
- * \param [in] sinr The received SINR.
- */
- typedef void (* RxEndTracedCallback)
- (const Ptr<const Packet> packet, const double sinr);
-
protected:
/**
* The data and symbol rates for the different PHY options.
@@ -659,6 +666,9 @@
* The trace source fired when the phy layer changes the transceiver state.
*
* \see class CallBackTraceSource
+ * \deprecated The LrWpanPhyEnumeration state is now accessible as the
+ * TracedValue \c TrxStateValue. This TracedCallback will
+ * be removed in a future release.
*/
TracedCallback<Time, LrWpanPhyEnumeration, LrWpanPhyEnumeration> m_trxStateLogger;
@@ -706,7 +716,7 @@
/**
* The current transceiver state.
*/
- LrWpanPhyEnumeration m_trxState;
+ TracedValue<LrWpanPhyEnumeration> m_trxState;
/**
* The next pending state to applied after the current action of the PHY is
--- a/src/lte/model/lte-common.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-common.h Tue Aug 18 16:46:10 2015 -0700
@@ -132,6 +132,7 @@
* TracedCallback signature.
*
* \param [in] params Value of the PhyTransmissionionStatParameters.
+ * \todo The argument should be passed by const reference, since it's large.
*/
typedef void (* TracedCallback)(const PhyTransmissionStatParameters params);
@@ -156,6 +157,7 @@
* TracedCallback signature.
*
* \param [in] params Value of the PhyReceptionStatParameters.
+ * \todo The argument should be passed by const reference, since it's large.
*/
typedef void (* TracedCallback)(const PhyReceptionStatParameters params);
--- a/src/lte/model/lte-enb-mac.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-enb-mac.h Tue Aug 18 16:46:10 2015 -0700
@@ -132,9 +132,9 @@
* \param [in] tbs1Size
*/
typedef void (* DlSchedulingTracedCallback)
- (const uint32_t frame, const uint32_t subframe, const uint16_t rnti,
- const uint8_t mcs0, const uint16_t tbs0Size,
- const uint8_t mcs1, const uint16_t tbs1Size);
+ (uint32_t frame, uint32_t subframe, uint16_t rnti,
+ uint8_t mcs0, uint16_t tbs0Size,
+ uint8_t mcs1, uint16_t tbs1Size);
/**
* TracedCallback signature for UL scheduling events.
@@ -146,8 +146,8 @@
* \param [in] tbsSize
*/
typedef void (* UlSchedulingTracedCallback)
- (const uint32_t frame, const uint32_t subframe, const uint16_t rnti,
- const uint8_t mcs, const uint16_t tbsSize);
+ (uint32_t frame, uint32_t subframe, uint16_t rnti,
+ uint8_t mcs, uint16_t tbsSize);
private:
@@ -252,12 +252,14 @@
* Frame number, Subframe number, RNTI, MCS of TB1, size of TB1,
* MCS of TB2 (0 if not present), size of TB2 (0 if not present)
*/
- TracedCallback<uint32_t, uint32_t, uint16_t, uint8_t, uint16_t, uint8_t, uint16_t> m_dlScheduling;
+ TracedCallback<uint32_t, uint32_t, uint16_t,
+ uint8_t, uint16_t, uint8_t, uint16_t> m_dlScheduling;
/**
* Trace information regarding UL scheduling
* Frame number, Subframe number, RNTI, MCS of TB, size of TB
*/
- TracedCallback<uint32_t, uint32_t, uint16_t, uint8_t, uint16_t> m_ulScheduling;
+ TracedCallback<uint32_t, uint32_t, uint16_t,
+ uint8_t, uint16_t> m_ulScheduling;
uint8_t m_macChTtiDelay; // delay of MAC, PHY and channel in terms of TTIs
--- a/src/lte/model/lte-enb-phy.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-enb-phy.h Tue Aug 18 16:46:10 2015 -0700
@@ -291,17 +291,18 @@
* \param [in] sinrLinear
*/
typedef void (* ReportUeSinrTracedCallback)
- (const uint16_t cellId, const uint16_t rnti, const double sinrLinear);
+ (uint16_t cellId, uint16_t rnti, double sinrLinear);
/**
* TracedCallback signature for the linear average of SRS SINRs.
*
* \param [in] cellId
* \param [in] spectrumValue
+ * \deprecated The non-const \c Ptr<SpectrumValue> argument is deprecated
+ * and will be changed to \c Ptr<const SpectrumValue> in a future release.
*/
typedef void (* ReportInterferenceTracedCallback)
- (const uint16_t cellId, const Ptr<const SpectrumValue> spectrumValue);
-
+ (uint16_t cellId, Ptr<SpectrumValue> spectrumValue);
private:
@@ -416,6 +417,8 @@
* The `ReportInterference` trace source. Reporting the interference per PHY
* RB (TS 36.214 section 5.2.2, measured on DATA). Exporting cell ID and
* interference linear power per RB basis.
+ * \deprecated The non-const \c Ptr<SpectrumValue> argument is deprecated
+ * and will be changed to \c Ptr<const SpectrumValue> in a future release.
*/
TracedCallback<uint16_t, Ptr<SpectrumValue> > m_reportInterferenceTrace;
/**
--- a/src/lte/model/lte-enb-rrc.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-enb-rrc.h Tue Aug 18 16:46:10 2015 -0700
@@ -314,8 +314,8 @@
* \param [in] newState
*/
typedef void (* StateTracedCallback)
- (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti,
- const State oldState, const State newState);
+ (uint64_t imsi, uint16_t cellId, uint16_t rnti,
+ State oldState, State newState);
private:
@@ -827,7 +827,7 @@
* \param [in] rnti
*/
typedef void (* NewUeContextTracedCallback)
- (const uint16_t cellId, const uint16_t rnti);
+ (uint16_t cellId, uint16_t rnti);
/**
* TracedCallback signature for connection and handover end events.
@@ -837,7 +837,7 @@
* \param [in] rnti
*/
typedef void (* ConnectionHandoverTracedCallback)
- (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti);
+ (uint64_t imsi, uint16_t cellId, uint16_t rnti);
/**
* TracedCallback signature for handover start events.
@@ -848,8 +848,7 @@
* \param [in] targetCid
*/
typedef void (* HandoverStartTracedCallback)
- (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti,
- const uint16_t targetCid);
+ (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t targetCid);
/**
* TracedCallback signature for receive measurement report events.
@@ -858,10 +857,12 @@
* \param [in] cellId
* \param [in] rnti
* \param [in] report
+ * \todo The \c LteRrcSap::MeasurementReport argument should be
+ * changed to a const reference since the argument is large.
*/
typedef void (* ReceiveReportTracedCallback)
- (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti,
- const LteRrcSap::MeasurementReport report);
+ (uint64_t imsi, uint16_t cellId, uint16_t rnti,
+ LteRrcSap::MeasurementReport report);
private:
--- a/src/lte/model/lte-pdcp.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-pdcp.h Tue Aug 18 16:46:10 2015 -0700
@@ -120,7 +120,7 @@
* \param [in] size Packet size.
*/
typedef void (* PduTxTracedCallback)
- (const uint16_t rnti, const uint8_t lcid, const uint32_t size);
+ (uint16_t rnti, uint8_t lcid, uint32_t size);
/**
* TracedCallback signature for PDU receive event.
--- a/src/lte/model/lte-rlc.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-rlc.h Tue Aug 18 16:46:10 2015 -0700
@@ -109,7 +109,7 @@
* \param [in] bytes The number of bytes to transmit
*/
typedef void (* NotifyTxTracedCallback)
- (const uint16_t rnti, const uint8_t lcid, const uint32_t bytes);
+ (uint16_t rnti, uint8_t lcid, uint32_t bytes);
/**
* TracedCallback signature for
@@ -121,8 +121,7 @@
* \param [in] delay Delay since sender timestamp, in ns.
*/
typedef void (* ReceiveTracedCallback)
- (const uint16_t rnti, const uint8_t lcid,
- const uint32_t bytes, const uint64_t delay);
+ (uint16_t rnti, uint8_t lcid, uint32_t bytes, uint64_t delay);
/// \todo MRE What is the sense to duplicate all the interfaces here???
// NB to avoid the use of multiple inheritance
--- a/src/lte/model/lte-spectrum-phy.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-spectrum-phy.h Tue Aug 18 16:46:10 2015 -0700
@@ -453,8 +453,8 @@
TracedCallback<Ptr<const PacketBurst> > m_phyTxStartTrace;
TracedCallback<Ptr<const PacketBurst> > m_phyTxEndTrace;
TracedCallback<Ptr<const PacketBurst> > m_phyRxStartTrace;
- TracedCallback<Ptr<const Packet> > m_phyRxEndOkTrace;
- TracedCallback<Ptr<const Packet> > m_phyRxEndErrorTrace;
+ TracedCallback<Ptr<const Packet> > m_phyRxEndOkTrace;
+ TracedCallback<Ptr<const Packet> > m_phyRxEndErrorTrace;
LtePhyRxDataEndErrorCallback m_ltePhyRxDataEndErrorCallback;
LtePhyRxDataEndOkCallback m_ltePhyRxDataEndOkCallback;
--- a/src/lte/model/lte-ue-phy.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-ue-phy.h Tue Aug 18 16:46:10 2015 -0700
@@ -244,8 +244,7 @@
* \param [in] newState
*/
typedef void (* StateTracedCallback)
- (const uint16_t cellId, const uint16_t rnti,
- const State oldState, const State newState);
+ (uint16_t cellId, uint16_t rnti, State oldState, State newState);
/**
* TracedCallback signature for cell RSRP and SINR report.
@@ -256,8 +255,7 @@
* \param [in] sinr
*/
typedef void (* RsrpSinrTracedCallback)
- (const uint16_t cellId, const uint16_t rnti,
- const double rsrp, const double sinr);
+ (uint16_t cellId, uint16_t rnti, double rsrp, double sinr);
/**
* TracedCallback signature for cell RSRP and RSRQ.
@@ -269,8 +267,8 @@
* \param [in] isServingCell
*/
typedef void (* RsrpRsrqTracedCallback)
- (const uint16_t rnti, const uint16_t cellId,
- const double rsrp, const double rsrq, const bool isServingCell);
+ (uint16_t rnti, uint16_t cellId, double rsrp, double rsrq,
+ bool isServingCell);
private:
--- a/src/lte/model/lte-ue-power-control.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-ue-power-control.h Tue Aug 18 16:46:10 2015 -0700
@@ -95,7 +95,7 @@
* \param [in] power The current TX power.
*/
typedef void (* TxPowerTracedCallback)
- (const uint16_t cellId, const uint16_t rnti, const double power);
+ (uint16_t cellId, uint16_t rnti, double power);
private:
void SetSubChannelMask (std::vector <int> mask);
--- a/src/lte/model/lte-ue-rrc.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/model/lte-ue-rrc.h Tue Aug 18 16:46:10 2015 -0700
@@ -254,7 +254,7 @@
* \param [in] cellId
*/
typedef void (* CellSelectionTracedCallback)
- (const uint64_t imsi, const uint16_t cellId);
+ (uint64_t imsi, uint16_t cellId);
/**
* TracedCallback signature for imsi, cellId and rnti events.
@@ -264,7 +264,7 @@
* \param [in] rnti
*/
typedef void (* ImsiCidRntiTracedCallback)
- (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti);
+ (uint64_t imsi, uint16_t cellId, uint16_t rnti);
/**
* TracedCallback signature for MIBRecieved, Sib1Received and
@@ -276,8 +276,7 @@
* \param [in] otherCid
*/
typedef void (* MibSibHandoverTracedCallback)
- (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti,
- const uint16_t otherCid);
+ (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid);
/**
* TracedCallback signature for state transition events.
@@ -289,8 +288,8 @@
* \param [in] newState
*/
typedef void (* StateTracedCallback)
- (const uint64_t imsi, const uint16_t cellId, const uint16_t rnti,
- const State oldState, const State newState);
+ (uint64_t imsi, uint16_t cellId, uint16_t rnti,
+ State oldState, State newState);
private:
--- a/src/lte/test/lte-ffr-simple.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/lte/test/lte-ffr-simple.h Tue Aug 18 16:46:10 2015 -0700
@@ -68,6 +68,14 @@
friend class MemberLteFfrSapProvider<LteFfrSimple>;
friend class MemberLteFfrRrcSapProvider<LteFfrSimple>;
+ /**
+ * TracedCallback signature for change of PdschConfigDedicated.
+ *
+ * \param [in] rnti
+ * \param [in] pdschPa PdschConfiDedicated.pa
+ */
+ typedef void (* PdschTracedCallback)(uint16_t rnti, uint8_t pdschPa);
+
protected:
// inherited from Object
virtual void DoInitialize ();
@@ -120,8 +128,6 @@
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated;
- typedef void (* PdschTracedCallback)(uint16_t, uint8_t);
-
TracedCallback<uint16_t, uint8_t> m_changePdschConfigDedicatedTrace;
--- a/src/mesh/model/dot11s/peer-management-protocol.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/mesh/model/dot11s/peer-management-protocol.h Tue Aug 18 16:46:10 2015 -0700
@@ -166,11 +166,11 @@
/**
* TracedCallback signature for link open/close events.
*
- * \param [in] myIface MAC address of my interface.
- * \param [in] peerIface MAC address of peer interface.
+ * \param [in] src MAC address of source interface.
+ * \param [in] dst MAC address of destination interface.
*/
typedef void (* LinkOpenCloseTracedCallback)
- (const Mac48Address myIface, const Mac48Address peerIface);
+ (Mac48Address src, const Mac48Address dst);
private:
--- a/src/mobility/model/mobility-model.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/mobility/model/mobility-model.cc Tue Aug 18 16:46:10 2015 -0700
@@ -47,7 +47,7 @@
.AddTraceSource ("CourseChange",
"The value of the position and/or velocity vector changed",
MakeTraceSourceAccessor (&MobilityModel::m_courseChangeTrace),
- "ns3::MobilityModel::CourseChangeTracedCallback")
+ "ns3::MobilityModel::TracedCallback")
;
return tid;
}
--- a/src/mobility/model/mobility-model.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/mobility/model/mobility-model.h Tue Aug 18 16:46:10 2015 -0700
@@ -83,22 +83,8 @@
* TracedCallback signature.
*
* \param [in] model Value of the MobilityModel.
- * @{
*/
- typedef void (* TracedCallback)(const Ptr<const MobilityModel> model);
-
- /**
- * TracedCallback signature for course change notifications.
- *
- * If the callback is connected using Config::ConnectWithoutContext()
- * omit the \c context argument from the signature.
- *
- * \param [in] context The context string, supplied by the Trace source.
- * \param [in] model The MobilityModel which is changing course.
- */
- typedef void (* CourseChangeTracedCallback)
- (const std::string context, const Ptr<const MobilityModel> model);
-
+ typedef void (* TracedCallback)(Ptr<const MobilityModel> model);
protected:
/**
--- a/src/network/model/net-device.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/network/model/net-device.h Tue Aug 18 16:46:10 2015 -0700
@@ -131,6 +131,10 @@
*/
virtual bool IsLinkUp (void) const = 0;
/**
+ * TracedCallback signature for link changed event.
+ */
+ typedef void (* LinkChangeTracedCallback) (void);
+ /**
* \param callback the callback to invoke
*
* Add a callback invoked whenever the link
@@ -188,12 +192,12 @@
virtual Address GetMulticast (Ipv4Address multicastGroup) const = 0;
/**
-* \brief Get the MAC multicast address corresponding
-* to the IPv6 address provided.
-* \param addr IPv6 address
-* \return the MAC multicast address
-* \warning Calling this method is invalid if IsMulticast returns not true.
-*/
+ * \brief Get the MAC multicast address corresponding
+ * to the IPv6 address provided.
+ * \param addr IPv6 address
+ * \return the MAC multicast address
+ * \warning Calling this method is invalid if IsMulticast returns not true.
+ */
virtual Address GetMulticast (Ipv6Address addr) const = 0;
/**
--- a/src/network/model/packet.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/network/model/packet.h Tue Aug 18 16:46:10 2015 -0700
@@ -29,6 +29,7 @@
#include "byte-tag-list.h"
#include "packet-tag-list.h"
#include "nix-vector.h"
+#include "ns3/mac48-address.h"
#include "ns3/callback.h"
#include "ns3/assert.h"
#include "ns3/ptr.h"
@@ -660,16 +661,25 @@
*
* \param [in] packet The packet.
*/
- typedef void (* TracedCallback) (const Ptr<const Packet> packet);
+ typedef void (* TracedCallback) (Ptr<const Packet> packet);
/**
- * TracedCallback signature for packet and address.
+ * TracedCallback signature for packet and Address.
*
* \param [in] packet The packet.
* \param [in] address The address.
*/
- typedef void (* PacketAddressTracedCallback)
- (const Ptr<const Packet> packet, const Address &address);
+ typedef void (* AddressTracedCallback)
+ (Ptr<const Packet> packet, const Address &address);
+
+ /**
+ * TracedCallback signature for packet and Mac48Address.
+ *
+ * \param [in] packet The packet.
+ * \param [in] mac The Mac48Address.
+ */
+ typedef void (* Mac48AddressTracedCallback)
+ (Ptr<const Packet> packet, Mac48Address mac);
/**
* TracedCallback signature for changes in packet size.
@@ -677,9 +687,19 @@
* \param [in] oldSize The previous packet's size.
* \param [in] newSize The actual packet's size.
*/
- typedef void (* PacketSizeTracedCallback)
- (const uint32_t oldSize, const uint32_t newSize);
+ typedef void (* SizeTracedCallback)
+ (uint32_t oldSize, uint32_t newSize);
+ /**
+ * TracedCallback signature for packet and SINR.
+ *
+ * \param [in] packet The packet.
+ * \param [in] sinr The received SINR.
+ */
+ typedef void (* SinrTracedCallback)
+ (Ptr<const Packet> packet, double sinr);
+
+
private:
/**
* \brief Constructor
--- a/src/network/utils/mac48-address.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/network/utils/mac48-address.h Tue Aug 18 16:46:10 2015 -0700
@@ -134,7 +134,7 @@
*
* \param [in] value Current value of the Mac48Address
*/
- typedef void (* TracedCallback)(const Mac48Address value);
+ typedef void (* TracedCallback)(Mac48Address value);
private:
/**
--- a/src/network/utils/packet-burst.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/network/utils/packet-burst.h Tue Aug 18 16:46:10 2015 -0700
@@ -80,7 +80,7 @@
*
* \param [in] burst The PacketBurst
*/
- typedef void (* TracedCallback)(const Ptr<const PacketBurst> burst);
+ typedef void (* TracedCallback)(Ptr<const PacketBurst> burst);
private:
--- a/src/network/utils/packet-probe.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/network/utils/packet-probe.cc Tue Aug 18 16:46:10 2015 -0700
@@ -48,7 +48,7 @@
.AddTraceSource ( "OutputBytes",
"The number of bytes in the packet",
MakeTraceSourceAccessor (&PacketProbe::m_outputBytes),
- "ns3::Packet::PacketSizeTracedCallback")
+ "ns3::Packet::SizeTracedCallback")
;
return tid;
}
--- a/src/network/utils/packet-socket-client.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/network/utils/packet-socket-client.cc Tue Aug 18 16:46:10 2015 -0700
@@ -62,7 +62,7 @@
MakeUintegerChecker<uint32_t> ())
.AddTraceSource ("Tx", "A packet has been sent",
MakeTraceSourceAccessor (&PacketSocketClient::m_txTrace),
- "ns3::Packet::PacketAddressTracedCallback")
+ "ns3::Packet::AddressTracedCallback")
;
return tid;
}
--- a/src/network/utils/packet-socket-server.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/network/utils/packet-socket-server.cc Tue Aug 18 16:46:10 2015 -0700
@@ -48,7 +48,7 @@
.AddConstructor<PacketSocketServer> ()
.AddTraceSource ("Rx", "A packet has been received",
MakeTraceSourceAccessor (&PacketSocketServer::m_rxTrace),
- "ns3::Packet::PacketAddressTracedCallback")
+ "ns3::Packet::AddressTracedCallback")
;
return tid;
}
--- a/src/olsr/model/olsr-routing-protocol.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/olsr/model/olsr-routing-protocol.h Tue Aug 18 16:46:10 2015 -0700
@@ -126,7 +126,7 @@
*
* \param [in] size Final routing table size.
*/
- typedef void (* TableChangeTracedCallback) (const uint32_t size);
+ typedef void (* TableChangeTracedCallback) (uint32_t size);
private:
std::set<uint32_t> m_interfaceExclusions;
--- a/src/point-to-point/model/point-to-point-channel.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/point-to-point/model/point-to-point-channel.h Tue Aug 18 16:46:10 2015 -0700
@@ -137,11 +137,13 @@
* \param [in] rxDevice the Receiving NetDevice.
* \param [in] duration The amount of time to transmit the packet.
* \param [in] lastBitTime Last bit receive time (relative to now)
+ * \deprecated The non-const \c Ptr<NetDevice> argument is deprecated
+ * and will be changed to \c Ptr<const NetDevice> in a future release.
*/
typedef void (* TxRxAnimationCallback)
- (const Ptr<const Packet> packet,
- const Ptr<const NetDevice> txDevice, const Ptr<const NetDevice> rxDevice,
- const Time duration, const Time lastBitTime);
+ (Ptr<const Packet> packet,
+ Ptr<NetDevice> txDevice, Ptr<NetDevice> rxDevice,
+ Time duration, Time lastBitTime);
private:
/** Each point to point link has exactly two net devices. */
@@ -158,12 +160,14 @@
* packet receipt time.
*
* \see class CallBackTraceSource
+ * \deprecated The non-const \c Ptr<NetDevice> argument is deprecated
+ * and will be changed to \c Ptr<const NetDevice> in a future release.
*/
- TracedCallback<Ptr<const Packet>, // Packet being transmitted
- Ptr<NetDevice>, // Transmitting NetDevice
- Ptr<NetDevice>, // Receiving NetDevice
- Time, // Amount of time to transmit the pkt
- Time // Last bit receive time (relative to now)
+ TracedCallback<Ptr<const Packet>, // Packet being transmitted
+ Ptr<NetDevice>, // Transmitting NetDevice
+ Ptr<NetDevice>, // Receiving NetDevice
+ Time, // Amount of time to transmit the pkt
+ Time // Last bit receive time (relative to now)
> m_txrxPointToPoint;
/** \brief Wire states
--- a/src/point-to-point/model/point-to-point-net-device.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/point-to-point/model/point-to-point-net-device.h Tue Aug 18 16:46:10 2015 -0700
@@ -164,11 +164,6 @@
virtual bool IsLinkUp (void) const;
- /**
- * TracedCallback signature for link changed event.
- */
- typedef void (* LinkChangeTracedCallback) (void);
-
virtual void AddLinkChangeCallback (Callback<void> callback);
virtual bool IsBroadcast (void) const;
--- a/src/sixlowpan/model/sixlowpan-net-device.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/sixlowpan/model/sixlowpan-net-device.h Tue Aug 18 16:46:10 2015 -0700
@@ -151,11 +151,13 @@
* \param [in] packet The packet.
* \param [in] sixNetDevice The SixLowPanNetDevice.
* \param [in] ifindex The ifindex of the device.
+ * \deprecated The non-const \c Ptr<SixLowPanNetDevice> argument
+ * is deprecated and will be changed to \c Ptr<const SixLowPanNetDevice>
+ * in a future release.
*/
typedef void (* RxTxTracedCallback)
- (const Ptr<const Packet> packet,
- const Ptr<const SixLowPanNetDevice> sixNetDevice,
- const uint32_t ifindex);
+ (Ptr<const Packet> packet, Ptr<SixLowPanNetDevice> sixNetDevice,
+ uint32_t ifindex);
/**
* TracedCallback signature for
@@ -164,11 +166,14 @@
* \param [in] packet The packet.
* \param [in] sixNetDevice The SixLowPanNetDevice.
* \param [in] ifindex The ifindex of the device.
+ * \deprecated The non-const \c Ptr<SixLowPanNetDevice> argument
+ * is deprecated and will be changed to \c Ptr<const SixLowPanNetDevice>
+ * in a future release.
*/
typedef void (* DropTracedCallback)
- (const DropReason reason, const Ptr<const Packet> packet,
- const Ptr<const SixLowPanNetDevice> sixNetDevice,
- const uint32_t ifindex);
+ (DropReason reason, Ptr<const Packet> packet,
+ Ptr<SixLowPanNetDevice> sixNetDevice,
+ uint32_t ifindex);
protected:
virtual void DoDispose (void);
@@ -234,6 +239,9 @@
* \li Packet received (including 6LoWPAN header)
* \li Ptr to SixLowPanNetDevice
* \li interface index
+ * \deprecated The non-const \c Ptr<SixLowPanNetDevice> argument
+ * is deprecated and will be changed to \c Ptr<const SixLowPanNetDevice>
+ * in a future release.
*/
TracedCallback<Ptr<const Packet>, Ptr<SixLowPanNetDevice>, uint32_t> m_txTrace;
@@ -244,6 +252,9 @@
* \li Packet received (including 6LoWPAN header)
* \li Ptr to SixLowPanNetDevice
* \li interface index
+ * \deprecated The non-const \c Ptr<SixLowPanNetDevice> argument
+ * is deprecated and will be changed to \c Ptr<const SixLowPanNetDevice>
+ * in a future release.
*/
TracedCallback<Ptr<const Packet>, Ptr<SixLowPanNetDevice>, uint32_t> m_rxTrace;
@@ -255,6 +266,9 @@
* \li Packet dropped (including 6LoWPAN header)
* \li Ptr to SixLowPanNetDevice
* \li interface index
+ * \deprecated The non-const \c Ptr<SixLowPanNetDevice> argument
+ * is deprecated and will be changed to \c Ptr<const SixLowPanNetDevice>
+ * in a future release.
*/
TracedCallback<DropReason, Ptr<const Packet>, Ptr<SixLowPanNetDevice>, uint32_t> m_dropTrace;
--- a/src/spectrum/model/multi-model-spectrum-channel.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/spectrum/model/multi-model-spectrum-channel.h Tue Aug 18 16:46:10 2015 -0700
@@ -173,6 +173,11 @@
double m_maxLossDb;
+ /**
+ * \deprecated The non-const \c Ptr<SpectrumPhy> argument
+ * is deprecated and will be changed to \c Ptr<const SpectrumPhy>
+ * in a future release.
+ */
TracedCallback<Ptr<SpectrumPhy>, Ptr<SpectrumPhy>, double > m_pathLossTrace;
};
--- a/src/spectrum/model/single-model-spectrum-channel.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/spectrum/model/single-model-spectrum-channel.h Tue Aug 18 16:46:10 2015 -0700
@@ -109,6 +109,11 @@
double m_maxLossDb;
+ /**
+ * \deprecated The non-const \c Ptr<SpectrumPhy> argument
+ * is deprecated and will be changed to \c Ptr<const SpectrumPhy>
+ * in a future release.
+ */
TracedCallback<Ptr<SpectrumPhy>, Ptr<SpectrumPhy>, double > m_pathLossTrace;
};
--- a/src/spectrum/model/spectrum-channel.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/spectrum/model/spectrum-channel.h Tue Aug 18 16:46:10 2015 -0700
@@ -101,10 +101,13 @@
* \param [in] txPhy The TX SpectrumPhy instance.
* \param [in] rxPhy The RX SpectrumPhy instance.
* \param [in] lossDb The loss value, in dB.
+ * \deprecated The non-const `Ptr<SpectrumValue>` is
+ * deprecated and will be changed to Ptr<const SpectrumValue>`
+ * in a future release.
*/
typedef void (* LossTracedCallback)
- (const Ptr<const SpectrumPhy> txPhy, const Ptr<const SpectrumPhy> rxPhy,
- const double lossDb);
+ (Ptr<SpectrumPhy> txPhy, Ptr<SpectrumPhy> rxPhy,
+ double lossDb);
};
--- a/src/spectrum/model/spectrum-value.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/spectrum/model/spectrum-value.h Tue Aug 18 16:46:10 2015 -0700
@@ -507,8 +507,11 @@
* TracedCallback signature for SpectrumValue.
*
* \param [in] value Value of the traced variable.
+ * \deprecated The non-const \c Ptr<SpectrumPhy> argument
+ * is deprecated and will be changed to \c Ptr<const SpectrumPhy>
+ * in a future release.
*/
- typedef void (* TracedCallback)(const Ptr<const SpectrumValue> value);
+ typedef void (* TracedCallback)(Ptr<SpectrumValue> value);
private:
--- a/src/stats/model/time-series-adaptor.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/stats/model/time-series-adaptor.h Tue Aug 18 16:46:10 2015 -0700
@@ -115,7 +115,7 @@
/**
* TracedCallback signature for output trace.
*
- * \param [in] now The current Time.
+ * \param [in] now The current time, in seconds.
* \param [in] data The new data value.
*/
typedef void (* OutputTracedCallback) (const double now, const double data);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/traced/traced-callback-typedef-test-suite.cc Tue Aug 18 16:46:10 2015 -0700
@@ -0,0 +1,647 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2015 Lawrence Livermore National Laboratory
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Peter D. Barnes, Jr. <pdbarnes@llnl.gov>
+ */
+
+#include "ns3/test.h"
+#include "ns3/core-module.h"
+
+#include "ns3/dsr-module.h" // DsrOPtionSRHeader
+#include "ns3/internet-module.h" // Ipv4, Ipv4L3Protocol, Ipv4PacketProbe
+ // Ipv6L3Protocol, Ipv6PacketProbe
+#include "ns3/lr-wpan-mac.h" // LrWpanMac
+#include "ns3/lte-module.h" // PhyReceptionStatParameters,
+ // PhyTransmissionStatParameters,
+ // LteUePowerControl
+#include "ns3/mesh-module.h" // PeerManagementProtocol
+#include "ns3/mobility-module.h" // MobilityModel
+#include "ns3/network-module.h" // Packet, PacketBurst
+#include "ns3/olsr-module.h" // olsr::RoutingProtocol
+#include "ns3/sixlowpan-module.h" // SixLowPanNetDevice
+#include "ns3/spectrum-module.h" // SpectrumValue
+#include "ns3/stats-module.h" // TimeSeriesAdapter
+#include "ns3/uan-module.h" // UanPhy
+#include "ns3/wifi-module.h" // WifiMacHeader, WifiPhyStateHelper
+
+
+#include <iostream>
+#include <sstream>
+#include <set>
+#include <string>
+
+using namespace ns3;
+
+namespace {
+
+/**
+ * Stringify the known TracedCallback type names.
+ *
+ * \tparam T \explicit The typedef name.
+ * \param [in] N The number of arguments expected.
+ * \returns The \c TracedCallback type name.
+ */
+template <typename T> inline
+std::string TypeName (int N) { return "unknown"; }
+
+#define TYPENAME(T) \
+ template <> inline std::string \
+ TypeName < T > (int N) \
+ { \
+ std::stringstream ss; \
+ ss << # T << "(" << N << ")"; \
+ return ss.str (); \
+ }
+
+/**
+ * \name Stringify known typename.
+ * @{
+ */
+TYPENAME (dsr::DsrOptionSRHeader::TracedCallback);
+TYPENAME (EpcUeNas::StateTracedCallback);
+TYPENAME (Ipv4L3Protocol::DropTracedCallback);
+TYPENAME (Ipv4L3Protocol::SentTracedCallback);
+TYPENAME (Ipv4L3Protocol::TxRxTracedCallback);
+TYPENAME (Ipv6L3Protocol::DropTracedCallback);
+TYPENAME (Ipv6L3Protocol::SentTracedCallback);
+TYPENAME (Ipv6L3Protocol::TxRxTracedCallback);
+TYPENAME (LrWpanMac::SentTracedCallback);
+TYPENAME (LrWpanMac::StateTracedCallback);
+TYPENAME (LrWpanPhy::StateTracedCallback);
+TYPENAME (LteEnbMac::DlSchedulingTracedCallback);
+TYPENAME (LteEnbMac::UlSchedulingTracedCallback);
+TYPENAME (LteEnbPhy::ReportInterferenceTracedCallback);
+TYPENAME (LteEnbPhy::ReportUeSinrTracedCallback);
+TYPENAME (LteEnbRrc::ConnectionHandoverTracedCallback);
+TYPENAME (LteEnbRrc::HandoverStartTracedCallback);
+TYPENAME (LteEnbRrc::NewUeContextTracedCallback);
+TYPENAME (LteEnbRrc::ReceiveReportTracedCallback);
+TYPENAME (LtePdcp::PduRxTracedCallback);
+TYPENAME (LtePdcp::PduTxTracedCallback);
+TYPENAME (LteUePhy::StateTracedCallback);
+TYPENAME (LteUePhy::RsrpSinrTracedCallback);
+TYPENAME (LteUePhy::RsrpRsrqTracedCallback);
+TYPENAME (LteUeRrc::CellSelectionTracedCallback);
+TYPENAME (LteUeRrc::StateTracedCallback);
+TYPENAME (Mac48Address::TracedCallback);
+TYPENAME (MobilityModel::TracedCallback);
+TYPENAME (olsr::RoutingProtocol::PacketTxRxTracedCallback);
+TYPENAME (olsr::RoutingProtocol::TableChangeTracedCallback);
+TYPENAME (Packet::AddressTracedCallback);
+TYPENAME (Packet::Mac48AddressTracedCallback);
+TYPENAME (Packet::SinrTracedCallback);
+TYPENAME (Packet::SizeTracedCallback);
+TYPENAME (Packet::TracedCallback);
+TYPENAME (PacketBurst::TracedCallback);
+TYPENAME (dot11s::PeerManagementProtocol::LinkOpenCloseTracedCallback);
+TYPENAME (PhyReceptionStatParameters::TracedCallback);
+TYPENAME (PhyTransmissionStatParameters::TracedCallback);
+TYPENAME (SixLowPanNetDevice::DropTracedCallback);
+TYPENAME (SixLowPanNetDevice::RxTxTracedCallback);
+TYPENAME (SpectrumChannel::LossTracedCallback);
+TYPENAME (SpectrumValue::TracedCallback);
+TYPENAME (TimeSeriesAdaptor::OutputTracedCallback);
+TYPENAME (UanMac::PacketModeTracedCallback);
+TYPENAME (UanMacCw::QueueTracedCallback);
+TYPENAME (UanMacRc::QueueTracedCallback);
+TYPENAME (UanNetDevice::RxTxTracedCallback);
+TYPENAME (UanPhy::TracedCallback);
+TYPENAME (UeManager::StateTracedCallback);
+TYPENAME (WifiMacHeader::TracedCallback);
+TYPENAME (WifiPhyStateHelper::RxOkTracedCallback);
+TYPENAME (WifiPhyStateHelper::StateTracedCallback);
+TYPENAME (WifiPhyStateHelper::TxTracedCallback);
+TYPENAME (WifiRemoteStationManager::PowerChangeTracedCallback);
+TYPENAME (WifiRemoteStationManager::RateChangeTracedCallback);
+/** @} */
+#undef TYPENAME
+
+
+/** Record typedefs which are identical to previously declared. */
+std::set<std::string>
+Duplicates (void)
+{
+ std::set<std::string> dupes;
+
+#define dupename(T) dupes.insert (# T)
+
+ dupename (LteRlc::NotifyTxTracedCallback);
+ dupename (LteRlc::ReceiveTracedCallback);
+ dupename (LteUeRrc::ImsiCidRntiTracedCallback);
+ dupename (LteUeRrc::MibSibHandoverTracedCallback);
+ dupename (WifiPhyStateHelper::RxEndErrorTracedCallback);
+
+#undef dupename
+
+ return dupes;
+}
+
+/**
+ * Container for duplicate types.
+ */
+std::set<std::string> g_dupes = Duplicates ();
+
+
+/**
+ * Number of arguments passed to callback.
+ *
+ * Since the sink function is outside the invoking class,
+ * which in this case is TracedCallbackTestCase, we can't use
+ * the test macros directly. Instead, we cache success
+ * in the \c g_NArgs global value, then inspect it
+ * in the TracedValueCallbackTestCase::CheckType method.
+ */
+int g_NArgs = 0;
+
+
+/**
+ * Log that a callback was invoked.
+ *
+ * We can't actually do anything with any of the arguments,
+ * but the fact we got called is what's important.
+ *
+ * \param [in] N The number of arguments passed to the callback.
+ */
+void SinkIt (unsigned int N)
+{
+ std::cout << "with " << N << " args." << std::endl;
+ g_NArgs = N;
+}
+
+/**
+ * Sink functions.
+ * @{
+ */
+template <typename T1, typename T2, typename T3, typename T4, typename T5>
+class TracedCbSink
+{
+public:
+ static void Sink (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) { SinkIt (5); }
+};
+
+template <typename T1, typename T2, typename T3, typename T4>
+class TracedCbSink<T1, T2, T3, T4, empty>
+{
+public:
+ static void Sink (T1 a1, T2 a2, T3 a3, T4 a4) { SinkIt (4); }
+};
+
+template <typename T1, typename T2, typename T3>
+class TracedCbSink<T1, T2, T3, empty, empty>
+{
+public:
+ static void Sink (T1 a1, T2 a2, T3 a3) { SinkIt (3); }
+};
+
+template <typename T1, typename T2>
+class TracedCbSink<T1, T2, empty, empty, empty>
+{
+public:
+ static void Sink (T1 a1, T2 a2) { SinkIt (2); }
+};
+
+template <typename T1>
+class TracedCbSink< T1, empty, empty, empty, empty>
+{
+public:
+ static void Sink (T1 a1) { SinkIt (1); }
+};
+/** @} */
+
+/** Non-const non-reference type. */
+template <typename T>
+struct NonConstReferenced
+{
+ typedef typename TypeTraits< typename TypeTraits<T>::ReferencedType >::NonConstType Type;
+};
+
+} // anonymous namespace
+
+
+class TracedCallbackTestCase : public TestCase
+{
+public:
+ TracedCallbackTestCase ();
+ virtual ~TracedCallbackTestCase () {}
+
+private:
+
+ /** Invoker boilerplate. */
+ template <typename T1, typename T2, typename T3, typename T4, typename T5>
+ class CheckerBase : public Object
+ {
+ public:
+ typename TypeTraits<T1>::BaseType m1;
+ typename TypeTraits<T2>::BaseType m2;
+ typename TypeTraits<T3>::BaseType m3;
+ typename TypeTraits<T4>::BaseType m4;
+ typename TypeTraits<T5>::BaseType m5;
+
+ void Cleanup (int N)
+ {
+ if (g_NArgs == 0) std::cout << std::endl;
+ NS_ASSERT_MSG (g_NArgs && g_NArgs == N, "failed.");
+ g_NArgs = 0;
+ }
+ }; // CheckerBase
+
+ /** Callback checkers. */
+ template <typename T1, typename T2, typename T3, typename T4, typename T5>
+ class Checker : public CheckerBase<T1, T2, T3, T4, T5>
+ {
+ TracedCallback<T1, T2, T3, T4, T5> m_cb;
+
+ public:
+ template <typename U>
+ void Invoke (void)
+ {
+ const int N = 5;
+ U sink = TracedCbSink<T1, T2, T3, T4, T5>::Sink;
+ Callback<void, T1, T2, T3, T4, T5> cb = MakeCallback (sink);
+
+ std::cout << TypeName<U> (N) << " invoked ";
+ m_cb.ConnectWithoutContext (cb);
+ m_cb (this->m1, this->m2, this->m3, this->m4, this->m5);
+ this->Cleanup (N);
+ }
+ }; // Checker<5>
+
+ template <typename T1, typename T2, typename T3, typename T4>
+ class Checker<T1, T2, T3, T4, empty>
+ : public CheckerBase<T1, T2, T3, T4, empty>
+ {
+ TracedCallback<T1, T2, T3, T4> m_cb;
+
+ public:
+ template <typename U>
+ void Invoke (void)
+ {
+ const int N = 4;
+ U sink = TracedCbSink<T1, T2, T3, T4, empty>::Sink;
+ Callback<void, T1, T2, T3, T4> cb = MakeCallback (sink);
+
+ std::cout << TypeName<U> (N) << " invoked ";
+ m_cb.ConnectWithoutContext (cb);
+ m_cb (this->m1, this->m2, this->m3, this->m4);
+ this->Cleanup (N);
+ }
+ }; // Checker <4>
+
+
+ template <typename T1, typename T2, typename T3>
+ class Checker<T1, T2, T3, empty, empty>
+ : public CheckerBase<T1, T2, T3, empty, empty>
+ {
+ TracedCallback<T1, T2, T3> m_cb;
+
+ public:
+ template <typename U>
+ void Invoke (void)
+ {
+ const int N = 3;
+ U sink = TracedCbSink<T1, T2, T3, empty, empty>::Sink;
+ Callback<void, T1, T2, T3> cb = MakeCallback (sink);
+
+ std::cout << TypeName<U> (N) << " invoked ";
+ m_cb.ConnectWithoutContext (cb);
+ m_cb (this->m1, this->m2, this->m3);
+ this->Cleanup (N);
+ }
+ }; // Checker<3>
+
+ template <typename T1, typename T2>
+ class Checker<T1, T2, empty, empty, empty>
+ : public CheckerBase<T1, T2, empty, empty, empty>
+ {
+ TracedCallback<T1, T2> m_cb;
+
+ public:
+ template <typename U>
+ void Invoke (void)
+ {
+ const int N = 2;
+ U sink = TracedCbSink<T1, T2, empty, empty, empty>::Sink;
+ Callback<void, T1, T2> cb = MakeCallback (sink);
+
+ std::cout << TypeName<U> (N) << " invoked ";
+ m_cb.ConnectWithoutContext (cb);
+ m_cb (this->m1, this->m2);
+ this->Cleanup (N);
+ }
+ }; // Checker<2>
+
+ template <typename T1>
+ class Checker<T1, empty, empty, empty, empty>
+ : public CheckerBase<T1, empty, empty, empty, empty>
+ {
+ TracedCallback<T1> m_cb;
+
+ public:
+ template <typename U>
+ void Invoke (void)
+ {
+ const int N = 1;
+ U sink = TracedCbSink<T1, empty, empty, empty, empty>::Sink;
+ Callback<void, T1> cb = MakeCallback (sink);
+
+ std::cout << TypeName<U> (N) << " invoked ";
+ m_cb.ConnectWithoutContext (cb);
+ m_cb (this->m1);
+ this->Cleanup (N);
+ }
+ }; // Checker<1>
+
+ virtual void DoRun (void);
+
+}; // TracedCallbackTestCase
+
+TracedCallbackTestCase::TracedCallbackTestCase ()
+ : TestCase ("Check basic TracedCallback operation")
+{
+}
+
+void
+TracedCallbackTestCase::DoRun (void)
+{
+
+#define DUPE(U, T1) \
+ if (g_dupes.find ( # U ) == g_dupes.end ()) \
+ NS_TEST_ASSERT_MSG_NE (0, 1, \
+ "expected to find " << # U << " in dupes."); \
+ if (TypeName<U> (0) == TypeName<T1> (0)) \
+ std::cout << # U << " matches " << # T1 << std::endl; \
+ else \
+ NS_TEST_ASSERT_MSG_EQ \
+ (TypeName<U> (0), TypeName<T1> (0), \
+ "the typedef " << # U << \
+ " used to match the typedef " << # T1 << \
+ " but no longer does. Please add a new CHECK call.")
+
+#define CHECK(U, T1, T2, T3, T4, T5) \
+ CreateObject< Checker<T1, T2, T3, T4, T5> > () -> Invoke<U> ()
+
+ CHECK (dsr::DsrOptionSRHeader::TracedCallback,
+ const dsr::DsrOptionSRHeader &,
+ empty, empty, empty, empty);
+
+ CHECK (EpcUeNas::StateTracedCallback,
+ EpcUeNas::State, EpcUeNas::State,
+ empty, empty, empty);
+
+ CHECK (Ipv4L3Protocol::DropTracedCallback,
+ const Ipv4Header &, Ptr<const Packet>,
+ Ipv4L3Protocol::DropReason, Ptr<Ipv4>, uint32_t );
+
+ CHECK (Ipv4L3Protocol::SentTracedCallback,
+ const Ipv4Header &, Ptr<const Packet>, uint32_t,
+ empty, empty);
+
+ CHECK (Ipv4L3Protocol::TxRxTracedCallback,
+ Ptr<const Packet>, Ptr<Ipv4>, uint32_t,
+ empty, empty);
+
+ CHECK (Ipv6L3Protocol::DropTracedCallback,
+ const Ipv6Header &, Ptr<const Packet>,
+ Ipv6L3Protocol::DropReason, Ptr<Ipv6>, uint32_t
+ );
+
+ CHECK (Ipv6L3Protocol::SentTracedCallback,
+ const Ipv6Header &, Ptr<const Packet>, uint32_t,
+ empty, empty);
+
+ CHECK (Ipv6L3Protocol::TxRxTracedCallback,
+ Ptr<const Packet>, Ptr<Ipv6>, uint32_t,
+ empty, empty);
+
+ CHECK (LrWpanMac::SentTracedCallback,
+ Ptr<const Packet>, uint8_t, uint8_t,
+ empty, empty);
+
+ CHECK (LrWpanMac::StateTracedCallback,
+ LrWpanMacState, LrWpanMacState,
+ empty, empty, empty);
+
+ CHECK (LrWpanPhy::StateTracedCallback,
+ Time, LrWpanPhyEnumeration, LrWpanPhyEnumeration,
+ empty, empty);
+
+
+ /* Too many args :(
+ CHECK (LteEnbMac::DlSchedulingTracedCallback,
+ uint32_t, uint32_t, uint16_t,
+ uint8_t, uint16_t, uint8_t, uint16_t);
+ */
+
+ CHECK (LteEnbMac::UlSchedulingTracedCallback,
+ uint32_t, uint32_t, uint16_t, uint8_t, uint16_t);
+
+ CHECK (LteEnbPhy::ReportUeSinrTracedCallback,
+ uint16_t, uint16_t, double,
+ empty, empty);
+
+ CHECK (LteEnbPhy::ReportInterferenceTracedCallback,
+ uint16_t, Ptr<SpectrumValue>,
+ empty, empty, empty);
+
+ CHECK (LteEnbRrc::ConnectionHandoverTracedCallback,
+ uint64_t, uint16_t, uint16_t,
+ empty, empty);
+
+ CHECK (LteEnbRrc::HandoverStartTracedCallback,
+ uint64_t, uint16_t, uint16_t, uint16_t,
+ empty);
+
+ CHECK (LteEnbRrc::NewUeContextTracedCallback,
+ uint16_t, uint16_t,
+ empty, empty, empty);
+
+ CHECK (LteEnbRrc::ReceiveReportTracedCallback,
+ uint64_t, uint16_t, uint16_t, LteRrcSap::MeasurementReport,
+ empty);
+
+ CHECK (LtePdcp::PduRxTracedCallback,
+ uint16_t, uint8_t, uint32_t, uint64_t,
+ empty);
+
+ CHECK (LtePdcp::PduTxTracedCallback,
+ uint16_t, uint8_t, uint32_t,
+ empty, empty);
+
+ DUPE (LteRlc::NotifyTxTracedCallback, LtePdcp::PduTxTracedCallback);
+
+ DUPE (LteRlc::ReceiveTracedCallback, LtePdcp::PduRxTracedCallback);
+
+ CHECK (LteUePhy::RsrpSinrTracedCallback,
+ uint16_t, uint16_t, double, double,
+ empty);
+
+ CHECK (LteUePhy::RsrpRsrqTracedCallback,
+ uint16_t, uint16_t, double, double, bool);
+
+ CHECK (LteUePhy::StateTracedCallback,
+ uint16_t, uint16_t, LteUePhy::State, LteUePhy::State,
+ empty);
+
+ DUPE (LteUePowerControl::TxPowerTracedCallback, LteEnbPhy::ReportUeSinrTracedCallback);
+
+ CHECK (LteUeRrc::CellSelectionTracedCallback,
+ uint64_t, uint16_t,
+ empty, empty, empty);
+
+ DUPE (LteUeRrc::ImsiCidRntiTracedCallback, LteEnbRrc::ConnectionHandoverTracedCallback);
+
+ DUPE (LteUeRrc::MibSibHandoverTracedCallback, LteEnbRrc::HandoverStartTracedCallback);
+
+ CHECK (LteUeRrc::StateTracedCallback,
+ uint64_t, uint16_t, uint16_t, LteUeRrc::State, LteUeRrc::State);
+
+ CHECK (Mac48Address::TracedCallback,
+ Mac48Address,
+ empty, empty, empty, empty);
+
+ CHECK (MobilityModel::TracedCallback,
+ Ptr<const MobilityModel>,
+ empty, empty, empty, empty);
+
+ CHECK (olsr::RoutingProtocol::PacketTxRxTracedCallback,
+ const olsr::PacketHeader &, const olsr::MessageList &,
+ empty, empty, empty);
+
+ CHECK (olsr::RoutingProtocol::TableChangeTracedCallback,
+ uint32_t,
+ empty, empty, empty, empty);
+
+ CHECK (Packet::AddressTracedCallback,
+ Ptr<const Packet>, const Address &,
+ empty, empty, empty);
+
+ CHECK (Packet::Mac48AddressTracedCallback,
+ Ptr<const Packet>, Mac48Address,
+ empty, empty, empty);
+
+ CHECK (Packet::SinrTracedCallback,
+ Ptr<const Packet>, double,
+ empty, empty, empty);
+
+ CHECK (Packet::SizeTracedCallback,
+ uint32_t, uint32_t,
+ empty, empty, empty);
+
+ CHECK (Packet::TracedCallback,
+ Ptr<const Packet>,
+ empty, empty, empty, empty);
+
+ CHECK (PacketBurst::TracedCallback,
+ Ptr<const PacketBurst>,
+ empty, empty, empty, empty);
+
+ CHECK (dot11s::PeerManagementProtocol::LinkOpenCloseTracedCallback,
+ Mac48Address, Mac48Address,
+ empty, empty, empty);
+
+ CHECK (PhyReceptionStatParameters::TracedCallback,
+ PhyReceptionStatParameters,
+ empty, empty, empty, empty);
+
+ CHECK (PhyTransmissionStatParameters::TracedCallback,
+ PhyTransmissionStatParameters,
+ empty, empty, empty, empty);
+
+ CHECK (SixLowPanNetDevice::DropTracedCallback,
+ SixLowPanNetDevice::DropReason, Ptr<const Packet>,
+ Ptr<SixLowPanNetDevice>, uint32_t,
+ empty);
+
+ CHECK (SixLowPanNetDevice::RxTxTracedCallback,
+ Ptr<const Packet>, Ptr<SixLowPanNetDevice>, uint32_t,
+ empty, empty);
+
+ CHECK (SpectrumChannel::LossTracedCallback,
+ Ptr<SpectrumPhy>, Ptr<SpectrumPhy>, double,
+ empty, empty);
+
+ CHECK (SpectrumValue::TracedCallback,
+ Ptr<SpectrumValue>,
+ empty, empty, empty, empty);
+
+ CHECK (TimeSeriesAdaptor::OutputTracedCallback,
+ double, double,
+ empty, empty, empty);
+
+ CHECK (UanMac::PacketModeTracedCallback,
+ Ptr<const Packet>, UanTxMode,
+ empty, empty, empty);
+
+ CHECK (UanMacCw::QueueTracedCallback,
+ Ptr<const Packet>, uint16_t,
+ empty, empty, empty);
+
+ CHECK (UanMacRc::QueueTracedCallback,
+ Ptr<const Packet>, uint32_t,
+ empty, empty, empty);
+
+ CHECK (UanNetDevice::RxTxTracedCallback,
+ Ptr<const Packet>, UanAddress,
+ empty, empty, empty);
+
+ CHECK (UanPhy::TracedCallback,
+ Ptr<const Packet>, double, UanTxMode,
+ empty, empty);
+
+ CHECK (UeManager::StateTracedCallback,
+ uint64_t, uint16_t, uint16_t, UeManager::State, UeManager::State);
+
+ CHECK (WifiMacHeader::TracedCallback,
+ const WifiMacHeader &,
+ empty, empty, empty, empty);
+
+ DUPE (WifiPhyStateHelper::RxEndErrorTracedCallback, Packet::SinrTracedCallback);
+
+ CHECK (WifiPhyStateHelper::RxOkTracedCallback,
+ Ptr<const Packet>, double, WifiMode, WifiPreamble,
+ empty);
+
+ CHECK (WifiPhyStateHelper::StateTracedCallback,
+ Time, Time, WifiPhy::State,
+ empty, empty);
+
+ CHECK (WifiPhyStateHelper::TxTracedCallback,
+ Ptr<const Packet>, WifiMode, WifiPreamble, uint8_t,
+ empty);
+
+ CHECK (WifiRemoteStationManager::PowerChangeTracedCallback,
+ uint8_t, Mac48Address,
+ empty, empty, empty);
+
+ CHECK (WifiRemoteStationManager::RateChangeTracedCallback,
+ uint32_t, Mac48Address,
+ empty, empty, empty);
+}
+
+class TracedCallbackTestSuite : public TestSuite
+{
+public:
+ TracedCallbackTestSuite ();
+};
+
+TracedCallbackTestSuite::TracedCallbackTestSuite ()
+ : TestSuite ("traced-callback", UNIT)
+{
+ AddTestCase (new TracedCallbackTestCase, TestCase::QUICK);
+}
+
+static TracedCallbackTestSuite tracedCallbackTestSuite;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/traced/traced-value-callback-typedef-test-suite.cc Tue Aug 18 16:46:10 2015 -0700
@@ -0,0 +1,240 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2015 Lawrence Livermore National Laboratory
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Peter D. Barnes, Jr. <pdbarnes@llnl.gov>
+ */
+
+#include "ns3/test.h"
+#include "ns3/core-module.h"
+#include "ns3/network-module.h" // SequenceNumber32
+
+using namespace ns3;
+
+namespace {
+
+/**
+ * \name Stringify the known TracedValue type names.
+ *
+ * \returns The \c TracedValueCallback type name.
+ * @{
+ */
+template <typename T> inline
+std::string TypeName (void) { return "unknown"; }
+
+template <> inline std::string TypeName <bool> (void) { return "Bool" ; }
+template <> inline std::string TypeName <int8_t> (void) { return "Int8_t" ; }
+template <> inline std::string TypeName <int16_t> (void) { return "Int16_t" ; }
+template <> inline std::string TypeName <int32_t> (void) { return "Int32_t" ; }
+template <> inline std::string TypeName <uint8_t> (void) { return "Uint8_t" ; }
+template <> inline std::string TypeName <uint16_t> (void) { return "Uint16_t"; }
+template <> inline std::string TypeName <uint32_t> (void) { return "Uint32_t"; }
+template <> inline std::string TypeName <double> (void) { return "Double" ; }
+template <> inline std::string TypeName <Time> (void) { return "Time" ; }
+template <> inline std::string TypeName <SequenceNumber32> (void) { return "SequenceNumber32" ; }
+/** @} */
+
+
+/**
+ * Result of callback test.
+ *
+ * Since the sink function is outside the invoking class,
+ * which in this case is TracedValueCallbackTestCase, we can't use
+ * the test macros directly. Instead, we cache the result
+ * in the \c g_Result global value, then inspect it
+ * in the TracedValueCallbackTestCase::CheckType method.
+ */
+std::string g_Result = "";
+
+
+/**
+ * Template for TracedValue sink functions.
+ *
+ * This generates a sink function for any underlying type.
+ *
+ * \tparam T \explicit The type of the value being traced.
+ * Since the point of this template is to create a
+ * sink function, the template type must be given explicitly.
+ * \param [in] oldValue The original value.
+ * \param [in] newValue The new value.
+ */
+template <typename T>
+void TracedValueCbSink (T oldValue, T newValue)
+{
+ std::cout << ": "
+ << (int64_t)oldValue << " -> "
+ << (int64_t)newValue
+ << std::endl;
+ if (oldValue != 0)
+ g_Result = "oldValue should be 0";
+ else if (newValue != 1)
+ g_Result = "newValue should be 1";
+
+} // TracedValueCbSink<>()
+
+/**
+ * TracedValueCbSink specialization for Time.
+ */
+template <>
+void TracedValueCbSink<Time> (Time oldValue, Time newValue)
+{
+ TracedValueCbSink <int64_t> (oldValue.GetInteger (),
+ newValue.GetInteger ());
+}
+/**
+ * TracedValueCbSink specialization for SequenceNumber32.
+ */
+template <>
+void TracedValueCbSink<SequenceNumber32> (SequenceNumber32 oldValue,
+ SequenceNumber32 newValue)
+{
+ TracedValueCbSink <int64_t> (oldValue.GetValue (), newValue.GetValue ());
+}
+
+
+} // anonymous namespace
+
+
+class TracedValueCallbackTestCase : public TestCase
+{
+public:
+ TracedValueCallbackTestCase ();
+ virtual ~TracedValueCallbackTestCase () {}
+
+private:
+
+ /**
+ * A class to check that the callback function typedef will
+ * actually connect to the TracedValue.
+ */
+ template <typename T>
+ class CheckTvCb : public Object
+ {
+ TracedValue<T> m_value;
+
+ public:
+ /** Constructor. */
+ CheckTvCb (void) : m_value (0) { }
+
+ /** Register this type. */
+ static TypeId GetTypeId (void)
+ {
+ static TypeId tid =
+ TypeId ( ("CheckTvCb<" + TypeName<T>() + ">").c_str ())
+ .SetParent <Object> ()
+ .AddTraceSource ("value",
+ "A value being traced.",
+ MakeTraceSourceAccessor (&CheckTvCb<T>::m_value),
+ ("ns3::TracedValueCallback::" + TypeName<T>()).c_str () )
+ ;
+ return tid;
+ } // GetTypeId ()
+
+ /**
+ * Check the sink function against the actual TracedValue invocation.
+ *
+ * We connect the TracedValue to the sink. If the types
+ * aren't compatible, the connection will fail.
+ *
+ * Just to make sure, we increment the TracedValue,
+ * which calls the sink..
+ */
+ template <typename U>
+ void Invoke (U cb)
+ {
+ bool ok = TraceConnectWithoutContext ("value", MakeCallback (cb));
+ std::cout << GetTypeId () << ": "
+ << (ok ? "connected " : "failed to connect ")
+ << GetTypeId ().GetTraceSource (0).callback
+ ;
+ // The endl is in the sink function.
+
+ if (ok)
+ // Odd form here is to accomodate the uneven operator support
+ // of Time and SequenceNumber32.
+ m_value = m_value + (T) 1;
+ else
+ {
+ // finish the line started above
+ std::cout << std::endl;
+
+ // and log the error
+ g_Result = "failed to connect callback";
+ }
+
+ } // Invoke()
+
+ }; // class CheckTvCb<T>
+
+
+ /**
+ * Check the TracedValue typedef against TracedValueCbSink<T>.
+ *
+ * We instantiate a sink function of type \c U, initialized to
+ * TracedValueCbSink<T>. If this compiles, we've proved the
+ * sink function and the typedef agree.
+ *
+ * \tparam T \explicit The base type.
+ * \tparam U \explicit The TracedValueCallback sink typedef type.
+ */
+ template <typename T, typename U>
+ void CheckType (void)
+ {
+ U sink = TracedValueCbSink<T>;
+ CreateObject<CheckTvCb<T> > ()->Invoke (sink);
+
+ NS_TEST_ASSERT_MSG_EQ (g_Result, "", g_Result);
+ g_Result = "";
+
+ } // CheckType<>()
+
+ virtual void DoRun (void);
+
+};
+
+TracedValueCallbackTestCase::TracedValueCallbackTestCase ()
+ : TestCase ("Check basic TracedValue callback operation")
+{
+}
+
+void
+TracedValueCallbackTestCase::DoRun (void)
+{
+ CheckType< bool, TracedValueCallback::Bool > ();
+ CheckType< int8_t, TracedValueCallback::Int8 > ();
+ CheckType< int16_t, TracedValueCallback::Int16 > ();
+ CheckType< int32_t, TracedValueCallback::Int32 > ();
+ CheckType< uint8_t, TracedValueCallback::Uint8 > ();
+ CheckType< uint16_t, TracedValueCallback::Uint16 > ();
+ CheckType< uint32_t, TracedValueCallback::Uint32 > ();
+ CheckType< double, TracedValueCallback::Double > ();
+ CheckType< Time, TracedValueCallback::Time > ();
+ CheckType< SequenceNumber32, TracedValueCallback::SequenceNumber32 > ();
+}
+
+class TracedValueCallbackTestSuite : public TestSuite
+{
+public:
+ TracedValueCallbackTestSuite ();
+};
+
+TracedValueCallbackTestSuite::TracedValueCallbackTestSuite ()
+ : TestSuite ("tracedvalue-callback", UNIT)
+{
+ AddTestCase (new TracedValueCallbackTestCase, TestCase::QUICK);
+}
+
+static TracedValueCallbackTestSuite tracedValueCallbackTestSuite;
--- a/src/test/wscript Tue Aug 18 16:34:50 2015 -0700
+++ b/src/test/wscript Tue Aug 18 16:46:10 2015 -0700
@@ -15,13 +15,22 @@
if 'test' in bld.env['MODULES_NOT_BUILT']:
return
- test = bld.create_ns3_module('test', ['internet', 'mobility', 'applications', 'csma', 'bridge', 'config-store', 'point-to-point', 'csma-layout', 'flow-monitor', 'wifi'])
+ test = bld.create_ns3_module('test',
+ ['applications', 'bridge', 'config-store',
+ 'csma', 'csma-layout', 'dsr',
+ 'flow-monitor', 'internet', 'lr-wpan',
+ 'lte', 'mesh', 'mobility', 'olsr',
+ 'point-to-point', 'sixlowpan', 'stats',
+ 'uan', 'wifi'])
+
headers = bld(features='ns3header')
headers.module = 'test'
test_test = bld.create_ns3_module_test_library('test')
test_test.source = [
'csma-system-test-suite.cc',
+ 'traced/traced-callback-typedef-test-suite.cc',
+ 'traced/traced-value-callback-typedef-test-suite.cc',
'ns3wifi/wifi-interference-test-suite.cc',
'ns3wifi/wifi-msdu-aggregator-test-suite.cc',
'ns3tcp/ns3tcp-cwnd-test-suite.cc',
--- a/src/uan/model/uan-mac-cw.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/uan/model/uan-mac-cw.h Tue Aug 18 16:46:10 2015 -0700
@@ -107,7 +107,7 @@
* \param [in] proto The protocol number.
*/
typedef void (* QueueTracedCallback)
- (const Ptr<const Packet> packet, const uint16_t proto);
+ (Ptr<const Packet> packet, uint16_t proto);
private:
/** Enum defining possible Phy states. */
--- a/src/uan/model/uan-mac-rc-gw.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/uan/model/uan-mac-rc-gw.h Tue Aug 18 16:46:10 2015 -0700
@@ -89,10 +89,8 @@
* \param [in] actualX Current retry rate.
*/
typedef void (* CycleCallback)
- (const Time now, const Time delay,
- const uint32_t numRts, const uint32_t totalBytes,
- const double secs, const uint32_t ctlRate,
- const double actualX);
+ (Time now, Time delay, uint32_t numRts, uint32_t totalBytes,
+ double secs, uint32_t ctlRate, double actualX);
private:
--- a/src/uan/model/uan-mac-rc.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/uan/model/uan-mac-rc.cc Tue Aug 18 16:46:10 2015 -0700
@@ -254,11 +254,11 @@
.AddTraceSource ("Enqueue",
"A (data) packet arrived at MAC for transmission.",
MakeTraceSourceAccessor (&UanMacRc::m_enqueueLogger),
- "ns3::UanMac::PacketModeTracedCallback")
+ "ns3::UanMacRc::QueueTracedCallback")
.AddTraceSource ("Dequeue",
"A (data) packet was passed down to PHY from MAC.",
MakeTraceSourceAccessor (&UanMacRc::m_dequeueLogger),
- "ns3::UanMac::PacketModeTracedCallback")
+ "ns3::UanMacRc::QueueTracedCallback")
.AddTraceSource ("RX",
"A packet was destined for and received at this MAC layer.",
MakeTraceSourceAccessor (&UanMacRc::m_rxLogger),
--- a/src/uan/model/uan-mac-rc.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/uan/model/uan-mac-rc.h Tue Aug 18 16:46:10 2015 -0700
@@ -192,6 +192,15 @@
virtual void Clear (void);
int64_t AssignStreams (int64_t stream);
+ /**
+ * TracedCallback signature for dequeue of a packet.
+ *
+ * \param [in] packet The Packet being received.
+ * \param [in] proto The protocol number.
+ */
+ typedef void (* QueueTracedCallback)
+ (Ptr<const Packet> packet, uint32_t proto);
+
private:
/** MAC state. */
enum State {
@@ -235,11 +244,11 @@
Callback<void, Ptr<Packet>, const UanAddress& > m_forwardUpCb;
/** A packet was destined for and received at this MAC layer. */
- TracedCallback<Ptr<const Packet>, UanTxMode &> m_rxLogger;
+ TracedCallback<Ptr<const Packet>, UanTxMode > m_rxLogger;
/** A packet arrived at the MAC for transmission. */
- TracedCallback<Ptr<const Packet>, uint16_t > m_enqueueLogger;
+ TracedCallback<Ptr<const Packet>, uint32_t > m_enqueueLogger;
/** A was passed down to the PHY from the MAC. */
- TracedCallback<Ptr<const Packet>, uint16_t > m_dequeueLogger;
+ TracedCallback<Ptr<const Packet>, uint32_t > m_dequeueLogger;
/** The RTS event. */
EventId m_rtsEvent;
--- a/src/uan/model/uan-mac.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/uan/model/uan-mac.h Tue Aug 18 16:46:10 2015 -0700
@@ -123,7 +123,7 @@
* \param [in] mode The UanTxMode.
*/
typedef void (* PacketModeTracedCallback)
- (const Ptr<const Packet> packet, const UanTxMode & mode);
+ (Ptr<const Packet> packet, UanTxMode mode);
}; // class UanMac
--- a/src/uan/model/uan-net-device.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/uan/model/uan-net-device.h Tue Aug 18 16:46:10 2015 -0700
@@ -154,7 +154,7 @@
* \param [in] address The source address.
*/
typedef void (* RxTxTracedCallback)
- (const Ptr<const Packet> packet, const UanAddress address);
+ (Ptr<const Packet> packet, UanAddress address);
private:
/**
--- a/src/uan/model/uan-phy.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/uan/model/uan-phy.h Tue Aug 18 16:46:10 2015 -0700
@@ -210,7 +210,7 @@
* \param [in] mode The channel mode.
*/
typedef void (* TracedCallback)
- (const Ptr<const Packet> pkt, const double sinr, const UanTxMode mode);
+ (Ptr<const Packet> pkt, double sinr, UanTxMode mode);
/**
--- a/src/wave/model/wave-net-device.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wave/model/wave-net-device.h Tue Aug 18 16:46:10 2015 -0700
@@ -352,6 +352,10 @@
Ptr<ChannelCoordinator> m_channelCoordinator;
Ptr<VsaManager> m_vsaManager;
TxProfile *m_txProfile;
+ /**
+ * \todo The Address arguments should be passed
+ * by const reference, since they are large.
+ */
TracedCallback<Address, Address> m_addressChange;
// copy from WifiNetDevice
--- a/src/wifi/model/aparf-wifi-manager.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wifi/model/aparf-wifi-manager.cc Tue Aug 18 16:46:10 2015 -0700
@@ -105,11 +105,11 @@
.AddTraceSource ("PowerChange",
"The transmission power has change",
MakeTraceSourceAccessor (&AparfWifiManager::m_powerChange),
- "ns3::AparfWifiManager::PowerChangeTracedCallback")
+ "ns3::WifiRemoteStationManager::PowerChangeTracedCallback")
.AddTraceSource ("RateChange",
"The transmission rate has change",
MakeTraceSourceAccessor (&AparfWifiManager::m_rateChange),
- "ns3::AparfWifiManager::RateChangeTracedCallback")
+ "ns3::WifiRemoteStationManager::RateChangeTracedCallback")
;
return tid;
}
--- a/src/wifi/model/aparf-wifi-manager.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wifi/model/aparf-wifi-manager.h Tue Aug 18 16:46:10 2015 -0700
@@ -62,23 +62,6 @@
Spread
};
- /**
- * TracedCallback signature for power change events.
- *
- * \param [in] power The new power.
- * \param [in] address The remote station MAC address.
- */
- typedef void (*PowerChangeTracedCallback)(const uint8_t power, const Mac48Address remoteAddress);
-
- /**
- * TracedCallback signature for rate change events.
- *
- * \param [in] rate The new rate.
- * \param [in] address The remote station MAC address.
- */
- typedef void (*RateChangeTracedCallback)(const uint32_t rate, const Mac48Address remoteAddress);
-
-
private:
//overriden from base class
virtual WifiRemoteStation * DoCreateStation (void) const;
--- a/src/wifi/model/parf-wifi-manager.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wifi/model/parf-wifi-manager.cc Tue Aug 18 16:46:10 2015 -0700
@@ -73,11 +73,11 @@
.AddTraceSource ("PowerChange",
"The transmission power has change",
MakeTraceSourceAccessor (&ParfWifiManager::m_powerChange),
- "ns3::ParfWifiManager::PowerChangeTracedCallback")
+ "ns3::WifiRemoteStationManager::PowerChangeTracedCallback")
.AddTraceSource ("RateChange",
"The transmission rate has change",
MakeTraceSourceAccessor (&ParfWifiManager::m_rateChange),
- "ns3::ParfWifiManager::RateChangeTracedCallback")
+ "ns3::WifiRemoteStationManager::RateChangeTracedCallback")
;
return tid;
}
--- a/src/wifi/model/parf-wifi-manager.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wifi/model/parf-wifi-manager.h Tue Aug 18 16:46:10 2015 -0700
@@ -50,21 +50,6 @@
virtual void SetupPhy (Ptr<WifiPhy> phy);
- /**
- * TracedCallback signature for power change events.
- *
- * \param [in] power The new power.
- * \param [in] address The remote station MAC address.
- */
- typedef void (*PowerChangeTracedCallback)(const uint8_t power, const Mac48Address remoteAddress);
- /**
- * TracedCallback signature for rate change events.
- *
- * \param [in] rate The new rate.
- * \param [in] address The remote station MAC address.
- */
- typedef void (*RateChangeTracedCallback)(const uint32_t rate, const Mac48Address remoteAddress);
-
private:
//overriden from base class
--- a/src/wifi/model/wifi-phy-state-helper.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wifi/model/wifi-phy-state-helper.cc Tue Aug 18 16:46:10 2015 -0700
@@ -48,7 +48,7 @@
.AddTraceSource ("RxError",
"A packet has been received unsuccessfully.",
MakeTraceSourceAccessor (&WifiPhyStateHelper::m_rxErrorTrace),
- "ns3::WifiPhyStateHelper::RxErrorTracedCallback")
+ "ns3::WifiPhyStateHelper::RxEndErrorTracedCallback")
.AddTraceSource ("Tx", "Packet transmission is starting.",
MakeTraceSourceAccessor (&WifiPhyStateHelper::m_txTrace),
"ns3::WifiPhyStateHelper::TxTracedCallback")
--- a/src/wifi/model/wifi-phy-state-helper.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wifi/model/wifi-phy-state-helper.h Tue Aug 18 16:46:10 2015 -0700
@@ -187,7 +187,7 @@
void SwitchFromSleep (Time duration);
/** \todo Why is this public? */
- TracedCallback<Time,Time,enum WifiPhy::State> m_stateLogger;
+ TracedCallback<Time, Time, enum WifiPhy::State> m_stateLogger;
/**
* TracedCallback signature for state changes.
@@ -197,7 +197,8 @@
* the \p state.
* \param [in] state The state.
*/
- typedef void (* StateTracedCallback)(const Time start, const Time duration, const WifiPhy::State state);
+ typedef void (* StateTracedCallback)
+ (Time start, Time duration, WifiPhy::State state);
/**
* TracedCallback signature for receive end ok event.
@@ -207,8 +208,8 @@
* \param [in] mode The transmission mode of the packet.
* \param [in] preamble The preamble of the packet.
*/
- typedef void (* RxOkTracedCallback)(const Ptr<const Packet> packet, const double snr,
- const WifiMode mode, const WifiPreamble preamble);
+ typedef void (* RxOkTracedCallback)
+ (Ptr<const Packet> packet, double snr, WifiMode mode, WifiPreamble preamble);
/**
* TracedCallback signature for receive end error event.
@@ -216,7 +217,8 @@
* \param [in] packet The received packet.
* \param [in] snr The SNR of the received packet.
*/
- typedef void (* RxEndErrorTracedCallback)(const Ptr<const Packet> packet, const double snr);
+ typedef void (* RxEndErrorTracedCallback)
+ (Ptr<const Packet> packet, double snr);
/**
* TracedCallback signature for transmit event.
@@ -226,8 +228,9 @@
* \param [in] preamble The preamble of the packet.
* \param [in] power The transmit power level.
*/
- typedef void (* TxTracedCallback)(const Ptr<const Packet> packet, const WifiMode mode,
- const WifiPreamble preamble, const uint8_t power);
+ typedef void (* TxTracedCallback)
+ (Ptr<const Packet> packet, WifiMode mode,
+ WifiPreamble preamble, uint8_t power);
private:
--- a/src/wifi/model/wifi-phy.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wifi/model/wifi-phy.cc Tue Aug 18 16:46:10 2015 -0700
@@ -95,12 +95,12 @@
"Trace source simulating a wifi device in monitor mode "
"sniffing all received frames",
MakeTraceSourceAccessor (&WifiPhy::m_phyMonitorSniffRxTrace),
- "ns3::WifiPhy::MonitorSnifferRxCallback")
+ "ns3::WifiPhy::MonitorSnifferRxTracedCallback")
.AddTraceSource ("MonitorSnifferTx",
"Trace source simulating the capability of a wifi device "
"in monitor mode to sniff all frames being transmitted",
MakeTraceSourceAccessor (&WifiPhy::m_phyMonitorSniffTxTrace),
- "ns3::WifiPhy::MonitorSnifferTxCallback")
+ "ns3::WifiPhy::MonitorSnifferTxTracedCallback")
;
return tid;
}
--- a/src/wifi/model/wifi-phy.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wifi/model/wifi-phy.h Tue Aug 18 16:46:10 2015 -0700
@@ -1039,10 +1039,14 @@
* \param aMpdu the type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU)
* and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)
* \param signalNoise signal power and noise power in dBm
+ * \todo WifiTxVector should be passed by const reference because
+ * of its size.
*/
- typedef void (* MonitorSnifferRxCallback)(Ptr<const Packet> packet, uint16_t channelFreqMhz,
- uint16_t channelNumber, uint32_t rate, WifiPreamble preamble,
- WifiTxVector txVector, struct mpduInfo aMpdu, struct signalNoiseDbm signalNoise);
+ typedef void (* MonitorSnifferRxCallback)
+ (Ptr<const Packet> packet, uint16_t channelFreqMhz,
+ uint16_t channelNumber, uint32_t rate, WifiPreamble preamble,
+ WifiTxVector txVector, struct mpduInfo aMpdu,
+ struct signalNoiseDbm signalNoise);
/**
* Public method used to fire a MonitorSniffer trace for a wifi packet being transmitted.
@@ -1076,10 +1080,13 @@
* \param txVector the TXVECTOR that holds tx parameters
* \param aMpdu the type of the packet (0 is not A-MPDU, 1 is a MPDU that is part of an A-MPDU and 2 is the last MPDU in an A-MPDU)
* and the A-MPDU reference number (must be a different value for each A-MPDU but the same for each subframe within one A-MPDU)
+ * \todo WifiTxVector should be passed by const reference because
+ * of its size.
*/
- typedef void (* MonitorSnifferTxCallback)(const Ptr<const Packet> packet, uint16_t channelFreqMhz,
- uint16_t channelNumber, uint32_t rate, WifiPreamble preamble,
- WifiTxVector txVector, struct mpduInfo aMpdu);
+ typedef void (* MonitorSnifferTxCallback)
+ (const Ptr<const Packet> packet, uint16_t channelFreqMhz,
+ uint16_t channelNumber, uint32_t rate, WifiPreamble preamble,
+ WifiTxVector txVector, struct mpduInfo aMpdu);
/**
* Assign a fixed random variable stream number to the random variables
@@ -1214,8 +1221,12 @@
* ieee80211_input_monitor()
*
* \see class CallBackTraceSource
+ * \todo WifiTxVector and signalNoiseDbm should be be passed as
+ * const references because of their sizes.
*/
- TracedCallback<Ptr<const Packet>, uint16_t, uint16_t, uint32_t, WifiPreamble, WifiTxVector, struct mpduInfo, struct signalNoiseDbm> m_phyMonitorSniffRxTrace;
+ TracedCallback<Ptr<const Packet>, uint16_t, uint16_t, uint32_t,
+ WifiPreamble, WifiTxVector,
+ struct mpduInfo, struct signalNoiseDbm> m_phyMonitorSniffRxTrace;
/**
* A trace source that emulates a wifi device in monitor mode
@@ -1226,8 +1237,12 @@
* ieee80211_input_monitor()
*
* \see class CallBackTraceSource
+ * \todo WifiTxVector should be passed by const reference because
+ * of its size.
*/
- TracedCallback<Ptr<const Packet>, uint16_t, uint16_t, uint32_t, WifiPreamble, WifiTxVector, struct mpduInfo> m_phyMonitorSniffTxTrace;
+ TracedCallback<Ptr<const Packet>, uint16_t, uint16_t, uint32_t,
+ WifiPreamble, WifiTxVector,
+ struct mpduInfo> m_phyMonitorSniffTxTrace;
uint32_t m_totalAmpduNumSymbols; //!< Number of symbols previously transmitted for the MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU
uint32_t m_totalAmpduSize; //!< Total size of the previously transmitted MPDUs in an A-MPDU, used for the computation of the number of symbols needed for the last MPDU in the A-MPDU
--- a/src/wifi/model/wifi-remote-station-manager.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wifi/model/wifi-remote-station-manager.h Tue Aug 18 16:46:10 2015 -0700
@@ -589,6 +589,25 @@
*/
uint32_t GetNumberOfTransmitAntennas (void);
+ /**
+ * TracedCallback signature for power change events.
+ *
+ * \param [in] power The new power.
+ * \param [in] address The remote station MAC address.
+ */
+ typedef void (*PowerChangeTracedCallback)
+ (uint8_t power, Mac48Address remoteAddress);
+
+ /**
+ * TracedCallback signature for rate change events.
+ *
+ * \param [in] rate The new rate.
+ * \param [in] address The remote station MAC address.
+ */
+ typedef void (*RateChangeTracedCallback)
+ (uint32_t rate, Mac48Address remoteAddress);
+
+
protected:
virtual void DoDispose (void);
--- a/src/wimax/model/simple-ofdm-wimax-phy.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wimax/model/simple-ofdm-wimax-phy.cc Tue Aug 18 16:46:10 2015 -0700
@@ -94,7 +94,7 @@
.AddTraceSource ("Rx", "Receive trace",
MakeTraceSourceAccessor (&SimpleOfdmWimaxPhy::m_traceRx),
- "ns3::PacketBurst::Traced::Ptr")
+ "ns3::PacketBurst::TracedCallback")
.AddTraceSource ("Tx", "Transmit trace",
MakeTraceSourceAccessor (&SimpleOfdmWimaxPhy::m_traceTx),
"ns3::PacketBurst::TracedCallback")
--- a/src/wimax/model/simple-ofdm-wimax-phy.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wimax/model/simple-ofdm-wimax-phy.h Tue Aug 18 16:46:10 2015 -0700
@@ -273,6 +273,8 @@
* the medium.
*
* \see class CallBackTraceSource
+ * \deprecated The non-const \c Ptr<PacketBurst> argument is deprecated
+ * and will be changed to \c Ptrc<PacketBurst> in a future release.
*/
TracedCallback <Ptr<PacketBurst > > m_phyTxBeginTrace;
@@ -281,6 +283,8 @@
* the medium.
*
* \see class CallBackTraceSource
+ * \deprecated The non-const \c Ptr<PacketBurst> argument is deprecated
+ * and will be changed to \c Ptrc<PacketBurst> in a future release.
*/
TracedCallback<Ptr<PacketBurst > > m_phyTxEndTrace;
@@ -289,6 +293,8 @@
* to transmit it.
*
* \see class CallBackTraceSource
+ * \deprecated The non-const \c Ptr<PacketBurst> argument is deprecated
+ * and will be changed to \c Ptrc<PacketBurst> in a future release.
*/
TracedCallback<Ptr<PacketBurst > > m_phyTxDropTrace;
@@ -297,6 +303,8 @@
* the medium.
*
* \see class CallBackTraceSource
+ * \deprecated The non-const \c Ptr<PacketBurst> argument is deprecated
+ * and will be changed to \c Ptrc<PacketBurst> in a future release.
*/
TracedCallback<Ptr<PacketBurst > > m_phyRxBeginTrace;
@@ -305,6 +313,8 @@
* the medium.
*
* \see class CallBackTraceSource
+ * \deprecated The non-const \c Ptr<PacketBurst> argument is deprecated
+ * and will be changed to \c Ptrc<PacketBurst> in a future release.
*/
TracedCallback<Ptr<PacketBurst > > m_phyRxEndTrace;
@@ -312,6 +322,8 @@
* The trace source fired when the phy layer drops a packet it has received.
*
* \see class CallBackTraceSource
+ * \deprecated The non-const \c Ptr<PacketBurst> argument is deprecated
+ * and will be changed to \c Ptrc<PacketBurst> in a future release.
*/
TracedCallback<Ptr<PacketBurst > > m_phyRxDropTrace;
--- a/src/wimax/model/ss-net-device.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wimax/model/ss-net-device.cc Tue Aug 18 16:46:10 2015 -0700
@@ -915,7 +915,7 @@
}
else if (GetInitialRangingConnection () != 0 && cid == GetInitialRangingConnection ()->GetCid () && !fragmentation)
{
- m_traceSSRx (packet, GetMacAddress (), &cid);
+ m_traceSSRx (packet, GetMacAddress (), cid);
packet->RemoveHeader (msgType);
switch (msgType.GetType ())
{
@@ -934,7 +934,7 @@
}
else if (m_basicConnection != 0 && cid == m_basicConnection->GetCid () && !fragmentation)
{
- m_traceSSRx (packet, GetMacAddress (), &cid);
+ m_traceSSRx (packet, GetMacAddress (), cid);
packet->RemoveHeader (msgType);
switch (msgType.GetType ())
{
@@ -953,7 +953,7 @@
}
else if (m_primaryConnection != 0 && cid == m_primaryConnection->GetCid () && !fragmentation)
{
- m_traceSSRx (packet, GetMacAddress (), &cid);
+ m_traceSSRx (packet, GetMacAddress (), cid);
packet->RemoveHeader (msgType);
switch (msgType.GetType ())
{
@@ -1043,7 +1043,7 @@
}
else if (cid.IsMulticast ())
{
- m_traceSSRx (packet, GetMacAddress (), &cid);
+ m_traceSSRx (packet, GetMacAddress (), cid);
ForwardUp (packet, m_baseStationId, GetMacAddress ()); // source shall be BS's address or sender SS's?
}
else if (IsPromisc ())
--- a/src/wimax/model/ss-net-device.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wimax/model/ss-net-device.h Tue Aug 18 16:46:10 2015 -0700
@@ -350,8 +350,10 @@
Ptr<SsServiceFlowManager> m_serviceFlowManager;
Ptr<IpcsClassifier> m_classifier;
- TracedCallback<Ptr<const Packet>, Mac48Address, Cid*> m_traceSSRx;
- TracedCallback<Ptr<const PacketBurst>, Mac48Address, Cid*, WimaxPhy::ModulationType> m_traceSSTx;
+ TracedCallback<Ptr<const Packet>, Mac48Address, const Cid &> m_traceSSRx;
+ /** \todo Remove: this TracedCallback is never invoked. */
+ TracedCallback<Ptr<const PacketBurst>, Mac48Address, const Cid &,
+ WimaxPhy::ModulationType> m_traceSSTx;
/**
* The trace source fired when packets come into the "top" of the device
--- a/src/wimax/model/wimax-net-device.cc Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wimax/model/wimax-net-device.cc Tue Aug 18 16:46:10 2015 -0700
@@ -126,12 +126,12 @@
.AddTraceSource ("Rx",
"Receive trace",
MakeTraceSourceAccessor (&WimaxNetDevice::m_traceRx),
- "ns3::Packet::TracedCallback")
+ "ns3::WimaxNetDevice::TxRxTracedCallback")
.AddTraceSource ("Tx",
"Transmit trace",
MakeTraceSourceAccessor (&WimaxNetDevice::m_traceTx),
- "ns3::Packet::TracedCallback");
+ "ns3::WimaxNetDevice::TxRxTracedCallback");
return tid;
}
--- a/src/wimax/model/wimax-net-device.h Tue Aug 18 16:34:50 2015 -0700
+++ b/src/wimax/model/wimax-net-device.h Tue Aug 18 16:46:10 2015 -0700
@@ -170,7 +170,7 @@
*/
void SetBandwidthManager (Ptr<BandwidthManager> bandwidthManager);
- /*
+ /**
* \brief Creates the initial ranging and broadcast connections
*/
void CreateDefaultConnections (void);
@@ -219,8 +219,34 @@
NetDevice::PromiscReceiveCallback GetPromiscReceiveCallback (void);
virtual bool SupportsSendFrom (void) const;
- TracedCallback<Ptr<const Packet>, const Mac48Address&> m_traceRx;
- TracedCallback<Ptr<const Packet>, const Mac48Address&> m_traceTx;
+ /**
+ * TracedCallback signature for packet and Mac48Address.
+ *
+ * \param [in] packet The packet.
+ * \param [in] mac The Mac48Address.
+ * \deprecated The `const Mac48Address &` argument is deprecated
+ * and will be changed to \c Mac48Address in a future release.
+ * The TracedCallback signature will then match \c Packet::Mac48Address
+ * and this typedef can be removed.
+ */
+ typedef void (* TxRxTracedCallback)
+ (Ptr<const Packet> packet, const Mac48Address & mac);
+ /**
+ * \deprecated The `const Mac48Address &` argument is deprecated
+ * and will be changed to \c Mac48Address in a future release.
+ * The TracedCallback signature will then match \c Packet::Mac48Address
+ * and this typedef can be removed.
+ * \todo This member variable should be private.
+ */
+ TracedCallback<Ptr<const Packet>, const Mac48Address &> m_traceRx;
+ /**
+ * \deprecated The `const Mac48Address &` argument is deprecated
+ * and will be changed to \c Mac48Address in a future release.
+ * The TracedCallback signature will then match \c Packet::Mac48Address
+ * and this typedef can be removed.
+ * \todo This member variable should be private.
+ */
+ TracedCallback<Ptr<const Packet>, const Mac48Address &> m_traceTx;
virtual void DoDispose (void);
virtual Address GetMulticast (Ipv6Address addr) const;