PcapPlusPlus  Next
PayloadLayer.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Layer.h"
4 
6 
9 namespace pcpp
10 {
13  class PayloadLayer : public Layer
14  {
15  public:
21  PayloadLayer(uint8_t* data, size_t dataLen, Layer* prevLayer, Packet* packet)
22  : Layer(data, dataLen, prevLayer, packet, GenericPayload)
23  {}
24 
28  PayloadLayer(const uint8_t* data, size_t dataLen);
29 
36  explicit PayloadLayer(const std::string& payloadAsHexStream);
37 
38  ~PayloadLayer() override = default;
39 
42  uint8_t* getPayload() const
43  {
44  return m_Data;
45  }
46 
49  size_t getPayloadLen() const
50  {
51  return m_DataLen;
52  }
53 
54  // implement abstract methods
55 
57  void parseNextLayer() override
58  {}
59 
61  size_t getHeaderLen() const override
62  {
63  return m_DataLen;
64  }
65 
67  void computeCalculateFields() override
68  {}
69 
74  void setPayload(const uint8_t* newPayload, size_t newPayloadLength);
75 
76  std::string toString() const override;
77 
79  {
81  }
82  };
83 } // namespace pcpp
Definition: Layer.h:60
Definition: Packet.h:22
Definition: PayloadLayer.h:14
uint8_t * getPayload() const
Definition: PayloadLayer.h:42
OsiModelLayer getOsiModelLayer() const override
Definition: PayloadLayer.h:78
void parseNextLayer() override
Does nothing for this layer (PayloadLayer is always last)
Definition: PayloadLayer.h:57
void computeCalculateFields() override
Does nothing for this layer.
Definition: PayloadLayer.h:67
PayloadLayer(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: PayloadLayer.h:21
PayloadLayer(const std::string &payloadAsHexStream)
PayloadLayer(const uint8_t *data, size_t dataLen)
void setPayload(const uint8_t *newPayload, size_t newPayloadLength)
size_t getPayloadLen() const
Definition: PayloadLayer.h:49
std::string toString() const override
size_t getHeaderLen() const override
Definition: PayloadLayer.h:61
The main namespace for the PcapPlusPlus lib.
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:225
@ OsiModelApplicationLayer
Application layer (layer 7)
Definition: ProtocolType.h:239
const ProtocolType GenericPayload
Generic payload (no specific protocol)
Definition: ProtocolType.h:110