--- a/src/node/mac48-address.cc Wed Feb 13 23:37:46 2008 +0100
+++ b/src/node/mac48-address.cc Thu Feb 14 00:36:14 2008 +0100
@@ -149,6 +149,17 @@
static Mac48Address broadcast = Mac48Address ("ff:ff:ff:ff:ff:ff");
return broadcast;
}
+
+Mac48Address::Mac48Address (PValue value)
+{
+ *this = ClassValueHelperExtractFrom<Mac48Address,Mac48AddressValue> (value);
+}
+Mac48Address::operator PValue () const
+{
+ return ClassValueHelperConvertTo<Mac48Address,Mac48AddressValue> (this);
+}
+
+
bool operator == (const Mac48Address &a, const Mac48Address &b)
{
return memcmp (a.m_address, b.m_address, 6) == 0;
@@ -197,5 +208,11 @@
return os;
}
+std::istream& operator>> (std::istream& is, const Mac48Address & address)
+{
+ // XXX !
+ return is;
+}
+
} // namespace ns3
--- a/src/node/mac48-address.h Wed Feb 13 23:37:46 2008 +0100
+++ b/src/node/mac48-address.h Thu Feb 14 00:36:14 2008 +0100
@@ -22,6 +22,8 @@
#include <stdint.h>
#include <ostream>
+#include "ns3/value.h"
+#include "ns3/class-value-helper.h"
namespace ns3 {
@@ -93,6 +95,9 @@
* \returns the broadcast address
*/
static Mac48Address GetBroadcast (void);
+
+ Mac48Address (PValue value);
+ operator PValue () const;
private:
/**
* \returns a new Address instance
@@ -111,6 +116,36 @@
bool operator != (const Mac48Address &a, const Mac48Address &b);
bool operator < (const Mac48Address &a, const Mac48Address &b);
std::ostream& operator<< (std::ostream& os, const Mac48Address & address);
+std::istream& operator>> (std::istream& is, const Mac48Address & address);
+
+class Mac48AddressValue : public Value {};
+class Mac48AddressParamSpec : public ParamSpec {};
+
+template <typename T1>
+Ptr<ParamSpec>
+MakeMac48AddressParamSpec (T1 a1, Mac48Address address);
+
+template <typename T1, typename T2>
+Ptr<ParamSpec>
+MakeMac48AddressParamSpec (T1 a1, T2 a2, Mac48Address address);
+
+} // namespace ns3
+
+namespace ns3 {
+
+template <typename T1>
+Ptr<ParamSpec>
+MakeMac48AddressParamSpec (T1 a1, Mac48Address address)
+{
+ return MakeClassValueHelperParamSpec<Mac48Address,Mac48AddressValue,Mac48AddressParamSpec> (a1, address);
+}
+
+template <typename T1, typename T2>
+Ptr<ParamSpec>
+MakeMac48AddressParamSpec (T1 a1, T2 a2, Mac48Address address)
+{
+ return MakeClassValueHelperParamSpec<Mac48Address,Mac48AddressValue,Mac48AddressParamSpec> (a1, a2, address);
+}
} // namespace ns3