// Custom includes
#include <iomanip>
+#include <string>
+#include <sstream>
#include <boost/tokenizer.hpp>
#include <boost/io/ios_state.hpp>
#include <boost/range.hpp>
senf::MACAddress const senf::MACAddress::Broadcast = senf::MACAddress(0xFFFFFFFFFFFFull);
senf::MACAddress const senf::MACAddress::None;
+prefix_ std::string senf::MACAddress::toString() const {
+ std::ostringstream tmp;
+ tmp << (*this);
+ return tmp.str();
+}
+
///////////////////////////////////////////////////////////////////////////
// namespace members
INet6Address(0x2001u,0xDB8u,0x1u,0x0u,0x001Au,0x2BFFu,0xFE3Cu,0x3D5Fu).id())
\endcode
- Since MACAddress is based on \c boost::array, you can access the raw data bytes of the
+ Since MACAddress is based on \c boo Ziel, aber nur ein paar davon sind standardkomform.
+
+Der aktuelle C++ Standard unterstützt drei verschiedene Möglichkeiten eine Zahl in einen String umzuwandeln. Diese Möglichkeiten sind:
+
+ * sprintf
+ * std::strstream
+ * std::stringstream
+ st::array, you can access the raw data bytes of the
address using \c begin(), \c end() or \c operator[]:
\code
MACAddress mac = ...;
boost::uint32_t nic() const; ///< Return last 3 bytes of the address
boost::uint64_t eui64() const; ///< Build EUI-64 from the MAC address
+
+ std::string toString() const; ///< Return string representation of MAC address like 12:34:56:78:90:ab
};
BOOST_AUTO_UNIT_TEST(macAddress)
{
- senf::MACAddress mac (senf::MACAddress::from_string("A1-b2-C3:d4:E5:f6"));
+ std::string test ("A1-b2-C3:d4:E5:f6");
+ senf::MACAddress mac (senf::MACAddress::from_string(test));
BOOST_CHECK_EQUAL( mac[0], 0xA1u );
BOOST_CHECK_EQUAL( mac[1], 0xB2u );
std::stringstream str;
str << mac;
BOOST_CHECK_EQUAL( str.str(), "a1:b2:c3:d4:e5:f6" );
-
+ BOOST_CHECK_EQUAL (mac.toString(), "a1:b2:c3:d4:e5:f6");
+
BOOST_CHECK( ! mac.local() );
BOOST_CHECK( mac.multicast() );
BOOST_CHECK( ! mac.broadcast() );