diff --git a/ChangeLog b/ChangeLog index 4b25e781..6d1b2479 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2008-05-14 Tatsuhiro Tsujikawa + + Made string literals used in SAX parser static const std::string. + * src/FileMetalinkParserState.cc + * src/FileMetalinkParserState.h + * src/FilesMetalinkParserState.cc + * src/FilesMetalinkParserState.h + * src/InitialMetalinkParserState.cc + * src/InitialMetalinkParserState.h + * src/MetalinkMetalinkParserState.cc + * src/MetalinkMetalinkParserState.h + * src/PiecesMetalinkParserState.cc + * src/PiecesMetalinkParserState.h + * src/ResourcesMetalinkParserState.cc + * src/ResourcesMetalinkParserState.h + * src/VerificationMetalinkParserState.cc + * src/VerificationMetalinkParserState.h + 2008-05-14 Tatsuhiro Tsujikawa Use A2STR::SLASH_C, A2STR::DOT_C instead of "/", "." respectively. diff --git a/src/FileMetalinkParserState.cc b/src/FileMetalinkParserState.cc index 0912eb6f..2d5ebcd7 100644 --- a/src/FileMetalinkParserState.cc +++ b/src/FileMetalinkParserState.cc @@ -39,27 +39,42 @@ namespace aria2 { +const std::string FileMetalinkParserState::SIZE("size"); + +const std::string FileMetalinkParserState::METALINK_VERSION("version"); + +const std::string FileMetalinkParserState::LANGUAGE("language"); + +const std::string FileMetalinkParserState::OS("os"); + +const std::string FileMetalinkParserState::VERIFICATION("verification"); + +const std::string FileMetalinkParserState::RESOURCES("resources"); + +const std::string FileMetalinkParserState::MAXCONNECTIONS("maxconnections"); + void FileMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs) { - if(name == "size") { + if(name == FileMetalinkParserState::SIZE) { stm->setSizeState(); - } else if(name == "version") { + } else if(name == FileMetalinkParserState::METALINK_VERSION) { stm->setVersionState(); - } else if(name == "language") { + } else if(name == FileMetalinkParserState::LANGUAGE) { stm->setLanguageState(); - } else if(name == "os") { + } else if(name == FileMetalinkParserState::OS) { stm->setOSState(); #ifdef ENABLE_MESSAGE_DIGEST - } else if(name == "verification") { + } else if(name == FileMetalinkParserState::VERIFICATION) { stm->setVerificationState(); #endif // ENABLE_MESSAGE_DIGEST - } else if(name == "resources") { + } else if(name == FileMetalinkParserState::RESOURCES) { stm->setResourcesState(); int maxConnections; { - std::map::const_iterator itr = attrs.find("maxconnections"); + std::map::const_iterator itr = + attrs.find(FileMetalinkParserState::MAXCONNECTIONS); if(itr == attrs.end()) { maxConnections = -1; } else { diff --git a/src/FileMetalinkParserState.h b/src/FileMetalinkParserState.h index 55d87957..6dcef878 100644 --- a/src/FileMetalinkParserState.h +++ b/src/FileMetalinkParserState.h @@ -41,6 +41,21 @@ namespace aria2 { class FileMetalinkParserState:public MetalinkParserState { +private: + static const std::string SIZE; + + // VERSION is not allowed here because it is defined in macro. + static const std::string METALINK_VERSION; + + static const std::string LANGUAGE; + + static const std::string OS; + + static const std::string VERIFICATION; + + static const std::string RESOURCES; + + static const std::string MAXCONNECTIONS; public: void beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs); diff --git a/src/FilesMetalinkParserState.cc b/src/FilesMetalinkParserState.cc index a9a69f22..d8649938 100644 --- a/src/FilesMetalinkParserState.cc +++ b/src/FilesMetalinkParserState.cc @@ -37,13 +37,18 @@ namespace aria2 { +const std::string FilesMetalinkParserState::FILE("file"); + +const std::string FilesMetalinkParserState::NAME("name"); + void FilesMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs) { - if(name == "file") { + if(name == FilesMetalinkParserState::FILE) { stm->setFileState(); - std::map::const_iterator itr = attrs.find("name"); + std::map::const_iterator itr = + attrs.find(FilesMetalinkParserState::NAME); if(itr != attrs.end()) { stm->newEntryTransaction(); stm->setFileNameOfEntry((*itr).second); diff --git a/src/FilesMetalinkParserState.h b/src/FilesMetalinkParserState.h index 8cb6b61e..e6af4a7f 100644 --- a/src/FilesMetalinkParserState.h +++ b/src/FilesMetalinkParserState.h @@ -41,6 +41,10 @@ namespace aria2 { class FilesMetalinkParserState:public MetalinkParserState { +private: + static const std::string FILE; + + static const std::string NAME; public: void beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs); diff --git a/src/InitialMetalinkParserState.cc b/src/InitialMetalinkParserState.cc index 247476a9..c67e61ae 100644 --- a/src/InitialMetalinkParserState.cc +++ b/src/InitialMetalinkParserState.cc @@ -37,11 +37,13 @@ namespace aria2 { +const std::string InitialMetalinkParserState::METALINK("metalink"); + void InitialMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs) { - if(name == "metalink") { + if(name == InitialMetalinkParserState::METALINK) { stm->setMetalinkState(); } else { stm->setSkipTagState(this); diff --git a/src/InitialMetalinkParserState.h b/src/InitialMetalinkParserState.h index d2318742..ea64bff2 100644 --- a/src/InitialMetalinkParserState.h +++ b/src/InitialMetalinkParserState.h @@ -41,6 +41,8 @@ namespace aria2 { class InitialMetalinkParserState:public MetalinkParserState { +private: + static const std::string METALINK; public: void beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs); diff --git a/src/MetalinkMetalinkParserState.cc b/src/MetalinkMetalinkParserState.cc index d2220c4b..22f10b50 100644 --- a/src/MetalinkMetalinkParserState.cc +++ b/src/MetalinkMetalinkParserState.cc @@ -37,11 +37,13 @@ namespace aria2 { +const std::string MetalinkMetalinkParserState::FILES("files"); + void MetalinkMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs) { - if(name == "files") { + if(name == MetalinkMetalinkParserState::FILES) { stm->setFilesState(); } else { stm->setSkipTagState(this); diff --git a/src/MetalinkMetalinkParserState.h b/src/MetalinkMetalinkParserState.h index c5cc7fbc..5a6015d8 100644 --- a/src/MetalinkMetalinkParserState.h +++ b/src/MetalinkMetalinkParserState.h @@ -41,6 +41,8 @@ namespace aria2 { class MetalinkMetalinkParserState:public MetalinkParserState { +private: + static const std::string FILES; public: void beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs); diff --git a/src/PiecesMetalinkParserState.cc b/src/PiecesMetalinkParserState.cc index 8d589f5e..df757e58 100644 --- a/src/PiecesMetalinkParserState.cc +++ b/src/PiecesMetalinkParserState.cc @@ -39,13 +39,18 @@ namespace aria2 { +const std::string PiecesMetalinkParserState::HASH("hash"); + +const std::string PiecesMetalinkParserState::PIECE("piece"); + void PiecesMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs) { - if(name == "hash") { + if(name == PiecesMetalinkParserState::HASH) { stm->setPieceHashState(); - std::map::const_iterator itr = attrs.find("piece"); + std::map::const_iterator itr = + attrs.find(PiecesMetalinkParserState::PIECE); if(itr == attrs.end()) { stm->cancelChunkChecksumTransaction(); } else { diff --git a/src/PiecesMetalinkParserState.h b/src/PiecesMetalinkParserState.h index 0ad10110..e85264a5 100644 --- a/src/PiecesMetalinkParserState.h +++ b/src/PiecesMetalinkParserState.h @@ -41,6 +41,10 @@ namespace aria2 { class PiecesMetalinkParserState:public MetalinkParserState { +private: + static const std::string HASH; + + static const std::string PIECE; public: void beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs); diff --git a/src/ResourcesMetalinkParserState.cc b/src/ResourcesMetalinkParserState.cc index 6ac10c74..11a85c67 100644 --- a/src/ResourcesMetalinkParserState.cc +++ b/src/ResourcesMetalinkParserState.cc @@ -39,15 +39,26 @@ namespace aria2 { +const std::string ResourcesMetalinkParserState::URL("url"); + +const std::string ResourcesMetalinkParserState::TYPE("type"); + +const std::string ResourcesMetalinkParserState::LOCATION("location"); + +const std::string ResourcesMetalinkParserState::PREFERENCE("preference"); + +const std::string ResourcesMetalinkParserState::MAXCONNECTIONS("maxconnections"); + void ResourcesMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs) { - if(name == "url") { + if(name == ResourcesMetalinkParserState::URL) { stm->setURLState(); std::string type; { - std::map::const_iterator itr = attrs.find("type"); + std::map::const_iterator itr = + attrs.find(ResourcesMetalinkParserState::TYPE); if(itr == attrs.end()) { return; } else { @@ -56,14 +67,16 @@ void ResourcesMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, } std::string location; { - std::map::const_iterator itr = attrs.find("location"); + std::map::const_iterator itr = + attrs.find(ResourcesMetalinkParserState::LOCATION); if(itr != attrs.end()) { location = Util::toUpper((*itr).second); } } int preference; { - std::map::const_iterator itr = attrs.find("preference"); + std::map::const_iterator itr = + attrs.find(ResourcesMetalinkParserState::PREFERENCE); if(itr == attrs.end()) { preference = 0; } else { @@ -76,7 +89,8 @@ void ResourcesMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, } int maxConnections; { - std::map::const_iterator itr = attrs.find("maxconnections"); + std::map::const_iterator itr = + attrs.find(ResourcesMetalinkParserState::MAXCONNECTIONS); if(itr == attrs.end()) { maxConnections = -1; } else { diff --git a/src/ResourcesMetalinkParserState.h b/src/ResourcesMetalinkParserState.h index 4333d497..44265b2c 100644 --- a/src/ResourcesMetalinkParserState.h +++ b/src/ResourcesMetalinkParserState.h @@ -41,6 +41,16 @@ namespace aria2 { class ResourcesMetalinkParserState:public MetalinkParserState { +private: + static const std::string URL; + + static const std::string TYPE; + + static const std::string LOCATION; + + static const std::string PREFERENCE; + + static const std::string MAXCONNECTIONS; public: void beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs); diff --git a/src/VerificationMetalinkParserState.cc b/src/VerificationMetalinkParserState.cc index ea4b5b6f..fdf99384 100644 --- a/src/VerificationMetalinkParserState.cc +++ b/src/VerificationMetalinkParserState.cc @@ -39,13 +39,22 @@ namespace aria2 { +const std::string VerificationMetalinkParserState::HASH("hash"); + +const std::string VerificationMetalinkParserState::TYPE("type"); + +const std::string VerificationMetalinkParserState::PIECES("pieces"); + +const std::string VerificationMetalinkParserState::LENGTH("length"); + void VerificationMetalinkParserState::beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs) { - if(name == "hash") { + if(name == VerificationMetalinkParserState::HASH) { stm->setHashState(); - std::map::const_iterator itr = attrs.find("type"); + std::map::const_iterator itr = + attrs.find(VerificationMetalinkParserState::TYPE); if(itr == attrs.end()) { return; } else { @@ -53,12 +62,13 @@ void VerificationMetalinkParserState::beginElement(MetalinkParserStateMachine* s stm->newChecksumTransaction(); stm->setTypeOfChecksum(type); } - } else if(name == "pieces") { + } else if(name == VerificationMetalinkParserState::PIECES) { stm->setPiecesState(); try { size_t length; { - std::map::const_iterator itr = attrs.find("length"); + std::map::const_iterator itr = + attrs.find(VerificationMetalinkParserState::LENGTH); if(itr == attrs.end()) { return; } else { @@ -67,7 +77,8 @@ void VerificationMetalinkParserState::beginElement(MetalinkParserStateMachine* s } std::string type; { - std::map::const_iterator itr = attrs.find("type"); + std::map::const_iterator itr = + attrs.find(VerificationMetalinkParserState::TYPE); if(itr == attrs.end()) { return; } else { diff --git a/src/VerificationMetalinkParserState.h b/src/VerificationMetalinkParserState.h index 97808b91..87be143c 100644 --- a/src/VerificationMetalinkParserState.h +++ b/src/VerificationMetalinkParserState.h @@ -41,6 +41,14 @@ namespace aria2 { class VerificationMetalinkParserState:public MetalinkParserState { +private: + static const std::string HASH; + + static const std::string TYPE; + + static const std::string PIECES; + + static const std::string LENGTH; public: void beginElement(MetalinkParserStateMachine* stm, const std::string& name, const std::map& attrs);