/* */ #include "MetalinkParserStateMachine.h" #include "MetalinkParserController.h" #include "InitialMetalinkParserState.h" #include "MetalinkMetalinkParserState.h" #include "FilesMetalinkParserState.h" #include "FileMetalinkParserState.h" #include "SizeMetalinkParserState.h" #include "VersionMetalinkParserState.h" #include "LanguageMetalinkParserState.h" #include "OSMetalinkParserState.h" #include "VerificationMetalinkParserState.h" #include "HashMetalinkParserState.h" #include "PiecesMetalinkParserState.h" #include "PieceHashMetalinkParserState.h" #include "ResourcesMetalinkParserState.h" #include "URLMetalinkParserState.h" #include "FinMetalinkParserState.h" #include "SkipTagMetalinkParserState.h" #include "Metalinker.h" MetalinkParserState* MetalinkParserStateMachine::_initialState = new InitialMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_metalinkState = new MetalinkMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_filesState = new FilesMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_fileState = new FileMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_sizeState = new SizeMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_versionState = new VersionMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_languageState = new LanguageMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_osState = new OSMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_verificationState = new VerificationMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_hashState = new HashMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_piecesState = new PiecesMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_pieceHashState = new PieceHashMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_resourcesState = new ResourcesMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_urlState = new URLMetalinkParserState(); MetalinkParserState* MetalinkParserStateMachine::_finState = new FinMetalinkParserState(); MetalinkParserStateMachine::MetalinkParserStateMachine(): _ctrl(new MetalinkParserController()), _state(_initialState), _skipTagState(0) {} MetalinkParserStateMachine::~MetalinkParserStateMachine() { delete _skipTagState; } void MetalinkParserStateMachine::setMetalinkState() { _state = _metalinkState; } void MetalinkParserStateMachine::setFilesState() { _state = _filesState; } void MetalinkParserStateMachine::setFileState() { _state = _fileState; } void MetalinkParserStateMachine::setSizeState() { _state = _sizeState; } void MetalinkParserStateMachine::setVersionState() { _state = _versionState; } void MetalinkParserStateMachine::setLanguageState() { _state = _languageState; } void MetalinkParserStateMachine::setOSState() { _state = _osState; } void MetalinkParserStateMachine::setVerificationState() { _state = _verificationState; } void MetalinkParserStateMachine::setHashState() { _state = _hashState; } void MetalinkParserStateMachine::setPiecesState() { _state = _piecesState; } void MetalinkParserStateMachine::setPieceHashState() { _state = _pieceHashState; } void MetalinkParserStateMachine::setResourcesState() { _state = _resourcesState; } void MetalinkParserStateMachine::setURLState() { _state = _urlState; } void MetalinkParserStateMachine::setFinState() { _state = _finState; } void MetalinkParserStateMachine::setSkipTagState(MetalinkParserState* prevSate) { _state = new SkipTagMetalinkParserState(prevSate); } void MetalinkParserStateMachine::restoreSavedState() { _state = ((SkipTagMetalinkParserState*)_state)->getPreviousState(); delete _skipTagState; _skipTagState = 0; } bool MetalinkParserStateMachine::finished() const { return _state == _finState; } void MetalinkParserStateMachine::newEntryTransaction() { _ctrl->newEntryTransaction(); } void MetalinkParserStateMachine::setFileNameOfEntry(const string& filename) { _ctrl->setFileNameOfEntry(filename); } void MetalinkParserStateMachine::setFileLengthOfEntry(int64_t length) { _ctrl->setFileLengthOfEntry(length); } void MetalinkParserStateMachine::setVersionOfEntry(const string& version) { _ctrl->setVersionOfEntry(version); } void MetalinkParserStateMachine::setLanguageOfEntry(const string& language) { _ctrl->setLanguageOfEntry(language); } void MetalinkParserStateMachine::setOSOfEntry(const string& os) { _ctrl->setOSOfEntry(os); } void MetalinkParserStateMachine::setMaxConnectionsOfEntry(int32_t maxConnections) { _ctrl->setMaxConnectionsOfEntry(maxConnections); } void MetalinkParserStateMachine::commitEntryTransaction() { _ctrl->commitEntryTransaction(); } void MetalinkParserStateMachine::newResourceTransaction() { _ctrl->newResourceTransaction(); } void MetalinkParserStateMachine::setURLOfResource(const string& url) { _ctrl->setURLOfResource(url); } void MetalinkParserStateMachine::setTypeOfResource(const string& type) { _ctrl->setTypeOfResource(type); } void MetalinkParserStateMachine::setLocationOfResource(const string& location) { _ctrl->setLocationOfResource(location); } void MetalinkParserStateMachine::setPreferenceOfResource(int32_t preference) { _ctrl->setPreferenceOfResource(preference); } void MetalinkParserStateMachine::setMaxConnectionsOfResource(int32_t maxConnections) { _ctrl->setMaxConnectionsOfResource(maxConnections); } void MetalinkParserStateMachine::commitResourceTransaction() { _ctrl->commitResourceTransaction(); } void MetalinkParserStateMachine::cancelResourceTransaction() { _ctrl->cancelResourceTransaction(); } void MetalinkParserStateMachine::newChecksumTransaction() { _ctrl->newChecksumTransaction(); } void MetalinkParserStateMachine::setTypeOfChecksum(const string& type) { _ctrl->setTypeOfChecksum(type); } void MetalinkParserStateMachine::setHashOfChecksum(const string& md) { _ctrl->setHashOfChecksum(md); } void MetalinkParserStateMachine::commitChecksumTransaction() { _ctrl->commitChecksumTransaction(); } void MetalinkParserStateMachine::cancelChecksumTransaction() { _ctrl->cancelChecksumTransaction(); } void MetalinkParserStateMachine::newChunkChecksumTransaction() { _ctrl->newChunkChecksumTransaction(); } void MetalinkParserStateMachine::setLengthOfChunkChecksum(int32_t length) { _ctrl->setLengthOfChunkChecksum(length); } void MetalinkParserStateMachine::setTypeOfChunkChecksum(const string& type) { _ctrl->setTypeOfChunkChecksum(type); } void MetalinkParserStateMachine::createNewHashOfChunkChecksum(int32_t order) { _ctrl->createNewHashOfChunkChecksum(order); } void MetalinkParserStateMachine::setMessageDigestOfChunkChecksum(const string& md) { _ctrl->setMessageDigestOfChunkChecksum(md); } void MetalinkParserStateMachine::addHashOfChunkChecksum() { _ctrl->addHashOfChunkChecksum(); } void MetalinkParserStateMachine::commitChunkChecksumTransaction() { _ctrl->commitChunkChecksumTransaction(); } void MetalinkParserStateMachine::cancelChunkChecksumTransaction() { _ctrl->cancelChunkChecksumTransaction(); } void MetalinkParserStateMachine::beginElement(const string& name, const map& attrs) { _state->beginElement(this, name, attrs); } void MetalinkParserStateMachine::endElement(const string& name, const string& characters) { _state->endElement(this, name, characters); } MetalinkerHandle MetalinkParserStateMachine::getResult() const { return _ctrl->getResult(); }