12 #define PCPP_END_OF_TEXT_BASED_PROTOCOL_HEADER ""
14 class TextBasedProtocolMessage;
71 return m_IsEndOfHeaderField;
75 HeaderField(
const std::string& name,
const std::string& value,
char nameValueSeparator,
76 bool spacesAllowedBetweenNameAndValue);
78 bool spacesAllowedBetweenNameAndValue);
80 char* getData()
const;
83 void initNewField(
const std::string& name,
const std::string& value);
86 uint8_t* m_NewFieldData;
88 int m_NameOffsetInMessage;
89 size_t m_FieldNameSize;
90 int m_ValueOffsetInMessage;
91 size_t m_FieldValueSize;
94 bool m_IsEndOfHeaderField;
95 char m_NameValueSeparator;
96 bool m_SpacesAllowedBetweenNameAndValue;
133 if (prevField !=
nullptr)
134 return prevField->getNextField();
164 const std::string& fieldValue);
173 const std::string& fieldValue);
253 virtual char getHeaderFieldNameValueSeparator()
const = 0;
254 virtual bool spacesAllowedBetweenHeaderFieldNameAndValue()
const = 0;
261 void validateFieldsOffset(
int offset)
const;
266 std::multimap<std::string, HeaderField*> m_FieldNameToFieldMap;
Definition: TextBasedProtocol.h:105
bool isHeaderComplete() const
void setFieldsOffset(int fieldsOffset)
Sets the base offset of the fields in the message.
size_t getHeaderLen() const override
HeaderField * getFieldByName(std::string fieldName, int index=0) const
bool removeField(HeaderField *fieldToRemove)
void parseNextLayer() override
Currently set only PayloadLayer for the rest of the data.
void shiftFieldsOffset(HeaderField *fromField, int numOfBytesToShift)
Shifts the fields offset of all headers after a specified header field by a specified number of bytes...
HeaderField * getFirstField() const
Definition: TextBasedProtocol.h:122
virtual HeaderField * insertField(std::string prevFieldName, const std::string &fieldName, const std::string &fieldValue)
void shiftFieldsOffset(int numOfBytesToShift)
Shifts the fields offset by a specified number of bytes.
HeaderField * getNextField(HeaderField *prevField) const
Definition: TextBasedProtocol.h:131
bool removeField(std::string fieldName, int index=0)
void computeCalculateFields() override
Does nothing for this class.
virtual HeaderField * insertField(HeaderField *prevField, const std::string &fieldName, const std::string &fieldValue)
virtual HeaderField * insertField(HeaderField *prevField, const HeaderField &newField)
virtual HeaderField * addField(const std::string &fieldName, const std::string &fieldValue)
int getFieldCount() const
virtual HeaderField * addField(const HeaderField &newField)
HeaderField * addEndOfHeader()
uint8_t ProtocolType
Definition: ProtocolType.h:35
The main namespace for the PcapPlusPlus lib.
Definition: AssertionUtils.h:19