Skip to content
Snippets Groups Projects
Commit 9b5621f0 authored by dw6's avatar dw6
Browse files

adding MACAddress::toString()

parent c23e1ae9
No related branches found
No related tags found
No related merge requests found
...@@ -28,6 +28,8 @@ ...@@ -28,6 +28,8 @@
// Custom includes // Custom includes
#include <iomanip> #include <iomanip>
#include <string>
#include <sstream>
#include <boost/tokenizer.hpp> #include <boost/tokenizer.hpp>
#include <boost/io/ios_state.hpp> #include <boost/io/ios_state.hpp>
#include <boost/range.hpp> #include <boost/range.hpp>
...@@ -105,6 +107,12 @@ prefix_ senf::MACAddress senf::MACAddress::from_eui64(boost::uint64_t v) ...@@ -105,6 +107,12 @@ prefix_ senf::MACAddress senf::MACAddress::from_eui64(boost::uint64_t v)
senf::MACAddress const senf::MACAddress::Broadcast = senf::MACAddress(0xFFFFFFFFFFFFull); senf::MACAddress const senf::MACAddress::Broadcast = senf::MACAddress(0xFFFFFFFFFFFFull);
senf::MACAddress const senf::MACAddress::None; senf::MACAddress const senf::MACAddress::None;
prefix_ std::string senf::MACAddress::toString() const {
std::ostringstream tmp;
tmp << (*this);
return tmp.str();
}
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// namespace members // namespace members
......
...@@ -67,7 +67,14 @@ namespace senf { ...@@ -67,7 +67,14 @@ namespace senf {
INet6Address(0x2001u,0xDB8u,0x1u,0x0u,0x001Au,0x2BFFu,0xFE3Cu,0x3D5Fu).id()) INet6Address(0x2001u,0xDB8u,0x1u,0x0u,0x001Au,0x2BFFu,0xFE3Cu,0x3D5Fu).id())
\endcode \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[]: address using \c begin(), \c end() or \c operator[]:
\code \code
MACAddress mac = ...; MACAddress mac = ...;
...@@ -128,6 +135,8 @@ namespace senf { ...@@ -128,6 +135,8 @@ namespace senf {
boost::uint32_t nic() const; ///< Return last 3 bytes of the address boost::uint32_t nic() const; ///< Return last 3 bytes of the address
boost::uint64_t eui64() const; ///< Build EUI-64 from the MAC 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
}; };
......
...@@ -39,7 +39,8 @@ ...@@ -39,7 +39,8 @@
BOOST_AUTO_UNIT_TEST(macAddress) 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[0], 0xA1u );
BOOST_CHECK_EQUAL( mac[1], 0xB2u ); BOOST_CHECK_EQUAL( mac[1], 0xB2u );
...@@ -51,7 +52,8 @@ BOOST_AUTO_UNIT_TEST(macAddress) ...@@ -51,7 +52,8 @@ BOOST_AUTO_UNIT_TEST(macAddress)
std::stringstream str; std::stringstream str;
str << mac; str << mac;
BOOST_CHECK_EQUAL( str.str(), "a1:b2:c3:d4:e5:f6" ); 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.local() );
BOOST_CHECK( mac.multicast() ); BOOST_CHECK( mac.multicast() );
BOOST_CHECK( ! mac.broadcast() ); BOOST_CHECK( ! mac.broadcast() );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment