diff options
Diffstat (limited to 'source/Utility/StringExtractorGDBRemote.h')
-rw-r--r-- | source/Utility/StringExtractorGDBRemote.h | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/source/Utility/StringExtractorGDBRemote.h b/source/Utility/StringExtractorGDBRemote.h index 7e2f1e7c6962..ade0edbbb7ae 100644 --- a/source/Utility/StringExtractorGDBRemote.h +++ b/source/Utility/StringExtractorGDBRemote.h @@ -20,18 +20,23 @@ class StringExtractorGDBRemote : public StringExtractor { public: + typedef bool (*ResponseValidatorCallback)(void * baton, const StringExtractorGDBRemote &response); StringExtractorGDBRemote() : - StringExtractor () + StringExtractor(), + m_validator(nullptr) { } StringExtractorGDBRemote(const char *cstr) : - StringExtractor (cstr) + StringExtractor(cstr), + m_validator(nullptr) { } + StringExtractorGDBRemote(const StringExtractorGDBRemote& rhs) : - StringExtractor (rhs) + StringExtractor(rhs), + m_validator(rhs.m_validator) { } @@ -39,6 +44,24 @@ public: { } + bool + ValidateResponse() const; + + void + CopyResponseValidator(const StringExtractorGDBRemote& rhs); + + void + SetResponseValidator(ResponseValidatorCallback callback, void *baton); + + void + SetResponseValidatorToOKErrorNotSupported(); + + void + SetResponseValidatorToASCIIHexBytes(); + + void + SetResponseValidatorToJSON(); + enum ServerPacketType { eServerPacketType_nack = 0, @@ -192,6 +215,9 @@ public: size_t GetEscapedBinaryData (std::string &str); +protected: + ResponseValidatorCallback m_validator; + void *m_validator_baton; }; #endif // utility_StringExtractorGDBRemote_h_ |