-// Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// $Id$
+//
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
std::fill(begin(),end(),0u);
}
-prefix_ senf::MACAddress::MACAddress(NoInit_t)
+prefix_ senf::MACAddress::MACAddress(senf::NoInit_t)
{}
+prefix_ senf::MACAddress::MACAddress(boost::uint64_t v)
+{
+ (*this)[0] = boost::uint8_t( v>>40 );
+ (*this)[1] = boost::uint8_t( v>>32 );
+ (*this)[2] = boost::uint8_t( v>>24 );
+ (*this)[3] = boost::uint8_t( v>>16 );
+ (*this)[4] = boost::uint8_t( v>> 8 );
+ (*this)[5] = boost::uint8_t( v );
+}
+
prefix_ bool senf::MACAddress::local()
const
{
return (*this)[0] & 0x02;
}
-prefix_ bool senf::MACAddress::group()
+prefix_ bool senf::MACAddress::multicast()
const
{
return (*this)[0] & 0x01;
(boost::uint64_t( (*this)[5] ) );
}
+prefix_ boost::uint64_t senf::MACAddress::uint64()
+ const
+{
+ return
+ (boost::uint64_t( (*this)[0] ) << 40) |
+ (boost::uint64_t( (*this)[1] ) << 32) |
+ (boost::uint64_t( (*this)[2] ) << 24) |
+ (boost::uint64_t( (*this)[3] ) << 16) |
+ (boost::uint64_t( (*this)[4] ) << 8) |
+ (boost::uint64_t( (*this)[5] ) );
+}
+
///////////////////////////////cci.e///////////////////////////////////////
#undef prefix_