CS144Lab/libsponge/tcp_helpers/ethernet_frame.hh
2021-10-19 19:12:33 -07:00

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