From 3880a5f71b1ffde3779b3cad3519e150341bfda7 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 25 Feb 2010 14:40:18 +0000 Subject: 2010-02-25 Tatsuhiro Tsujikawa Added Metalink4 support. Currently, name attribute of metalink::metaurl is ignored and multi-file torrent cannot be used with Metalink4. * doc/aria2c.1.txt * src/DownloadHandlerConstants.cc * src/ExpatMetalinkProcessor.cc * src/Makefile.am * src/Metalink2RequestGroup.cc * src/MetalinkEntry.cc * src/MetalinkEntry.h * src/MetalinkParserController.cc * src/MetalinkParserController.h * src/MetalinkParserState.h * src/MetalinkParserStateImpl.cc * src/MetalinkParserStateImpl.h * src/MetalinkParserStateMachine.cc * src/MetalinkParserStateMachine.h * src/MetalinkParserStateV3Impl.cc * src/MetalinkParserStateV3Impl.h * src/MetalinkParserStateV4Impl.cc * src/MetalinkParserStateV4Impl.h * src/MetalinkResource.cc * src/MetalinkResource.h * src/Metalinker.cc * src/RequestGroup.cc * src/RequestGroup.h * src/XML2SAXMetalinkProcessor.cc * src/messageDigest.cc * src/util.cc * src/util.h * test/Makefile.am * test/MetalinkEntryTest.cc * test/MetalinkParserControllerTest.cc * test/MetalinkProcessorTest.cc * test/MetalinkerTest.cc * test/UtilTest.cc * test/metalink4-attrs.xml * test/metalink4-dirtraversal.xml * test/metalink4.xml --- src/MetalinkParserState.h | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'src/MetalinkParserState.h') diff --git a/src/MetalinkParserState.h b/src/MetalinkParserState.h index ecb0b285..5c62593d 100644 --- a/src/MetalinkParserState.h +++ b/src/MetalinkParserState.h @@ -36,13 +36,21 @@ #define _D_METALINK_PARSER_STATE_H_ #include "common.h" -#include + +#include #include namespace aria2 { class MetalinkParserStateMachine; +struct XmlAttr { + std::string localname; + std::string prefix; + std::string nsUri; + std::string value; +}; + class MetalinkParserState { public: @@ -50,14 +58,22 @@ public: virtual void beginElement (MetalinkParserStateMachine* stm, - const std::string& name, - const std::map& attrs) = 0; + const std::string& localname, + const std::string& prefix, + const std::string& nsUri, + const std::vector& attrs) {} virtual void endElement (MetalinkParserStateMachine* stm, - const std::string& name, const std::string& characters) = 0; + const std::string& localname, + const std::string& prefix, + const std::string& nsUri, + const std::string& characters) {} - virtual bool needsCharactersBuffering() const = 0; + virtual bool needsCharactersBuffering() const + { + return false; + } }; } // namespace aria2 -- cgit