summaryrefslogtreecommitdiff
path: root/src/MetalinkParserController.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/MetalinkParserController.cc')
-rw-r--r--src/MetalinkParserController.cc49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/MetalinkParserController.cc b/src/MetalinkParserController.cc
index 31f98625..205caf61 100644
--- a/src/MetalinkParserController.cc
+++ b/src/MetalinkParserController.cc
@@ -44,6 +44,7 @@
# include "ChunkChecksum.h"
# include "messageDigest.h"
#endif // ENABLE_MESSAGE_DIGEST
+#include "Signature.h"
#include <algorithm>
namespace aria2 {
@@ -135,6 +136,7 @@ void MetalinkParserController::commitEntryTransaction()
commitResourceTransaction();
commitChecksumTransaction();
commitChunkChecksumTransaction();
+ commitSignatureTransaction();
_metalinker->entries.push_back(_tEntry);
_tEntry.reset();
}
@@ -144,6 +146,7 @@ void MetalinkParserController::cancelEntryTransaction()
cancelResourceTransaction();
cancelChecksumTransaction();
cancelChunkChecksumTransaction();
+ cancelSignatureTransaction();
_tEntry.reset();
}
@@ -379,4 +382,50 @@ void MetalinkParserController::cancelChunkChecksumTransaction()
#endif // ENABLE_MESSAGE_DIGEST
}
+void MetalinkParserController::newSignatureTransaction()
+{
+ if(_tEntry.isNull()) {
+ return;
+ }
+ _tSignature.reset(new Signature());
+}
+
+void MetalinkParserController::setTypeOfSignature(const std::string& type)
+{
+ if(_tSignature.isNull()) {
+ return;
+ }
+ _tSignature->setType(type);
+}
+
+void MetalinkParserController::setFileOfSignature(const std::string& file)
+{
+ if(_tSignature.isNull()) {
+ return;
+ }
+ _tSignature->setFile(file);
+}
+
+void MetalinkParserController::setBodyOfSignature(const std::string& body)
+{
+ if(_tSignature.isNull()) {
+ return;
+ }
+ _tSignature->setBody(body);
+}
+
+void MetalinkParserController::commitSignatureTransaction()
+{
+ if(_tSignature.isNull()) {
+ return;
+ }
+ _tEntry->setSignature(_tSignature);
+ _tSignature.reset();
+}
+
+void MetalinkParserController::cancelSignatureTransaction()
+{
+ _tSignature.reset();
+}
+
} // namespace aria2