4 #include <initializer_list>
49 explicit MacAddress(
const std::array<uint8_t, 6>& addr) : m_Address(addr)
61 typename = std::enable_if_t<std::is_convertible<T, std::string>::value && !std::is_array<T>::value>>
81 MacAddress(uint8_t firstOctet, uint8_t secondOctet, uint8_t thirdOctet, uint8_t fourthOctet, uint8_t fifthOctet,
83 : m_Address{ firstOctet, secondOctet, thirdOctet, fourthOctet, fifthOctet, sixthOctet }
92 if (octets.size() != m_Address.size())
94 throw std::invalid_argument(
"Invalid initializer list size, should be 6");
96 std::copy(octets.begin(), octets.end(), std::begin(m_Address));
104 return m_Address == other.m_Address;
121 if (octets.size() !=
sizeof(m_Address))
123 throw std::invalid_argument(
"Invalid initializer list size, should be 6");
126 std::copy(octets.begin(), octets.end(), m_Address.begin());
134 return m_Address.data();
178 size_t copyTo(uint8_t* buffer,
size_t size)
const;
195 std::array<uint8_t, 6> m_Address{};
200 inline MacAddress
operator""_mac(
const char* addrString,
size_t size)
202 return MacAddress(std::string(addrString, size));
206 inline std::ostream& operator<<(std::ostream& oss,
const pcpp::MacAddress& macAddress)
Definition: MacAddress.h:24
MacAddress(const char(&addr)[N])
Definition: MacAddress.h:71
MacAddress & operator=(std::initializer_list< uint8_t > octets)
Definition: MacAddress.h:119
MacAddress(const T &addr)
Definition: MacAddress.h:62
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:81
MacAddress(const uint8_t addr[6])
Definition: MacAddress.h:36
std::array< uint8_t, 6 > toByteArray() const
Definition: MacAddress.h:142
static const 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:190
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:102
MacAddress(std::initializer_list< uint8_t > octets)
Definition: MacAddress.h:90
static const MacAddress Broadcast
A static value representing a broadcast MAC address, meaning address of value "ff:ff:ff:ff:ff:ff".
Definition: MacAddress.h:192
void copyTo(uint8_t arr[6]) const
Definition: MacAddress.h:165
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:132
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:153
std::string toString() const
bool operator!=(const MacAddress &other) const
Definition: MacAddress.h:110
The main namespace for the PcapPlusPlus lib.
Definition: AssertionUtils.h:19
@ PCPP_DEPRECATED
Deprecated typo, use OsiModelSessionLayer instead.
Definition: ProtocolType.h:437