diff --git a/src/node/address.cc b/src/node/address.cc
index 0cc37b1a2..5228da710 100644
--- a/src/node/address.cc
+++ b/src/node/address.cc
@@ -107,6 +107,16 @@ Address::Register (void)
return type;
}
+Address::Address (PValue value)
+{
+ *this = ClassValueHelperExtractFrom
(value);
+}
+Address::operator PValue () const
+{
+ return ClassValueHelperConvertTo (this);
+}
+
+
bool operator == (const Address &a, const Address &b)
{
NS_ASSERT (a.m_type == b.m_type ||
@@ -159,6 +169,12 @@ std::ostream& operator<< (std::ostream& os, const Address & address)
return os;
}
+std::istream& operator>> (std::istream& is, Address & address)
+{
+ // XXX: need to be able to parse this.
+ return is;
+}
+
} // namespace ns3
diff --git a/src/node/address.h b/src/node/address.h
index aedc940d4..911bda30d 100644
--- a/src/node/address.h
+++ b/src/node/address.h
@@ -3,6 +3,8 @@
#include
#include
+#include "ns3/value.h"
+#include "ns3/class-value-helper.h"
namespace ns3 {
@@ -151,6 +153,9 @@ public:
* \returns a new type id.
*/
static uint8_t Register (void);
+
+ Address (PValue value);
+ operator PValue () const;
private:
friend bool operator == (const Address &a, const Address &b);
friend bool operator < (const Address &a, const Address &b);
@@ -165,6 +170,40 @@ bool operator == (const Address &a, const Address &b);
bool operator != (const Address &a, const Address &b);
bool operator < (const Address &a, const Address &b);
std::ostream& operator<< (std::ostream& os, const Address & address);
+std::istream& operator>> (std::istream& is, Address & address);
+
+class AddressValue : public Value {};
+class AddressParamSpec : public ParamSpec {};
+
+template
+Ptr
+MakeAddressParamSpec (T1 a1, Address initialValue);
+
+template
+Ptr
+MakeAddressParamSpec (T1 a1, T2 a2, Address initialValue);
+
+} // namespace ns3
+
+namespace ns3 {
+
+template
+Ptr
+MakeAddressParamSpec (T1 a1, Address initialValue)
+{
+ return MakeClassValueHelperParamSpec
+ (a1, initialValue);
+}
+
+template
+Ptr
+MakeAddressParamSpec (T1 a1, T2 a2, Address initialValue)
+{
+ return MakeClassValueHelperParamSpec
+ (a1, a2, initialValue);
+}
+
+
} // namespace ns3