summaryrefslogtreecommitdiff
path: root/src/MetalinkParserStateMachine.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-07-12 13:35:35 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-07-12 13:35:35 +0000
commit5472c8033e3a36267a1ca5f12ade08ce0296c42b (patch)
tree8f785e508b6238a0eea7daf98bc3d45c00dc180c /src/MetalinkParserStateMachine.cc
parent6796e1c80593284ec1534136d977c83bbd8f3186 (diff)
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added the ability to retrieve signature from Metalink file. A retrieved signature is stored in Signature class and it is held by DownloadContext class. Note that aria2 doesn't verify signature. * src/DownloadContext.cc * src/DownloadContext.h * src/Makefile.am * src/Makefile.in * src/Metalink2RequestGroup.cc * src/MetalinkEntry.cc * src/MetalinkEntry.h * src/MetalinkParserController.cc * src/MetalinkParserController.h * src/MetalinkParserStateMachine.cc * src/MetalinkParserStateMachine.h * src/Signature.cc * src/Signature.h * src/SignatureMetalinkParserState.cc * src/SignatureMetalinkParserState.h * src/VerificationMetalinkParserState.cc * src/VerificationMetalinkParserState.h * test/Metalink2RequestGroupTest.cc * test/MetalinkParserControllerTest.cc * test/MetalinkProcessorTest.cc * test/test.xml
Diffstat (limited to 'src/MetalinkParserStateMachine.cc')
-rw-r--r--src/MetalinkParserStateMachine.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/MetalinkParserStateMachine.cc b/src/MetalinkParserStateMachine.cc
index e0d368f5..6ea028c1 100644
--- a/src/MetalinkParserStateMachine.cc
+++ b/src/MetalinkParserStateMachine.cc
@@ -46,6 +46,7 @@
#include "HashMetalinkParserState.h"
#include "PiecesMetalinkParserState.h"
#include "PieceHashMetalinkParserState.h"
+#include "SignatureMetalinkParserState.h"
#include "ResourcesMetalinkParserState.h"
#include "URLMetalinkParserState.h"
#include "FinMetalinkParserState.h"
@@ -67,6 +68,8 @@ MetalinkParserState* MetalinkParserStateMachine::_verificationState = new Verifi
MetalinkParserState* MetalinkParserStateMachine::_hashState = new HashMetalinkParserState();
MetalinkParserState* MetalinkParserStateMachine::_piecesState = new PiecesMetalinkParserState();
MetalinkParserState* MetalinkParserStateMachine::_pieceHashState = new PieceHashMetalinkParserState();
+MetalinkParserState* MetalinkParserStateMachine::_signatureState =
+ new SignatureMetalinkParserState();
MetalinkParserState* MetalinkParserStateMachine::_resourcesState = new ResourcesMetalinkParserState();
MetalinkParserState* MetalinkParserStateMachine::_urlState = new URLMetalinkParserState();
MetalinkParserState* MetalinkParserStateMachine::_finState = new FinMetalinkParserState();
@@ -136,6 +139,11 @@ void MetalinkParserStateMachine::setPieceHashState()
_state = _pieceHashState;
}
+void MetalinkParserStateMachine::setSignatureState()
+{
+ _state = _signatureState;
+}
+
void MetalinkParserStateMachine::setResourcesState()
{
_state = _resourcesState;
@@ -313,6 +321,36 @@ void MetalinkParserStateMachine::cancelChunkChecksumTransaction()
_ctrl->cancelChunkChecksumTransaction();
}
+void MetalinkParserStateMachine::newSignatureTransaction()
+{
+ _ctrl->newSignatureTransaction();
+}
+
+void MetalinkParserStateMachine::setTypeOfSignature(const std::string& type)
+{
+ _ctrl->setTypeOfSignature(type);
+}
+
+void MetalinkParserStateMachine::setFileOfSignature(const std::string& file)
+{
+ _ctrl->setFileOfSignature(file);
+}
+
+void MetalinkParserStateMachine::setBodyOfSignature(const std::string& body)
+{
+ _ctrl->setBodyOfSignature(body);
+}
+
+void MetalinkParserStateMachine::commitSignatureTransaction()
+{
+ _ctrl->commitSignatureTransaction();
+}
+
+void MetalinkParserStateMachine::cancelSignatureTransaction()
+{
+ _ctrl->cancelSignatureTransaction();
+}
+
void MetalinkParserStateMachine::beginElement(const std::string& name,
const std::map<std::string, std::string>& attrs)
{