diff options
Diffstat (limited to 'src/MetalinkParserController.cc')
| -rw-r--r-- | src/MetalinkParserController.cc | 49 |
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 |
