summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Parser/PayloadParser.h')
-rw-r--r--Swiften/Parser/PayloadParser.h29
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