31 lines
749 B
C++
31 lines
749 B
C++
#ifndef SPONGE_LIBSPONGE_ETHERNET_FRAME_HH
|
|
#define SPONGE_LIBSPONGE_ETHERNET_FRAME_HH
|
|
|
|
#include "buffer.hh"
|
|
#include "ethernet_header.hh"
|
|
|
|
//! \brief Ethernet frame
|
|
class EthernetFrame {
|
|
private:
|
|
EthernetHeader _header{};
|
|
BufferList _payload{};
|
|
|
|
public:
|
|
//! \brief Parse the frame from a string
|
|
ParseResult parse(const Buffer buffer);
|
|
|
|
//! \brief Serialize the frame to a string
|
|
BufferList serialize() const;
|
|
|
|
//! \name Accessors
|
|
//!@{
|
|
const EthernetHeader &header() const { return _header; }
|
|
EthernetHeader &header() { return _header; }
|
|
|
|
const BufferList &payload() const { return _payload; }
|
|
BufferList &payload() { return _payload; }
|
|
//!@}
|
|
};
|
|
|
|
#endif // SPONGE_LIBSPONGE_ETHERNET_FRAME_HH
|