4 #include <initializer_list>
49 explicit MacAddress(
const std::array<uint8_t, 6>& addr) : m_Address(addr)
60 template <typename T, typename = std::enable_if_t<std::is_convertible<T, std::string>::value>>
71 MacAddress(uint8_t firstOctet, uint8_t secondOctet, uint8_t thirdOctet, uint8_t fourthOctet, uint8_t fifthOctet,
73 : m_Address{ firstOctet, secondOctet, thirdOctet, fourthOctet, fifthOctet, sixthOctet }
82 if (octets.size() != m_Address.size())
84 throw std::invalid_argument(
"Invalid initializer list size, should be 6");
86 std::copy(octets.begin(), octets.end(), std::begin(m_Address));
94 return m_Address == other.m_Address;
111 if (octets.size() !=
sizeof(m_Address))
113 throw std::invalid_argument(
"Invalid initializer list size, should be 6");
116 std::copy(octets.begin(), octets.end(), m_Address.begin());
124 return m_Address.data();
142 PCPP_DEPRECATED(
"Use copyToNewBuffer instead.")
168 size_t copyTo(uint8_t* buffer,
size_t size)
const;
185 std::array<uint8_t, 6> m_Address{};
188 inline std::ostream& operator<<(std::ostream& oss,
const pcpp::MacAddress& macAddress)
Definition: MacAddress.h:24
MacAddress & operator=(std::initializer_list< uint8_t > octets)
Definition: MacAddress.h:109
MacAddress(const T &addr)
Definition: MacAddress.h:61
static MacAddress Zero
A static value representing a zero value of MAC address, meaning address of value "00:00:00:00:00:00"...
Definition: MacAddress.h:180
MacAddress(const std::string &addr)
MacAddress(uint8_t firstOctet, uint8_t secondOctet, uint8_t thirdOctet, uint8_t fourthOctet, uint8_t fifthOctet, uint8_t sixthOctet)
Definition: MacAddress.h:71
MacAddress(const uint8_t addr[6])
Definition: MacAddress.h:36
std::array< uint8_t, 6 > toByteArray() const
Definition: MacAddress.h:132
static MacAddress Broadcast
A static value representing a broadcast MAC address, meaning address of value "ff:ff:ff:ff:ff:ff".
Definition: MacAddress.h:182
MacAddress(const std::array< uint8_t, 6 > &addr)
Definition: MacAddress.h:49
MacAddress(const uint8_t *addr, size_t size)
A constructor that creates an instance of the class out of a byte array of 6 bytes.
bool operator==(const MacAddress &other) const
Definition: MacAddress.h:92
MacAddress(std::initializer_list< uint8_t > octets)
Definition: MacAddress.h:80
void copyTo(uint8_t arr[6]) const
Definition: MacAddress.h:155
size_t copyTo(uint8_t *buffer, size_t size) const
Copies the address value to a user-provided buffer.
const uint8_t * getRawData() const
Definition: MacAddress.h:122
bool copyToNewBuffer(uint8_t **buffer, size_t &size) const
Allocates a new buffer and copies the address value to it. The user is responsible for deallocating t...
void copyTo(uint8_t **arr) const
Definition: MacAddress.h:143
std::string toString() const
bool operator!=(const MacAddress &other) const
Definition: MacAddress.h:100
The main namespace for the PcapPlusPlus lib.