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 | 
 Swift
 Swift