add implicit conversion to Ipv4Address
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 30 Jul 2007 14:20:10 +0200
changeset 1206 7534ef3604a7
parent 1205 6cee0d34bda6
child 1207 a9f3610bbffa
add implicit conversion to Ipv4Address
src/node/ipv4-address.cc
src/node/ipv4-address.h
--- a/src/node/ipv4-address.cc	Mon Jul 30 14:17:12 2007 +0200
+++ b/src/node/ipv4-address.cc	Mon Jul 30 14:20:10 2007 +0200
@@ -211,6 +211,15 @@
 {
   return address.CheckCompatible (GetType (), 4);
 }
+Ipv4Address::operator Address ()
+{
+  return ConvertTo ();
+}
+Ipv4Address::Ipv4Address (const Address &address)
+{
+  *this = ConvertFrom (address);
+}
+
 Address 
 Ipv4Address::ConvertTo (void) const
 {
--- a/src/node/ipv4-address.h	Mon Jul 30 14:17:12 2007 +0200
+++ b/src/node/ipv4-address.h	Mon Jul 30 14:20:10 2007 +0200
@@ -105,14 +105,16 @@
   Ipv4Address CombineMask (Ipv4Mask const &mask) const;
 
   static bool IsMatchingType (const Address &address);
-  Address ConvertTo (void) const;
-  static Ipv4Address ConvertFrom (const Address &address);
+  operator Address ();
+  Ipv4Address (const Address &address);
 
   static Ipv4Address GetZero (void);
   static Ipv4Address GetAny (void);
   static Ipv4Address GetBroadcast (void);
   static Ipv4Address GetLoopback (void);
 private:
+  Address ConvertTo (void) const;
+  static Ipv4Address ConvertFrom (const Address &address);
   static uint8_t GetType (void);
   uint32_t m_address;
 };