diff options
Diffstat (limited to 'Swiften/Parser/PayloadParser.h')
-rw-r--r-- | Swiften/Parser/PayloadParser.h | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/Swiften/Parser/PayloadParser.h b/Swiften/Parser/PayloadParser.h index 8a0fc35..a5a9025 100644 --- a/Swiften/Parser/PayloadParser.h +++ b/Swiften/Parser/PayloadParser.h @@ -4,8 +4,7 @@ * See Documentation/Licenses/GPLv3.txt for more information. */ -#ifndef SWIFTEN_PAYLOADPARSER_H -#define SWIFTEN_PAYLOADPARSER_H +#pragma once #include <boost/shared_ptr.hpp> #include "Swiften/Parser/AttributeMap.h" @@ -15,16 +14,36 @@ namespace Swift { class String; + /** + * A parser for XMPP stanza payloads. + * + * The parser is event driven: handleStartElement, handleEndElement, and handleCharacterData will be called + * when the parser detects start and end of XML elements, or character data. + * After the data for the given top-level element is processed, getPayload() will be called to retrieve the + * payload. + */ class PayloadParser { public: virtual ~PayloadParser(); + /** + * Handle the start of an XML element. + */ virtual void handleStartElement(const String& element, const String& ns, const AttributeMap& attributes) = 0; + + /** + * Handle the end of an XML element. + */ virtual void handleEndElement(const String& element, const String& ns) = 0; + + /** + * Handle character data. + */ virtual void handleCharacterData(const String& data) = 0; - virtual boost::shared_ptr<Payload> getPayload() const = 0; + /** + * Retrieve a pointer to the payload. + */ + virtual Payload::ref getPayload() const = 0; }; } - -#endif |