remove implicit conversion from Address to Eui48Address, to Ipv4Address and to InetSocketAddress
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Mon, 30 Jul 2007 14:57:49 +0200
changeset 1207 a9f3610bbffa
parent 1206 7534ef3604a7
child 1208 ad83a13631c1
remove implicit conversion from Address to Eui48Address, to Ipv4Address and to InetSocketAddress
src/devices/csma-cd/csma-cd-net-device.cc
src/internet-node/udp-socket.cc
src/node/eui48-address.h
src/node/inet-socket-address.cc
src/node/inet-socket-address.h
src/node/ipv4-address.cc
src/node/ipv4-address.h
--- a/src/devices/csma-cd/csma-cd-net-device.cc	Mon Jul 30 14:20:10 2007 +0200
+++ b/src/devices/csma-cd/csma-cd-net-device.cc	Mon Jul 30 14:57:49 2007 +0200
@@ -160,7 +160,7 @@
     }
   EthernetHeader header (false);
   EthernetTrailer trailer;
-  Eui48Address source = GetAddress ();
+  Eui48Address source = Eui48Address::ConvertFrom (GetAddress ());
   header.SetSource(source);
   header.SetDestination(dest);
 
@@ -201,10 +201,8 @@
   trailer.CheckFcs(p);
   p.RemoveHeader(header);
 
-  Eui48Address broadcast = GetBroadcast ();
-  Eui48Address destination = GetAddress ();
-  if ((header.GetDestination() != broadcast) &&
-      (header.GetDestination() != destination))
+  if ((header.GetDestination() != GetBroadcast ()) &&
+      (header.GetDestination() != GetAddress ()))
     {
       return false;
     }
@@ -252,8 +250,8 @@
   if (!IsSendEnabled())
     return false;
 
-  Eui48Address address = dest;
-  AddHeader(p, address, protocolNumber);
+  Eui48Address destination = Eui48Address::ConvertFrom (dest);
+  AddHeader(p, destination, protocolNumber);
 
   // Place the packet to be sent on the send queue
   if (m_queue->Enqueue(p) == false )
--- a/src/internet-node/udp-socket.cc	Mon Jul 30 14:20:10 2007 +0200
+++ b/src/internet-node/udp-socket.cc	Mon Jul 30 14:57:49 2007 +0200
@@ -95,7 +95,7 @@
     {
       return ERROR_INVAL;
     }
-  InetSocketAddress transport = address;
+  InetSocketAddress transport = InetSocketAddress::ConvertFrom (address);
   Ipv4Address ipv4 = transport.GetIpv4 ();
   uint16_t port = transport.GetPort ();
   if (ipv4 == Ipv4Address::GetAny () && port == 0)
@@ -151,7 +151,7 @@
                      ns3::Callback<void, Ptr<Socket> > connectionFailed,
                      ns3::Callback<void, Ptr<Socket> > halfClose)
 {
-  InetSocketAddress transport = address;
+  InetSocketAddress transport = InetSocketAddress::ConvertFrom (address);
   m_defaultAddress = transport.GetIpv4 ();
   m_defaultPort = transport.GetPort ();
   if (!connectionSucceeded.IsNull ())
@@ -194,7 +194,7 @@
 UdpSocket::DoSendPacketTo (const Packet &p, const Address &address,
                            ns3::Callback<void, Ptr<Socket>, uint32_t> dataSent)
 {
-  InetSocketAddress transport = address;
+  InetSocketAddress transport = InetSocketAddress::ConvertFrom (address);
   Ipv4Address ipv4 = transport.GetIpv4 ();
   uint16_t port = transport.GetPort ();
   return DoSendPacketTo (p, ipv4, port, dataSent);
@@ -245,7 +245,7 @@
     {
       p = Packet (buffer, size);
     }
-  InetSocketAddress transport = address;
+  InetSocketAddress transport = InetSocketAddress::ConvertFrom (address);
   Ipv4Address ipv4 = transport.GetIpv4 ();
   uint16_t port = transport.GetPort ();
   return DoSendPacketTo (p, ipv4, port, dataSent);
--- a/src/node/eui48-address.h	Mon Jul 30 14:20:10 2007 +0200
+++ b/src/node/eui48-address.h	Mon Jul 30 14:57:49 2007 +0200
@@ -45,11 +45,13 @@
   operator Address ();
   /**
    * \param address a polymorphic address
-   *
-   * Convert a polymorphic address to an Eui48Address instance.
-   * The conversion performs a type check.
+   * \returns a new Eui48Address from the polymorphic address
+   * 
+   * This function performs a type check and asserts if the
+   * type of the input address is not compatible with an
+   * Eui48Address.
    */
-  Eui48Address (const Address &address);
+  static Eui48Address ConvertFrom (const Address &address);
   /**
    * \returns true if the address matches, false otherwise.
    */
@@ -65,7 +67,6 @@
    * Convert an instance of this class to a polymorphic Address instance.
    */
   Address ConvertTo (void) const;
-  static Eui48Address ConvertFrom (const Address &address);
   static uint8_t GetType (void);
   uint8_t m_address[6];
 };
--- a/src/node/inet-socket-address.cc	Mon Jul 30 14:20:10 2007 +0200
+++ b/src/node/inet-socket-address.cc	Mon Jul 30 14:57:49 2007 +0200
@@ -56,11 +56,6 @@
   return ConvertTo ();
 }
 
-InetSocketAddress::InetSocketAddress (const Address &address)
-{
-  *this = ConvertFrom (address);
-}
-
 Address 
 InetSocketAddress::ConvertTo (void) const
 {
--- a/src/node/inet-socket-address.h	Mon Jul 30 14:20:10 2007 +0200
+++ b/src/node/inet-socket-address.h	Mon Jul 30 14:57:49 2007 +0200
@@ -78,13 +78,13 @@
   /**
    * \param address the Address instance to convert from.
    *
-   * Construct an InetSocketAddress which corresponds to the input
+   * Returns an InetSocketAddress which corresponds to the input
    * Address
    */
-  InetSocketAddress (const Address &address);
+  static InetSocketAddress ConvertFrom (const Address &address);
 private:
   Address ConvertTo (void) const;
-  static InetSocketAddress ConvertFrom (const Address &address);
+
   static uint8_t GetType (void);
   Ipv4Address m_ipv4;
   uint16_t m_port;
--- a/src/node/ipv4-address.cc	Mon Jul 30 14:20:10 2007 +0200
+++ b/src/node/ipv4-address.cc	Mon Jul 30 14:57:49 2007 +0200
@@ -215,10 +215,6 @@
 {
   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:20:10 2007 +0200
+++ b/src/node/ipv4-address.h	Mon Jul 30 14:57:49 2007 +0200
@@ -106,7 +106,7 @@
 
   static bool IsMatchingType (const Address &address);
   operator Address ();
-  Ipv4Address (const Address &address);
+  static Ipv4Address ConvertFrom (const Address &address);
 
   static Ipv4Address GetZero (void);
   static Ipv4Address GetAny (void);
@@ -114,7 +114,6 @@
   static Ipv4Address GetLoopback (void);
 private:
   Address ConvertTo (void) const;
-  static Ipv4Address ConvertFrom (const Address &address);
   static uint8_t GetType (void);
   uint32_t m_address;
 };