summaryrefslogtreecommitdiffstats
path: root/src/HTTPServer/EnvelopeParser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/HTTPServer/EnvelopeParser.h')
-rw-r--r--src/HTTPServer/EnvelopeParser.h30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/HTTPServer/EnvelopeParser.h b/src/HTTPServer/EnvelopeParser.h
index 6430fbebf..e96d80abe 100644
--- a/src/HTTPServer/EnvelopeParser.h
+++ b/src/HTTPServer/EnvelopeParser.h
@@ -19,7 +19,10 @@ public:
class cCallbacks
{
public:
- /// Called when a full header line is parsed
+ // Force a virtual destructor in descendants:
+ virtual ~cCallbacks() {}
+
+ /** Called when a full header line is parsed */
virtual void OnHeaderLine(const AString & a_Key, const AString & a_Value) = 0;
} ;
@@ -27,40 +30,41 @@ public:
cEnvelopeParser(cCallbacks & a_Callbacks);
/** Parses the incoming data.
- Returns the number of bytes consumed from the input. The bytes not consumed are not part of the envelope header
+ Returns the number of bytes consumed from the input. The bytes not consumed are not part of the envelope header.
+ Returns AString::npos on error
*/
- int Parse(const char * a_Data, int a_Size);
+ size_t Parse(const char * a_Data, size_t a_Size);
- /// Makes the parser forget everything parsed so far, so that it can be reused for parsing another datastream
+ /** Makes the parser forget everything parsed so far, so that it can be reused for parsing another datastream */
void Reset(void);
- /// Returns true if more input is expected for the envelope header
+ /** Returns true if more input is expected for the envelope header */
bool IsInHeaders(void) const { return m_IsInHeaders; }
- /// Sets the IsInHeaders flag; used by cMultipartParser to simplify the parser initial conditions
+ /** Sets the IsInHeaders flag; used by cMultipartParser to simplify the parser initial conditions */
void SetIsInHeaders(bool a_IsInHeaders) { m_IsInHeaders = a_IsInHeaders; }
public:
- /// Callbacks to call for the various events
+ /** Callbacks to call for the various events */
cCallbacks & m_Callbacks;
- /// Set to true while the parser is still parsing the envelope headers. Once set to true, the parser will not consume any more data.
+ /** Set to true while the parser is still parsing the envelope headers. Once set to true, the parser will not consume any more data. */
bool m_IsInHeaders;
- /// Buffer for the incoming data until it is parsed
+ /** Buffer for the incoming data until it is parsed */
AString m_IncomingData;
- /// Holds the last parsed key; used for line-wrapped values
+ /** Holds the last parsed key; used for line-wrapped values */
AString m_LastKey;
- /// Holds the last parsed value; used for line-wrapped values
+ /** Holds the last parsed value; used for line-wrapped values */
AString m_LastValue;
- /// Notifies the callback of the key/value stored in m_LastKey/m_LastValue, then erases them
+ /** Notifies the callback of the key/value stored in m_LastKey/m_LastValue, then erases them */
void NotifyLast(void);
- /// Parses one line of header data. Returns true if successful
+ /** Parses one line of header data. Returns true if successful */
bool ParseLine(const char * a_Data, size_t a_Size);
} ;