diff --git a/src/AbstractOptionHandler.cc b/src/AbstractOptionHandler.cc index 46ba7c7a..a0c399c5 100644 --- a/src/AbstractOptionHandler.cc +++ b/src/AbstractOptionHandler.cc @@ -61,7 +61,7 @@ AbstractOptionHandler::AbstractOptionHandler AbstractOptionHandler::~AbstractOptionHandler() {} -void AbstractOptionHandler::parse(Option& option, const std::string& arg) +void AbstractOptionHandler::parse(Option& option, const std::string& arg) const { try { parseArg(option, arg); diff --git a/src/AbstractOptionHandler.h b/src/AbstractOptionHandler.h index 296852b6..5af9cc10 100644 --- a/src/AbstractOptionHandler.h +++ b/src/AbstractOptionHandler.h @@ -54,7 +54,7 @@ protected: char shortName_; - virtual void parseArg(Option& option, const std::string& arg) = 0; + virtual void parseArg(Option& option, const std::string& arg) const = 0; public: AbstractOptionHandler(const Pref* pref, const char* description = NO_DESCRIPTION, @@ -64,7 +64,7 @@ public: virtual ~AbstractOptionHandler(); - virtual void parse(Option& option, const std::string& arg); + virtual void parse(Option& option, const std::string& arg) const; virtual bool hasTag(uint32_t tag) const; diff --git a/src/OptionHandler.h b/src/OptionHandler.h index a0f0ed8a..eb9272c2 100644 --- a/src/OptionHandler.h +++ b/src/OptionHandler.h @@ -63,7 +63,7 @@ class OptionHandler { public: virtual ~OptionHandler() {} - virtual void parse(Option& option, const std::string& arg) = 0; + virtual void parse(Option& option, const std::string& arg) const = 0; virtual std::string createPossibleValuesString() const = 0; diff --git a/src/OptionHandlerFactory.cc b/src/OptionHandlerFactory.cc index cfb47001..3d440741 100644 --- a/src/OptionHandlerFactory.cc +++ b/src/OptionHandlerFactory.cc @@ -45,17 +45,16 @@ namespace aria2 { -std::vector > -OptionHandlerFactory::createOptionHandlers() +std::vector OptionHandlerFactory::createOptionHandlers() { - std::vector > handlers; + std::vector handlers; // General Options { - SharedHandle op(new BooleanOptionHandler - (PREF_ALLOW_OVERWRITE, - TEXT_ALLOW_OVERWRITE, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ALLOW_OVERWRITE, + TEXT_ALLOW_OVERWRITE, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->addTag(TAG_FILE); op->setInitialOption(true); @@ -64,11 +63,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_ALLOW_PIECE_LENGTH_CHANGE, - TEXT_ALLOW_PIECE_LENGTH_CHANGE, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ALLOW_PIECE_LENGTH_CHANGE, + TEXT_ALLOW_PIECE_LENGTH_CHANGE, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -76,11 +75,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_ALWAYS_RESUME, - TEXT_ALWAYS_RESUME, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ALWAYS_RESUME, + TEXT_ALWAYS_RESUME, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -91,15 +90,15 @@ OptionHandlerFactory::createOptionHandlers() } #ifdef ENABLE_ASYNC_DNS { - SharedHandle op(new BooleanOptionHandler - (PREF_ASYNC_DNS, - TEXT_ASYNC_DNS, + OptionHandler* op(new BooleanOptionHandler + (PREF_ASYNC_DNS, + TEXT_ASYNC_DNS, #if defined(__ANDROID__) || defined(ANDROID) - A2_V_FALSE, + A2_V_FALSE, #else // !__ANDROID__ && !ANDROID - A2_V_TRUE, + A2_V_TRUE, #endif // !__ANDROID__ && !ANDROID - OptionHandler::OPT_ARG)); + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -108,21 +107,21 @@ OptionHandlerFactory::createOptionHandlers() } #if defined HAVE_ARES_SET_SERVERS && HAVE_ARES_ADDR_NODE { - SharedHandle op(new DefaultOptionHandler - (PREF_ASYNC_DNS_SERVER, - TEXT_ASYNC_DNS_SERVER, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_ASYNC_DNS_SERVER, + TEXT_ASYNC_DNS_SERVER, + NO_DEFAULT_VALUE)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } #endif // HAVE_ARES_SET_SERVERS && HAVE_ARES_ADDR_NODE #endif // ENABLE_ASYNC_DNS { - SharedHandle op(new BooleanOptionHandler - (PREF_AUTO_FILE_RENAMING, - TEXT_AUTO_FILE_RENAMING, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_AUTO_FILE_RENAMING, + TEXT_AUTO_FILE_RENAMING, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->addTag(TAG_FILE); op->setInitialOption(true); @@ -131,22 +130,22 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_AUTO_SAVE_INTERVAL, - TEXT_AUTO_SAVE_INTERVAL, - "60", - 0, 600)); + OptionHandler* op(new NumberOptionHandler + (PREF_AUTO_SAVE_INTERVAL, + TEXT_AUTO_SAVE_INTERVAL, + "60", + 0, 600)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } #ifdef ENABLE_MESSAGE_DIGEST { - SharedHandle op(new BooleanOptionHandler - (PREF_CHECK_INTEGRITY, - TEXT_CHECK_INTEGRITY, - A2_V_FALSE, - OptionHandler::OPT_ARG, - 'V')); + OptionHandler* op(new BooleanOptionHandler + (PREF_CHECK_INTEGRITY, + TEXT_CHECK_INTEGRITY, + A2_V_FALSE, + OptionHandler::OPT_ARG, + 'V')); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); op->addTag(TAG_METALINK); @@ -159,11 +158,11 @@ OptionHandlerFactory::createOptionHandlers() } #endif // ENABLE_MESSAGE_DIGEST { - SharedHandle op(new BooleanOptionHandler - (PREF_CONDITIONAL_GET, - TEXT_CONDITIONAL_GET, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_CONDITIONAL_GET, + TEXT_CONDITIONAL_GET, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -172,21 +171,21 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_CONF_PATH, - TEXT_CONF_PATH, - util::getHomeDir()+"/.aria2/aria2.conf", - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_CONF_PATH, + TEXT_CONF_PATH, + util::getHomeDir()+"/.aria2/aria2.conf", + PATH_TO_FILE)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_CONTINUE, - TEXT_CONTINUE, - A2_V_FALSE, - OptionHandler::OPT_ARG, - 'c')); + OptionHandler* op(new BooleanOptionHandler + (PREF_CONTINUE, + TEXT_CONTINUE, + A2_V_FALSE, + OptionHandler::OPT_ARG, + 'c')); op->addTag(TAG_BASIC); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -196,32 +195,32 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_DAEMON, - TEXT_DAEMON, - A2_V_FALSE, - OptionHandler::OPT_ARG, - 'D')); + OptionHandler* op(new BooleanOptionHandler + (PREF_DAEMON, + TEXT_DAEMON, + A2_V_FALSE, + OptionHandler::OPT_ARG, + 'D')); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_DEFERRED_INPUT, - TEXT_DEFERRED_INPUT, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_DEFERRED_INPUT, + TEXT_DEFERRED_INPUT, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_DIR, - TEXT_DIR, - File::getCurrentDir(), - PATH_TO_DIR, - OptionHandler::REQ_ARG, - 'd')); + OptionHandler* op(new DefaultOptionHandler + (PREF_DIR, + TEXT_DIR, + File::getCurrentDir(), + PATH_TO_DIR, + OptionHandler::REQ_ARG, + 'd')); op->addTag(TAG_BASIC); op->addTag(TAG_FILE); op->setInitialOption(true); @@ -230,51 +229,51 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_DISABLE_IPV6, - TEXT_DISABLE_IPV6, + OptionHandler* op(new BooleanOptionHandler + (PREF_DISABLE_IPV6, + TEXT_DISABLE_IPV6, #if defined(__MINGW32__) && !defined(__MINGW64__) - // Disable IPv6 by default for - // MinGW build. This is because - // numerous IPv6 routines are - // available from Vista. Checking - // getaddrinfo failed in - // configure. - A2_V_TRUE, + // Disable IPv6 by default for + // MinGW build. This is because + // numerous IPv6 routines are + // available from Vista. Checking + // getaddrinfo failed in + // configure. + A2_V_TRUE, #else // !defined(__MINGW32__) || defined(__MINGW64__) - A2_V_FALSE, + A2_V_FALSE, #endif // !defined(__MINGW32__) || defined(__MINGW64__) - OptionHandler::OPT_ARG)); + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_DNS_TIMEOUT, - NO_DESCRIPTION, - "30", - 1, 60)); + OptionHandler* op(new NumberOptionHandler + (PREF_DNS_TIMEOUT, + NO_DESCRIPTION, + "30", + 1, 60)); op->hide(); handlers.push_back(op); } { - SharedHandle op(new ParameterOptionHandler - (PREF_DOWNLOAD_RESULT, - TEXT_DOWNLOAD_RESULT, - A2_V_DEFAULT, - A2_V_DEFAULT, - A2_V_FULL)); + OptionHandler* op(new ParameterOptionHandler + (PREF_DOWNLOAD_RESULT, + TEXT_DOWNLOAD_RESULT, + A2_V_DEFAULT, + A2_V_DEFAULT, + A2_V_FULL)); op->addTag(TAG_ADVANCED); op->setChangeGlobalOption(true); handlers.push_back(op); } #ifdef ENABLE_ASYNC_DNS { - SharedHandle op(new BooleanOptionHandler - (PREF_ENABLE_ASYNC_DNS6, - TEXT_ENABLE_ASYNC_DNS6, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ENABLE_ASYNC_DNS6, + TEXT_ENABLE_ASYNC_DNS6, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -284,13 +283,11 @@ OptionHandlerFactory::createOptionHandlers() #endif // ENABLE_ASYNC_DNS { // TODO Deprecated - SharedHandle op - (new DeprecatedOptionHandler - (SharedHandle(new BooleanOptionHandler - (PREF_ENABLE_DIRECT_IO, - TEXT_ENABLE_DIRECT_IO, - NO_DEFAULT_VALUE, - OptionHandler::OPT_ARG)))); + OptionHandler* op(new DeprecatedOptionHandler(new BooleanOptionHandler + (PREF_ENABLE_DIRECT_IO, + TEXT_ENABLE_DIRECT_IO, + NO_DEFAULT_VALUE, + OptionHandler::OPT_ARG))); op->addTag(TAG_DEPRECATED); op->addTag(TAG_ADVANCED); op->addTag(TAG_FILE); @@ -298,11 +295,11 @@ OptionHandlerFactory::createOptionHandlers() } #ifdef HAVE_MMAP { - SharedHandle op(new BooleanOptionHandler - (PREF_ENABLE_MMAP, - TEXT_ENABLE_MMAP, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ENABLE_MMAP, + TEXT_ENABLE_MMAP, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->addTag(TAG_EXPERIMENTAL); op->setInitialOption(true); @@ -312,11 +309,11 @@ OptionHandlerFactory::createOptionHandlers() } #endif // HAVE_MMAP { - SharedHandle op(new BooleanOptionHandler - (PREF_ENABLE_RPC, - TEXT_ENABLE_RPC, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ENABLE_RPC, + TEXT_ENABLE_RPC, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_RPC); handlers.push_back(op); } @@ -336,20 +333,20 @@ OptionHandlerFactory::createOptionHandlers() #endif // HAVE_POLL V_SELECT }; - SharedHandle op(new ParameterOptionHandler - (PREF_EVENT_POLL, - TEXT_EVENT_POLL, + OptionHandler* op(new ParameterOptionHandler + (PREF_EVENT_POLL, + TEXT_EVENT_POLL, #ifdef HAVE_EPOLL - V_EPOLL, + V_EPOLL, #elif HAVE_KQUEUE - V_KQUEUE, + V_KQUEUE, #elif HAVE_PORT_ASSOCIATE - V_PORT, + V_PORT, #else - V_SELECT, + V_SELECT, #endif // !HAVE_EPOLL - std::vector - (vbegin(params), vend(params)))); + std::vector + (vbegin(params), vend(params)))); op->addTag(TAG_ADVANCED); handlers.push_back(op); } @@ -359,13 +356,13 @@ OptionHandlerFactory::createOptionHandlers() V_FALLOC #endif // HAVE_SOME_FALLOCATE }; - SharedHandle op(new ParameterOptionHandler - (PREF_FILE_ALLOCATION, - TEXT_FILE_ALLOCATION, - V_PREALLOC, - std::vector - (vbegin(params), vend(params)), - 'a')); + OptionHandler* op(new ParameterOptionHandler + (PREF_FILE_ALLOCATION, + TEXT_FILE_ALLOCATION, + V_PREALLOC, + std::vector + (vbegin(params), vend(params)), + 'a')); op->addTag(TAG_BASIC); op->addTag(TAG_FILE); op->setInitialOption(true); @@ -374,22 +371,22 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_FORCE_SEQUENTIAL, - TEXT_FORCE_SEQUENTIAL, - A2_V_FALSE, - OptionHandler::OPT_ARG, - 'Z')); + OptionHandler* op(new BooleanOptionHandler + (PREF_FORCE_SEQUENTIAL, + TEXT_FORCE_SEQUENTIAL, + A2_V_FALSE, + OptionHandler::OPT_ARG, + 'Z')); op->addTag(TAG_BASIC); handlers.push_back(op); } #ifdef ENABLE_MESSAGE_DIGEST { - SharedHandle op(new BooleanOptionHandler - (PREF_HASH_CHECK_ONLY, - TEXT_HASH_CHECK_ONLY, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_HASH_CHECK_ONLY, + TEXT_HASH_CHECK_ONLY, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->addTag(TAG_BITTORRENT); op->addTag(TAG_METALINK); @@ -402,77 +399,77 @@ OptionHandlerFactory::createOptionHandlers() } #endif // ENABLE_MESSAGE_DIGEST { - SharedHandle op(new BooleanOptionHandler - (PREF_HUMAN_READABLE, - TEXT_HUMAN_READABLE, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_HUMAN_READABLE, + TEXT_HUMAN_READABLE, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_INPUT_FILE, - TEXT_INPUT_FILE, - NO_DEFAULT_VALUE, - PATH_TO_FILE_STDIN, - OptionHandler::REQ_ARG, - 'i')); + OptionHandler* op(new DefaultOptionHandler + (PREF_INPUT_FILE, + TEXT_INPUT_FILE, + NO_DEFAULT_VALUE, + PATH_TO_FILE_STDIN, + OptionHandler::REQ_ARG, + 'i')); op->addTag(TAG_BASIC); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_INTERFACE, - TEXT_INTERFACE, - NO_DEFAULT_VALUE, - "interface, IP address, hostname", - OptionHandler::REQ_ARG)); + OptionHandler* op(new DefaultOptionHandler + (PREF_INTERFACE, + TEXT_INTERFACE, + NO_DEFAULT_VALUE, + "interface, IP address, hostname", + OptionHandler::REQ_ARG)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_LOG, - TEXT_LOG, - NO_DEFAULT_VALUE, - PATH_TO_FILE_STDOUT, - OptionHandler::REQ_ARG, - 'l')); + OptionHandler* op(new DefaultOptionHandler + (PREF_LOG, + TEXT_LOG, + NO_DEFAULT_VALUE, + PATH_TO_FILE_STDOUT, + OptionHandler::REQ_ARG, + 'l')); op->addTag(TAG_BASIC); op->setChangeGlobalOption(true); handlers.push_back(op); } { const std::string params[] = { V_DEBUG, V_INFO, V_NOTICE, V_WARN, V_ERROR }; - SharedHandle op(new ParameterOptionHandler - (PREF_LOG_LEVEL, - TEXT_LOG_LEVEL, - V_DEBUG, - std::vector - (vbegin(params), vend(params)))); + OptionHandler* op(new ParameterOptionHandler + (PREF_LOG_LEVEL, + TEXT_LOG_LEVEL, + V_DEBUG, + std::vector + (vbegin(params), vend(params)))); op->addTag(TAG_ADVANCED); op->setChangeGlobalOption(true); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_MAX_CONCURRENT_DOWNLOADS, - TEXT_MAX_CONCURRENT_DOWNLOADS, - "5", - 1, -1, - 'j')); + OptionHandler* op(new NumberOptionHandler + (PREF_MAX_CONCURRENT_DOWNLOADS, + TEXT_MAX_CONCURRENT_DOWNLOADS, + "5", + 1, -1, + 'j')); op->addTag(TAG_BASIC); op->setChangeGlobalOption(true); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_MAX_CONNECTION_PER_SERVER, - TEXT_MAX_CONNECTION_PER_SERVER, - "1", - 1, 16, - 'x')); + OptionHandler* op(new NumberOptionHandler + (PREF_MAX_CONNECTION_PER_SERVER, + TEXT_MAX_CONNECTION_PER_SERVER, + "1", + 1, 16, + 'x')); op->addTag(TAG_BASIC); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -482,11 +479,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_MAX_DOWNLOAD_LIMIT, - TEXT_MAX_DOWNLOAD_LIMIT, - "0", - 0)); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_MAX_DOWNLOAD_LIMIT, + TEXT_MAX_DOWNLOAD_LIMIT, + "0", + 0)); op->addTag(TAG_BITTORRENT); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -497,21 +494,21 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_MAX_DOWNLOAD_RESULT, - TEXT_MAX_DOWNLOAD_RESULT, - "1000", - 0)); + OptionHandler* op(new NumberOptionHandler + (PREF_MAX_DOWNLOAD_RESULT, + TEXT_MAX_DOWNLOAD_RESULT, + "1000", + 0)); op->addTag(TAG_ADVANCED); op->setChangeGlobalOption(true); handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_MAX_OVERALL_DOWNLOAD_LIMIT, - TEXT_MAX_OVERALL_DOWNLOAD_LIMIT, - "0", - 0)); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_MAX_OVERALL_DOWNLOAD_LIMIT, + TEXT_MAX_OVERALL_DOWNLOAD_LIMIT, + "0", + 0)); op->addTag(TAG_BITTORRENT); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -519,11 +516,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_MAX_RESUME_FAILURE_TRIES, - TEXT_MAX_RESUME_FAILURE_TRIES, - "0", - 0)); + OptionHandler* op(new NumberOptionHandler + (PREF_MAX_RESUME_FAILURE_TRIES, + TEXT_MAX_RESUME_FAILURE_TRIES, + "0", + 0)); op->addTag(TAG_ADVANCED); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -533,12 +530,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_MIN_SPLIT_SIZE, - TEXT_MIN_SPLIT_SIZE, - "20M", - 1024*1024, 1024*1024*1024, - 'k')); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_MIN_SPLIT_SIZE, + TEXT_MIN_SPLIT_SIZE, + "20M", + 1024*1024, 1024*1024*1024, + 'k')); op->addTag(TAG_BASIC); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -548,20 +545,20 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_NO_CONF, - TEXT_NO_CONF, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_NO_CONF, + TEXT_NO_CONF, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_NO_FILE_ALLOCATION_LIMIT, - TEXT_NO_FILE_ALLOCATION_LIMIT, - "5M", - 0)); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_NO_FILE_ALLOCATION_LIMIT, + TEXT_NO_FILE_ALLOCATION_LIMIT, + "5M", + 0)); op->addTag(TAG_ADVANCED); op->addTag(TAG_FILE); op->setInitialOption(true); @@ -570,95 +567,95 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_ON_DOWNLOAD_COMPLETE, - TEXT_ON_DOWNLOAD_COMPLETE, - NO_DEFAULT_VALUE, - PATH_TO_COMMAND)); + OptionHandler* op(new DefaultOptionHandler + (PREF_ON_DOWNLOAD_COMPLETE, + TEXT_ON_DOWNLOAD_COMPLETE, + NO_DEFAULT_VALUE, + PATH_TO_COMMAND)); op->addTag(TAG_ADVANCED); op->addTag(TAG_HOOK); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_ON_DOWNLOAD_ERROR, - TEXT_ON_DOWNLOAD_ERROR, - NO_DEFAULT_VALUE, - PATH_TO_COMMAND)); + OptionHandler* op(new DefaultOptionHandler + (PREF_ON_DOWNLOAD_ERROR, + TEXT_ON_DOWNLOAD_ERROR, + NO_DEFAULT_VALUE, + PATH_TO_COMMAND)); op->addTag(TAG_ADVANCED); op->addTag(TAG_HOOK); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_ON_DOWNLOAD_PAUSE, - TEXT_ON_DOWNLOAD_PAUSE, - NO_DEFAULT_VALUE, - PATH_TO_COMMAND)); + OptionHandler* op(new DefaultOptionHandler + (PREF_ON_DOWNLOAD_PAUSE, + TEXT_ON_DOWNLOAD_PAUSE, + NO_DEFAULT_VALUE, + PATH_TO_COMMAND)); op->addTag(TAG_ADVANCED); op->addTag(TAG_HOOK); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_ON_DOWNLOAD_START, - TEXT_ON_DOWNLOAD_START, - NO_DEFAULT_VALUE, - PATH_TO_COMMAND)); + OptionHandler* op(new DefaultOptionHandler + (PREF_ON_DOWNLOAD_START, + TEXT_ON_DOWNLOAD_START, + NO_DEFAULT_VALUE, + PATH_TO_COMMAND)); op->addTag(TAG_ADVANCED); op->addTag(TAG_HOOK); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_ON_DOWNLOAD_STOP, - TEXT_ON_DOWNLOAD_STOP, - NO_DEFAULT_VALUE, - PATH_TO_COMMAND)); + OptionHandler* op(new DefaultOptionHandler + (PREF_ON_DOWNLOAD_STOP, + TEXT_ON_DOWNLOAD_STOP, + NO_DEFAULT_VALUE, + PATH_TO_COMMAND)); op->addTag(TAG_ADVANCED); op->addTag(TAG_HOOK); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_PARAMETERIZED_URI, - TEXT_PARAMETERIZED_URI, - A2_V_FALSE, - OptionHandler::OPT_ARG, - 'P')); + OptionHandler* op(new BooleanOptionHandler + (PREF_PARAMETERIZED_URI, + TEXT_PARAMETERIZED_URI, + A2_V_FALSE, + OptionHandler::OPT_ARG, + 'P')); op->addTag(TAG_ADVANCED); op->setInitialOption(true); op->setChangeGlobalOption(true); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_PAUSE, - TEXT_PAUSE, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_PAUSE, + TEXT_PAUSE, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->addTag(TAG_RPC); op->setInitialOption(true); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_QUIET, - TEXT_QUIET, - A2_V_FALSE, - OptionHandler::OPT_ARG, - 'q')); + OptionHandler* op(new BooleanOptionHandler + (PREF_QUIET, + TEXT_QUIET, + A2_V_FALSE, + OptionHandler::OPT_ARG, + 'q')); op->addTag(TAG_ADVANCED); handlers.push_back(op); } #ifdef ENABLE_MESSAGE_DIGEST { - SharedHandle op(new BooleanOptionHandler - (PREF_REALTIME_CHUNK_CHECKSUM, - TEXT_REALTIME_CHUNK_CHECKSUM, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_REALTIME_CHUNK_CHECKSUM, + TEXT_REALTIME_CHUNK_CHECKSUM, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_METALINK); op->addTag(TAG_CHECKSUM); op->setInitialOption(true); @@ -668,11 +665,11 @@ OptionHandlerFactory::createOptionHandlers() } #endif // ENABLE_MESSAGE_DIGEST { - SharedHandle op(new BooleanOptionHandler - (PREF_REMOVE_CONTROL_FILE, - TEXT_REMOVE_CONTROL_FILE, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_REMOVE_CONTROL_FILE, + TEXT_REMOVE_CONTROL_FILE, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -680,115 +677,115 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_SAVE_SESSION, - TEXT_SAVE_SESSION, - NO_DEFAULT_VALUE, - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_SAVE_SESSION, + TEXT_SAVE_SESSION, + NO_DEFAULT_VALUE, + PATH_TO_FILE)); op->addTag(TAG_ADVANCED); op->setChangeGlobalOption(true); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_SELECT_LEAST_USED_HOST, - NO_DESCRIPTION, - A2_V_TRUE)); + OptionHandler* op(new BooleanOptionHandler + (PREF_SELECT_LEAST_USED_HOST, + NO_DESCRIPTION, + A2_V_TRUE)); op->hide(); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_SHOW_CONSOLE_READOUT, - TEXT_SHOW_CONSOLE_READOUT, - A2_V_TRUE)); + OptionHandler* op(new BooleanOptionHandler + (PREF_SHOW_CONSOLE_READOUT, + TEXT_SHOW_CONSOLE_READOUT, + A2_V_TRUE)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_STOP, - TEXT_STOP, - "0", - 0, INT32_MAX)); + OptionHandler* op(new NumberOptionHandler + (PREF_STOP, + TEXT_STOP, + "0", + 0, INT32_MAX)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_STOP_WITH_PROCESS, - TEXT_STOP_WITH_PROCESS, - NO_DEFAULT_VALUE, - 0)); + OptionHandler* op(new NumberOptionHandler + (PREF_STOP_WITH_PROCESS, + TEXT_STOP_WITH_PROCESS, + NO_DEFAULT_VALUE, + 0)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_SUMMARY_INTERVAL, - TEXT_SUMMARY_INTERVAL, - "60", - 0, INT32_MAX)); + OptionHandler* op(new NumberOptionHandler + (PREF_SUMMARY_INTERVAL, + TEXT_SUMMARY_INTERVAL, + "60", + 0, INT32_MAX)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_TRUNCATE_CONSOLE_READOUT, - TEXT_TRUNCATE_CONSOLE_READOUT, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_TRUNCATE_CONSOLE_READOUT, + TEXT_TRUNCATE_CONSOLE_READOUT, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_ADVANCED); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_RPC_ALLOW_ORIGIN_ALL, - TEXT_RPC_ALLOW_ORIGIN_ALL, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_RPC_ALLOW_ORIGIN_ALL, + TEXT_RPC_ALLOW_ORIGIN_ALL, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_RPC); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_RPC_LISTEN_ALL, - TEXT_RPC_LISTEN_ALL, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_RPC_LISTEN_ALL, + TEXT_RPC_LISTEN_ALL, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_RPC); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_RPC_LISTEN_PORT, - TEXT_RPC_LISTEN_PORT, - "6800", - 1024, UINT16_MAX)); + OptionHandler* op(new NumberOptionHandler + (PREF_RPC_LISTEN_PORT, + TEXT_RPC_LISTEN_PORT, + "6800", + 1024, UINT16_MAX)); op->addTag(TAG_RPC); handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_RPC_MAX_REQUEST_SIZE, - TEXT_RPC_MAX_REQUEST_SIZE, - "2M", - 0)); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_RPC_MAX_REQUEST_SIZE, + TEXT_RPC_MAX_REQUEST_SIZE, + "2M", + 0)); op->addTag(TAG_RPC); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_RPC_USER, - TEXT_RPC_USER)); + OptionHandler* op(new DefaultOptionHandler + (PREF_RPC_USER, + TEXT_RPC_USER)); op->addTag(TAG_RPC); op->setEraseAfterParse(true); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_RPC_PASSWD, - TEXT_RPC_PASSWD)); + OptionHandler* op(new DefaultOptionHandler + (PREF_RPC_PASSWD, + TEXT_RPC_PASSWD)); op->addTag(TAG_RPC); op->setEraseAfterParse(true); handlers.push_back(op); @@ -796,9 +793,9 @@ OptionHandlerFactory::createOptionHandlers() // HTTP/FTP options #ifdef ENABLE_MESSAGE_DIGEST { - SharedHandle op(new ChecksumOptionHandler - (PREF_CHECKSUM, - TEXT_CHECKSUM)); + OptionHandler* op(new ChecksumOptionHandler + (PREF_CHECKSUM, + TEXT_CHECKSUM)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->addTag(TAG_CHECKSUM); @@ -808,11 +805,11 @@ OptionHandlerFactory::createOptionHandlers() } #endif // ENABLE_MESSAGE_DIGEST { - SharedHandle op(new NumberOptionHandler - (PREF_CONNECT_TIMEOUT, - TEXT_CONNECT_TIMEOUT, - "60", - 1, 600)); + OptionHandler* op(new NumberOptionHandler + (PREF_CONNECT_TIMEOUT, + TEXT_CONNECT_TIMEOUT, + "60", + 1, 600)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -821,11 +818,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_DRY_RUN, - TEXT_DRY_RUN, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_DRY_RUN, + TEXT_DRY_RUN, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -833,11 +830,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_LOWEST_SPEED_LIMIT, - TEXT_LOWEST_SPEED_LIMIT, - "0", - 0)); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_LOWEST_SPEED_LIMIT, + TEXT_LOWEST_SPEED_LIMIT, + "0", + 0)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -846,11 +843,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_MAX_FILE_NOT_FOUND, - TEXT_MAX_FILE_NOT_FOUND, - "0", - 0)); + OptionHandler* op(new NumberOptionHandler + (PREF_MAX_FILE_NOT_FOUND, + TEXT_MAX_FILE_NOT_FOUND, + "0", + 0)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -859,12 +856,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_MAX_TRIES, - TEXT_MAX_TRIES, - "5", - 0, -1, - 'm')); + OptionHandler* op(new NumberOptionHandler + (PREF_MAX_TRIES, + TEXT_MAX_TRIES, + "5", + 0, -1, + 'm')); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -873,12 +870,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_NO_NETRC, - TEXT_NO_NETRC, - A2_V_FALSE, - OptionHandler::OPT_ARG, - 'n')); + OptionHandler* op(new BooleanOptionHandler + (PREF_NO_NETRC, + TEXT_NO_NETRC, + A2_V_FALSE, + OptionHandler::OPT_ARG, + 'n')); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -887,13 +884,13 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_OUT, - TEXT_OUT, - NO_DEFAULT_VALUE, - PATH_TO_FILE, - OptionHandler::REQ_ARG, - 'o')); + OptionHandler* op(new DefaultOptionHandler + (PREF_OUT, + TEXT_OUT, + NO_DEFAULT_VALUE, + PATH_TO_FILE, + OptionHandler::REQ_ARG, + 'o')); op->addTag(TAG_BASIC); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -903,12 +900,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_PIECE_LENGTH, - TEXT_PIECE_LENGTH, - "1M", - 1024*1024, - 1024*1024*1024)); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_PIECE_LENGTH, + TEXT_PIECE_LENGTH, + "1M", + 1024*1024, + 1024*1024*1024)); op->addTag(TAG_ADVANCED); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -917,12 +914,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_REMOTE_TIME, - TEXT_REMOTE_TIME, - A2_V_FALSE, - OptionHandler::OPT_ARG, - 'R')); + OptionHandler* op(new BooleanOptionHandler + (PREF_REMOTE_TIME, + TEXT_REMOTE_TIME, + A2_V_FALSE, + OptionHandler::OPT_ARG, + 'R')); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -931,11 +928,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_RETRY_WAIT, - TEXT_RETRY_WAIT, - "0", - 0, 600)); + OptionHandler* op(new NumberOptionHandler + (PREF_RETRY_WAIT, + TEXT_RETRY_WAIT, + "0", + 0, 600)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -944,11 +941,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_REUSE_URI, - TEXT_REUSE_URI, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_REUSE_URI, + TEXT_REUSE_URI, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -957,44 +954,44 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_SERVER_STAT_IF, - TEXT_SERVER_STAT_IF, - NO_DEFAULT_VALUE, - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_SERVER_STAT_IF, + TEXT_SERVER_STAT_IF, + NO_DEFAULT_VALUE, + PATH_TO_FILE)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_SERVER_STAT_OF, - TEXT_SERVER_STAT_OF, - NO_DEFAULT_VALUE, - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_SERVER_STAT_OF, + TEXT_SERVER_STAT_OF, + NO_DEFAULT_VALUE, + PATH_TO_FILE)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setChangeGlobalOption(true); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_SERVER_STAT_TIMEOUT, - TEXT_SERVER_STAT_TIMEOUT, - "86400", - 0, INT32_MAX)); + OptionHandler* op(new NumberOptionHandler + (PREF_SERVER_STAT_TIMEOUT, + TEXT_SERVER_STAT_TIMEOUT, + "86400", + 0, INT32_MAX)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); handlers.push_back(op); } - SharedHandle splitHandler; + OptionHandler* splitHandler; { - SharedHandle op(new NumberOptionHandler - (PREF_SPLIT, - TEXT_SPLIT, - "5", - 1, -1, - 's')); + OptionHandler* op(new NumberOptionHandler + (PREF_SPLIT, + TEXT_SPLIT, + "5", + 1, -1, + 's')); op->addTag(TAG_BASIC); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); @@ -1005,22 +1002,22 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_STARTUP_IDLE_TIME, - NO_DESCRIPTION, - "10", - 1, 60)); + OptionHandler* op(new NumberOptionHandler + (PREF_STARTUP_IDLE_TIME, + NO_DESCRIPTION, + "10", + 1, 60)); op->hide(); handlers.push_back(op); } { - SharedHandle op(new ParameterOptionHandler - (PREF_STREAM_PIECE_SELECTOR, - TEXT_STREAM_PIECE_SELECTOR, - A2_V_DEFAULT, - A2_V_DEFAULT, - V_INORDER, - A2_V_GEOM)); + OptionHandler* op(new ParameterOptionHandler + (PREF_STREAM_PIECE_SELECTOR, + TEXT_STREAM_PIECE_SELECTOR, + A2_V_DEFAULT, + A2_V_DEFAULT, + V_INORDER, + A2_V_GEOM)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -1029,12 +1026,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_TIMEOUT, - TEXT_TIMEOUT, - "60", - 1, 600, - 't')); + OptionHandler* op(new NumberOptionHandler + (PREF_TIMEOUT, + TEXT_TIMEOUT, + "60", + 1, 600, + 't')); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -1044,12 +1041,12 @@ OptionHandlerFactory::createOptionHandlers() } { const std::string params[] = { V_INORDER, V_FEEDBACK, V_ADAPTIVE }; - SharedHandle op(new ParameterOptionHandler - (PREF_URI_SELECTOR, - TEXT_URI_SELECTOR, - V_FEEDBACK, - std::vector - (vbegin(params), vend(params)))); + OptionHandler* op(new ParameterOptionHandler + (PREF_URI_SELECTOR, + TEXT_URI_SELECTOR, + V_FEEDBACK, + std::vector + (vbegin(params), vend(params)))); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -1059,41 +1056,41 @@ OptionHandlerFactory::createOptionHandlers() } // HTTP Specific Options { - SharedHandle op(new DefaultOptionHandler - (PREF_CA_CERTIFICATE, - TEXT_CA_CERTIFICATE, - CA_BUNDLE, - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_CA_CERTIFICATE, + TEXT_CA_CERTIFICATE, + CA_BUNDLE, + PATH_TO_FILE)); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_CERTIFICATE, - TEXT_CERTIFICATE, - NO_DEFAULT_VALUE, - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_CERTIFICATE, + TEXT_CERTIFICATE, + NO_DEFAULT_VALUE, + PATH_TO_FILE)); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_CHECK_CERTIFICATE, - TEXT_CHECK_CERTIFICATE, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_CHECK_CERTIFICATE, + TEXT_CHECK_CERTIFICATE, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_ENABLE_HTTP_KEEP_ALIVE, - TEXT_ENABLE_HTTP_KEEP_ALIVE, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ENABLE_HTTP_KEEP_ALIVE, + TEXT_ENABLE_HTTP_KEEP_ALIVE, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1101,11 +1098,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_ENABLE_HTTP_PIPELINING, - TEXT_ENABLE_HTTP_PIPELINING, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ENABLE_HTTP_PIPELINING, + TEXT_ENABLE_HTTP_PIPELINING, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1113,11 +1110,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new CumulativeOptionHandler - (PREF_HEADER, - TEXT_HEADER, - NO_DEFAULT_VALUE, - "\n")); + OptionHandler* op(new CumulativeOptionHandler + (PREF_HEADER, + TEXT_HEADER, + NO_DEFAULT_VALUE, + "\n")); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setCumulative(true); @@ -1126,11 +1123,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_HTTP_ACCEPT_GZIP, - TEXT_HTTP_ACCEPT_GZIP, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_HTTP_ACCEPT_GZIP, + TEXT_HTTP_ACCEPT_GZIP, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1138,11 +1135,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_HTTP_AUTH_CHALLENGE, - TEXT_HTTP_AUTH_CHALLENGE, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_HTTP_AUTH_CHALLENGE, + TEXT_HTTP_AUTH_CHALLENGE, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1150,11 +1147,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_HTTP_NO_CACHE, - TEXT_HTTP_NO_CACHE, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_HTTP_NO_CACHE, + TEXT_HTTP_NO_CACHE, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1162,9 +1159,9 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_HTTP_PASSWD, - TEXT_HTTP_PASSWD)); + OptionHandler* op(new DefaultOptionHandler + (PREF_HTTP_PASSWD, + TEXT_HTTP_PASSWD)); op->addTag(TAG_BASIC); op->addTag(TAG_HTTP); op->setEraseAfterParse(true); @@ -1174,9 +1171,9 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_HTTP_USER, - TEXT_HTTP_USER)); + OptionHandler* op(new DefaultOptionHandler + (PREF_HTTP_USER, + TEXT_HTTP_USER)); op->addTag(TAG_BASIC); op->addTag(TAG_HTTP); op->setEraseAfterParse(true); @@ -1186,29 +1183,29 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_LOAD_COOKIES, - TEXT_LOAD_COOKIES, - NO_DEFAULT_VALUE, - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_LOAD_COOKIES, + TEXT_LOAD_COOKIES, + NO_DEFAULT_VALUE, + PATH_TO_FILE)); op->addTag(TAG_BASIC); op->addTag(TAG_HTTP); op->addTag(TAG_COOKIE); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_MAX_HTTP_PIPELINING, - NO_DESCRIPTION, - "2", - 1, 8)); + OptionHandler* op(new NumberOptionHandler + (PREF_MAX_HTTP_PIPELINING, + NO_DESCRIPTION, + "2", + 1, 8)); op->hide(); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_METALINK_LOCATION, - TEXT_METALINK_LOCATION)); + OptionHandler* op(new DefaultOptionHandler + (PREF_METALINK_LOCATION, + TEXT_METALINK_LOCATION)); op->addTag(TAG_METALINK); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1216,19 +1213,19 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_PRIVATE_KEY, - TEXT_PRIVATE_KEY, - NO_DEFAULT_VALUE, - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_PRIVATE_KEY, + TEXT_PRIVATE_KEY, + NO_DEFAULT_VALUE, + PATH_TO_FILE)); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_REFERER, - TEXT_REFERER)); + OptionHandler* op(new DefaultOptionHandler + (PREF_REFERER, + TEXT_REFERER)); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1236,22 +1233,22 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_SAVE_COOKIES, - TEXT_SAVE_COOKIES, - NO_DEFAULT_VALUE, - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_SAVE_COOKIES, + TEXT_SAVE_COOKIES, + NO_DEFAULT_VALUE, + PATH_TO_FILE)); op->addTag(TAG_HTTP); op->addTag(TAG_COOKIE); op->setChangeGlobalOption(true); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_USE_HEAD, - TEXT_USE_HEAD, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_USE_HEAD, + TEXT_USE_HEAD, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1259,13 +1256,13 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_USER_AGENT, - TEXT_USER_AGENT, - "aria2/"PACKAGE_VERSION, - A2STR::NIL, - OptionHandler::REQ_ARG, - 'U')); + OptionHandler* op(new DefaultOptionHandler + (PREF_USER_AGENT, + TEXT_USER_AGENT, + "aria2/"PACKAGE_VERSION, + A2STR::NIL, + OptionHandler::REQ_ARG, + 'U')); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1274,9 +1271,9 @@ OptionHandlerFactory::createOptionHandlers() } // FTP Specific Options { - SharedHandle op(new DefaultOptionHandler - (PREF_FTP_PASSWD, - TEXT_FTP_PASSWD)); + OptionHandler* op(new DefaultOptionHandler + (PREF_FTP_PASSWD, + TEXT_FTP_PASSWD)); op->addTag(TAG_BASIC); op->addTag(TAG_FTP); op->setEraseAfterParse(true); @@ -1286,12 +1283,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_FTP_PASV, - TEXT_FTP_PASV, - A2_V_TRUE, - OptionHandler::OPT_ARG, - 'p')); + OptionHandler* op(new BooleanOptionHandler + (PREF_FTP_PASV, + TEXT_FTP_PASV, + A2_V_TRUE, + OptionHandler::OPT_ARG, + 'p')); op->addTag(TAG_FTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1299,11 +1296,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_FTP_REUSE_CONNECTION, - TEXT_FTP_REUSE_CONNECTION, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_FTP_REUSE_CONNECTION, + TEXT_FTP_REUSE_CONNECTION, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_FTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1311,11 +1308,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new ParameterOptionHandler - (PREF_FTP_TYPE, - TEXT_FTP_TYPE, - V_BINARY, - V_BINARY, V_ASCII)); + OptionHandler* op(new ParameterOptionHandler + (PREF_FTP_TYPE, + TEXT_FTP_TYPE, + V_BINARY, + V_BINARY, V_ASCII)); op->addTag(TAG_FTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1323,9 +1320,9 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_FTP_USER, - TEXT_FTP_USER)); + OptionHandler* op(new DefaultOptionHandler + (PREF_FTP_USER, + TEXT_FTP_USER)); op->addTag(TAG_BASIC); op->addTag(TAG_FTP); op->setEraseAfterParse(true); @@ -1335,20 +1332,20 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_NETRC_PATH, - NO_DESCRIPTION, - util::getHomeDir()+"/.netrc", - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_NETRC_PATH, + NO_DESCRIPTION, + util::getHomeDir()+"/.netrc", + PATH_TO_FILE)); op->hide(); handlers.push_back(op); } // Proxy options { - SharedHandle op(new HttpProxyOptionHandler - (PREF_HTTP_PROXY, - TEXT_HTTP_PROXY, - NO_DEFAULT_VALUE)); + OptionHandler* op(new HttpProxyOptionHandler + (PREF_HTTP_PROXY, + TEXT_HTTP_PROXY, + NO_DEFAULT_VALUE)); op->addTag(TAG_HTTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1356,10 +1353,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_HTTP_PROXY_PASSWD, - TEXT_HTTP_PROXY_PASSWD, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_HTTP_PROXY_PASSWD, + TEXT_HTTP_PROXY_PASSWD, + NO_DEFAULT_VALUE)); op->addTag(TAG_HTTP); op->setEraseAfterParse(true); op->setInitialOption(true); @@ -1368,10 +1365,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_HTTP_PROXY_USER, - TEXT_HTTP_PROXY_USER, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_HTTP_PROXY_USER, + TEXT_HTTP_PROXY_USER, + NO_DEFAULT_VALUE)); op->addTag(TAG_HTTP); op->setEraseAfterParse(true); op->setInitialOption(true); @@ -1380,10 +1377,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new HttpProxyOptionHandler - (PREF_HTTPS_PROXY, - TEXT_HTTPS_PROXY, - NO_DEFAULT_VALUE)); + OptionHandler* op(new HttpProxyOptionHandler + (PREF_HTTPS_PROXY, + TEXT_HTTPS_PROXY, + NO_DEFAULT_VALUE)); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); op->setInitialOption(true); @@ -1392,10 +1389,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_HTTPS_PROXY_PASSWD, - TEXT_HTTPS_PROXY_PASSWD, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_HTTPS_PROXY_PASSWD, + TEXT_HTTPS_PROXY_PASSWD, + NO_DEFAULT_VALUE)); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); op->setEraseAfterParse(true); @@ -1405,10 +1402,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_HTTPS_PROXY_USER, - TEXT_HTTPS_PROXY_USER, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_HTTPS_PROXY_USER, + TEXT_HTTPS_PROXY_USER, + NO_DEFAULT_VALUE)); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); op->setEraseAfterParse(true); @@ -1418,10 +1415,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new HttpProxyOptionHandler - (PREF_FTP_PROXY, - TEXT_FTP_PROXY, - NO_DEFAULT_VALUE)); + OptionHandler* op(new HttpProxyOptionHandler + (PREF_FTP_PROXY, + TEXT_FTP_PROXY, + NO_DEFAULT_VALUE)); op->addTag(TAG_FTP); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1429,10 +1426,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_FTP_PROXY_PASSWD, - TEXT_FTP_PROXY_PASSWD, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_FTP_PROXY_PASSWD, + TEXT_FTP_PROXY_PASSWD, + NO_DEFAULT_VALUE)); op->addTag(TAG_FTP); op->setEraseAfterParse(true); op->setInitialOption(true); @@ -1441,10 +1438,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_FTP_PROXY_USER, - TEXT_FTP_PROXY_USER, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_FTP_PROXY_USER, + TEXT_FTP_PROXY_USER, + NO_DEFAULT_VALUE)); op->addTag(TAG_FTP); op->setEraseAfterParse(true); op->setInitialOption(true); @@ -1453,10 +1450,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new HttpProxyOptionHandler - (PREF_ALL_PROXY, - TEXT_ALL_PROXY, - NO_DEFAULT_VALUE)); + OptionHandler* op(new HttpProxyOptionHandler + (PREF_ALL_PROXY, + TEXT_ALL_PROXY, + NO_DEFAULT_VALUE)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); @@ -1466,10 +1463,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_ALL_PROXY_PASSWD, - TEXT_ALL_PROXY_PASSWD, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_ALL_PROXY_PASSWD, + TEXT_ALL_PROXY_PASSWD, + NO_DEFAULT_VALUE)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); @@ -1480,10 +1477,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_ALL_PROXY_USER, - TEXT_ALL_PROXY_USER, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_ALL_PROXY_USER, + TEXT_ALL_PROXY_USER, + NO_DEFAULT_VALUE)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); @@ -1494,11 +1491,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_NO_PROXY, - TEXT_NO_PROXY, - NO_DEFAULT_VALUE, - "HOSTNAME,DOMAIN,NETWORK/CIDR")); + OptionHandler* op(new DefaultOptionHandler + (PREF_NO_PROXY, + TEXT_NO_PROXY, + NO_DEFAULT_VALUE, + "HOSTNAME,DOMAIN,NETWORK/CIDR")); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->addTag(TAG_HTTPS); @@ -1508,11 +1505,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new ParameterOptionHandler - (PREF_PROXY_METHOD, - TEXT_PROXY_METHOD, - V_GET, - V_GET, V_TUNNEL)); + OptionHandler* op(new ParameterOptionHandler + (PREF_PROXY_METHOD, + TEXT_PROXY_METHOD, + V_GET, + V_GET, V_TUNNEL)); op->addTag(TAG_FTP); op->addTag(TAG_HTTP); op->setInitialOption(true); @@ -1523,11 +1520,11 @@ OptionHandlerFactory::createOptionHandlers() // BitTorrent/Metalink Options #if defined ENABLE_BITTORRENT || defined ENABLE_METALINK { - SharedHandle op(new IntegerRangeOptionHandler - (PREF_SELECT_FILE, - TEXT_SELECT_FILE, - NO_DEFAULT_VALUE, - 1, 65535)); + OptionHandler* op(new IntegerRangeOptionHandler + (PREF_SELECT_FILE, + TEXT_SELECT_FILE, + NO_DEFAULT_VALUE, + 1, 65535)); op->addTag(TAG_BITTORRENT); op->addTag(TAG_METALINK); op->setInitialOption(true); @@ -1535,12 +1532,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_SHOW_FILES, - TEXT_SHOW_FILES, - A2_V_FALSE, - OptionHandler::OPT_ARG, - 'S')); + OptionHandler* op(new BooleanOptionHandler + (PREF_SHOW_FILES, + TEXT_SHOW_FILES, + A2_V_FALSE, + OptionHandler::OPT_ARG, + 'S')); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); op->addTag(TAG_METALINK); @@ -1550,11 +1547,11 @@ OptionHandlerFactory::createOptionHandlers() // BitTorrent Specific Options #ifdef ENABLE_BITTORRENT { - SharedHandle op(new BooleanOptionHandler - (PREF_BT_ENABLE_LPD, - TEXT_BT_ENABLE_LPD, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_BT_ENABLE_LPD, + TEXT_BT_ENABLE_LPD, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1562,12 +1559,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_BT_EXCLUDE_TRACKER, - TEXT_BT_EXCLUDE_TRACKER, - NO_DESCRIPTION, - "URI,... " - "or *")); + OptionHandler* op(new DefaultOptionHandler + (PREF_BT_EXCLUDE_TRACKER, + TEXT_BT_EXCLUDE_TRACKER, + NO_DESCRIPTION, + "URI,... " + "or *")); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1575,11 +1572,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_BT_EXTERNAL_IP, - TEXT_BT_EXTERNAL_IP, - NO_DEFAULT_VALUE, - "a numeric IP address")); + OptionHandler* op(new DefaultOptionHandler + (PREF_BT_EXTERNAL_IP, + TEXT_BT_EXTERNAL_IP, + NO_DEFAULT_VALUE, + "a numeric IP address")); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1587,20 +1584,20 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_BT_KEEP_ALIVE_INTERVAL, - NO_DESCRIPTION, - "120", - 1, 120)); + OptionHandler* op(new NumberOptionHandler + (PREF_BT_KEEP_ALIVE_INTERVAL, + NO_DESCRIPTION, + "120", + 1, 120)); op->hide(); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_BT_HASH_CHECK_SEED, - TEXT_BT_HASH_CHECK_SEED, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_BT_HASH_CHECK_SEED, + TEXT_BT_HASH_CHECK_SEED, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BITTORRENT); op->addTag(TAG_CHECKSUM); op->setInitialOption(true); @@ -1609,21 +1606,21 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_BT_LPD_INTERFACE, - TEXT_BT_LPD_INTERFACE, - NO_DEFAULT_VALUE, - "interface, IP address", - OptionHandler::REQ_ARG)); + OptionHandler* op(new DefaultOptionHandler + (PREF_BT_LPD_INTERFACE, + TEXT_BT_LPD_INTERFACE, + NO_DEFAULT_VALUE, + "interface, IP address", + OptionHandler::REQ_ARG)); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_BT_MAX_OPEN_FILES, - TEXT_BT_MAX_OPEN_FILES, - "100", - 1)); + OptionHandler* op(new NumberOptionHandler + (PREF_BT_MAX_OPEN_FILES, + TEXT_BT_MAX_OPEN_FILES, + "100", + 1)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1631,11 +1628,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_BT_MAX_PEERS, - TEXT_BT_MAX_PEERS, - "55", - 0)); + OptionHandler* op(new NumberOptionHandler + (PREF_BT_MAX_PEERS, + TEXT_BT_MAX_PEERS, + "55", + 0)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeOption(true); @@ -1645,11 +1642,11 @@ OptionHandlerFactory::createOptionHandlers() } { - SharedHandle op(new BooleanOptionHandler - (PREF_BT_METADATA_ONLY, - TEXT_BT_METADATA_ONLY, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_BT_METADATA_ONLY, + TEXT_BT_METADATA_ONLY, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1657,11 +1654,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new ParameterOptionHandler - (PREF_BT_MIN_CRYPTO_LEVEL, - TEXT_BT_MIN_CRYPTO_LEVEL, - V_PLAIN, - V_PLAIN, V_ARC4)); + OptionHandler* op(new ParameterOptionHandler + (PREF_BT_MIN_CRYPTO_LEVEL, + TEXT_BT_MIN_CRYPTO_LEVEL, + V_PLAIN, + V_PLAIN, V_ARC4)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1669,9 +1666,9 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new PrioritizePieceOptionHandler - (PREF_BT_PRIORITIZE_PIECE, - TEXT_BT_PRIORITIZE_PIECE)); + OptionHandler* op(new PrioritizePieceOptionHandler + (PREF_BT_PRIORITIZE_PIECE, + TEXT_BT_PRIORITIZE_PIECE)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1679,11 +1676,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_BT_REMOVE_UNSELECTED_FILE, - TEXT_BT_REMOVE_UNSELECTED_FILE, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_BT_REMOVE_UNSELECTED_FILE, + TEXT_BT_REMOVE_UNSELECTED_FILE, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeOption(true); @@ -1692,11 +1689,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_BT_REQUEST_PEER_SPEED_LIMIT, - TEXT_BT_REQUEST_PEER_SPEED_LIMIT, - "50K", - 0)); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_BT_REQUEST_PEER_SPEED_LIMIT, + TEXT_BT_REQUEST_PEER_SPEED_LIMIT, + "50K", + 0)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeOption(true); @@ -1705,11 +1702,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_BT_REQUIRE_CRYPTO, - TEXT_BT_REQUIRE_CRYPTO, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_BT_REQUIRE_CRYPTO, + TEXT_BT_REQUIRE_CRYPTO, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1717,20 +1714,20 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_BT_REQUEST_TIMEOUT, - NO_DESCRIPTION, - "60", - 1, 600)); + OptionHandler* op(new NumberOptionHandler + (PREF_BT_REQUEST_TIMEOUT, + NO_DESCRIPTION, + "60", + 1, 600)); op->hide(); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_BT_SEED_UNVERIFIED, - TEXT_BT_SEED_UNVERIFIED, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_BT_SEED_UNVERIFIED, + TEXT_BT_SEED_UNVERIFIED, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1738,11 +1735,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_BT_SAVE_METADATA, - TEXT_BT_SAVE_METADATA, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_BT_SAVE_METADATA, + TEXT_BT_SAVE_METADATA, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1750,11 +1747,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_BT_STOP_TIMEOUT, - TEXT_BT_STOP_TIMEOUT, - "0", - 0)); + OptionHandler* op(new NumberOptionHandler + (PREF_BT_STOP_TIMEOUT, + TEXT_BT_STOP_TIMEOUT, + "0", + 0)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1762,20 +1759,20 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_BT_TIMEOUT, - NO_DESCRIPTION, - "180", - 1, 600)); + OptionHandler* op(new NumberOptionHandler + (PREF_BT_TIMEOUT, + NO_DESCRIPTION, + "180", + 1, 600)); op->hide(); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_BT_TRACKER, - TEXT_BT_TRACKER, - NO_DESCRIPTION, - "URI,...")); + OptionHandler* op(new DefaultOptionHandler + (PREF_BT_TRACKER, + TEXT_BT_TRACKER, + NO_DESCRIPTION, + "URI,...")); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1783,11 +1780,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_BT_TRACKER_CONNECT_TIMEOUT, - TEXT_BT_TRACKER_CONNECT_TIMEOUT, - "60", - 1, 600)); + OptionHandler* op(new NumberOptionHandler + (PREF_BT_TRACKER_CONNECT_TIMEOUT, + TEXT_BT_TRACKER_CONNECT_TIMEOUT, + "60", + 1, 600)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1795,11 +1792,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_BT_TRACKER_INTERVAL, - TEXT_BT_TRACKER_INTERVAL, - "0", - 0)); + OptionHandler* op(new NumberOptionHandler + (PREF_BT_TRACKER_INTERVAL, + TEXT_BT_TRACKER_INTERVAL, + "0", + 0)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1807,11 +1804,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_BT_TRACKER_TIMEOUT, - TEXT_BT_TRACKER_TIMEOUT, - "60", - 1, 600)); + OptionHandler* op(new NumberOptionHandler + (PREF_BT_TRACKER_TIMEOUT, + TEXT_BT_TRACKER_TIMEOUT, + "60", + 1, 600)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1819,107 +1816,107 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new HostPortOptionHandler - (PREF_DHT_ENTRY_POINT, - TEXT_DHT_ENTRY_POINT, - NO_DEFAULT_VALUE, - PREF_DHT_ENTRY_POINT_HOST, - PREF_DHT_ENTRY_POINT_PORT)); + OptionHandler* op(new HostPortOptionHandler + (PREF_DHT_ENTRY_POINT, + TEXT_DHT_ENTRY_POINT, + NO_DEFAULT_VALUE, + PREF_DHT_ENTRY_POINT_HOST, + PREF_DHT_ENTRY_POINT_PORT)); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new HostPortOptionHandler - (PREF_DHT_ENTRY_POINT6, - TEXT_DHT_ENTRY_POINT6, - NO_DEFAULT_VALUE, - PREF_DHT_ENTRY_POINT_HOST6, - PREF_DHT_ENTRY_POINT_PORT6)); + OptionHandler* op(new HostPortOptionHandler + (PREF_DHT_ENTRY_POINT6, + TEXT_DHT_ENTRY_POINT6, + NO_DEFAULT_VALUE, + PREF_DHT_ENTRY_POINT_HOST6, + PREF_DHT_ENTRY_POINT_PORT6)); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_DHT_FILE_PATH, - TEXT_DHT_FILE_PATH, - util::getHomeDir()+"/.aria2/dht.dat", - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_DHT_FILE_PATH, + TEXT_DHT_FILE_PATH, + util::getHomeDir()+"/.aria2/dht.dat", + PATH_TO_FILE)); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_DHT_FILE_PATH6, - TEXT_DHT_FILE_PATH6, - util::getHomeDir()+"/.aria2/dht6.dat", - PATH_TO_FILE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_DHT_FILE_PATH6, + TEXT_DHT_FILE_PATH6, + util::getHomeDir()+"/.aria2/dht6.dat", + PATH_TO_FILE)); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_DHT_LISTEN_ADDR, - NO_DESCRIPTION, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_DHT_LISTEN_ADDR, + NO_DESCRIPTION, + NO_DEFAULT_VALUE)); op->hide(); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_DHT_LISTEN_ADDR6, - TEXT_DHT_LISTEN_ADDR6, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_DHT_LISTEN_ADDR6, + TEXT_DHT_LISTEN_ADDR6, + NO_DEFAULT_VALUE)); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new IntegerRangeOptionHandler - (PREF_DHT_LISTEN_PORT, - TEXT_DHT_LISTEN_PORT, - "6881-6999", - 1024, UINT16_MAX)); + OptionHandler* op(new IntegerRangeOptionHandler + (PREF_DHT_LISTEN_PORT, + TEXT_DHT_LISTEN_PORT, + "6881-6999", + 1024, UINT16_MAX)); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_DHT_MESSAGE_TIMEOUT, - TEXT_DHT_MESSAGE_TIMEOUT, - "10", - 1, 60)); + OptionHandler* op(new NumberOptionHandler + (PREF_DHT_MESSAGE_TIMEOUT, + TEXT_DHT_MESSAGE_TIMEOUT, + "10", + 1, 60)); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_ENABLE_DHT, - TEXT_ENABLE_DHT, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ENABLE_DHT, + TEXT_ENABLE_DHT, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_ENABLE_DHT6, - TEXT_ENABLE_DHT6, - A2_V_FALSE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ENABLE_DHT6, + TEXT_ENABLE_DHT6, + A2_V_FALSE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_ENABLE_PEER_EXCHANGE, - TEXT_ENABLE_PEER_EXCHANGE, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_ENABLE_PEER_EXCHANGE, + TEXT_ENABLE_PEER_EXCHANGE, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1927,11 +1924,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new ParameterOptionHandler - (PREF_FOLLOW_TORRENT, - TEXT_FOLLOW_TORRENT, - A2_V_TRUE, - A2_V_TRUE, V_MEM, A2_V_FALSE)); + OptionHandler* op(new ParameterOptionHandler + (PREF_FOLLOW_TORRENT, + TEXT_FOLLOW_TORRENT, + A2_V_TRUE, + A2_V_TRUE, V_MEM, A2_V_FALSE)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -1939,10 +1936,10 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new IndexOutOptionHandler - (PREF_INDEX_OUT, - TEXT_INDEX_OUT, - 'O')); + OptionHandler* op(new IndexOutOptionHandler + (PREF_INDEX_OUT, + TEXT_INDEX_OUT, + 'O')); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setCumulative(true); @@ -1950,33 +1947,33 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new IntegerRangeOptionHandler - (PREF_LISTEN_PORT, - TEXT_LISTEN_PORT, - "6881-6999", - 1024, UINT16_MAX)); + OptionHandler* op(new IntegerRangeOptionHandler + (PREF_LISTEN_PORT, + TEXT_LISTEN_PORT, + "6881-6999", + 1024, UINT16_MAX)); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_MAX_OVERALL_UPLOAD_LIMIT, - TEXT_MAX_OVERALL_UPLOAD_LIMIT, - "0", - 0)); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_MAX_OVERALL_UPLOAD_LIMIT, + TEXT_MAX_OVERALL_UPLOAD_LIMIT, + "0", + 0)); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); op->setChangeGlobalOption(true); handlers.push_back(op); } { - SharedHandle op(new UnitNumberOptionHandler - (PREF_MAX_UPLOAD_LIMIT, - TEXT_MAX_UPLOAD_LIMIT, - "0", - 0, -1, - 'u')); + OptionHandler* op(new UnitNumberOptionHandler + (PREF_MAX_UPLOAD_LIMIT, + TEXT_MAX_UPLOAD_LIMIT, + "0", + 0, -1, + 'u')); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); @@ -1986,21 +1983,21 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_ON_BT_DOWNLOAD_COMPLETE, - TEXT_ON_BT_DOWNLOAD_COMPLETE, - NO_DEFAULT_VALUE, - PATH_TO_COMMAND)); + OptionHandler* op(new DefaultOptionHandler + (PREF_ON_BT_DOWNLOAD_COMPLETE, + TEXT_ON_BT_DOWNLOAD_COMPLETE, + NO_DEFAULT_VALUE, + PATH_TO_COMMAND)); op->addTag(TAG_ADVANCED); op->addTag(TAG_HOOK); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_PEER_CONNECTION_TIMEOUT, - NO_DESCRIPTION, - "20", - 1, 600)); + OptionHandler* op(new NumberOptionHandler + (PREF_PEER_CONNECTION_TIMEOUT, + NO_DESCRIPTION, + "20", + 1, 600)); op->hide(); handlers.push_back(op); } @@ -2009,19 +2006,19 @@ OptionHandlerFactory::createOptionHandlers() sscanf(PACKAGE_VERSION, "%d.%d.%d", &major, &minor, µ); char prefix[21]; snprintf(prefix, sizeof(prefix), "A2-%d-%d-%d-", major, minor, micro); - SharedHandle op(new DefaultOptionHandler - (PREF_PEER_ID_PREFIX, - TEXT_PEER_ID_PREFIX, - prefix)); + OptionHandler* op(new DefaultOptionHandler + (PREF_PEER_ID_PREFIX, + TEXT_PEER_ID_PREFIX, + prefix)); op->addTag(TAG_BITTORRENT); handlers.push_back(op); } { - SharedHandle op(new NumberOptionHandler - (PREF_SEED_TIME, - TEXT_SEED_TIME, - NO_DEFAULT_VALUE, - 0)); + OptionHandler* op(new NumberOptionHandler + (PREF_SEED_TIME, + TEXT_SEED_TIME, + NO_DEFAULT_VALUE, + 0)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -2029,11 +2026,11 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new FloatNumberOptionHandler - (PREF_SEED_RATIO, - TEXT_SEED_RATIO, - "1.0", - 0.0)); + OptionHandler* op(new FloatNumberOptionHandler + (PREF_SEED_RATIO, + TEXT_SEED_RATIO, + "1.0", + 0.0)); op->addTag(TAG_BITTORRENT); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -2041,12 +2038,12 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new LocalFilePathOptionHandler - (PREF_TORRENT_FILE, - TEXT_TORRENT_FILE, - NO_DEFAULT_VALUE, - false, - 'T')); + OptionHandler* op(new LocalFilePathOptionHandler + (PREF_TORRENT_FILE, + TEXT_TORRENT_FILE, + NO_DEFAULT_VALUE, + false, + 'T')); op->addTag(TAG_BASIC); op->addTag(TAG_BITTORRENT); handlers.push_back(op); @@ -2055,11 +2052,11 @@ OptionHandlerFactory::createOptionHandlers() // Metalink Specific Options #ifdef ENABLE_METALINK { - SharedHandle op(new ParameterOptionHandler - (PREF_FOLLOW_METALINK, - TEXT_FOLLOW_METALINK, - A2_V_TRUE, - A2_V_TRUE, V_MEM, A2_V_FALSE)); + OptionHandler* op(new ParameterOptionHandler + (PREF_FOLLOW_METALINK, + TEXT_FOLLOW_METALINK, + A2_V_TRUE, + A2_V_TRUE, V_MEM, A2_V_FALSE)); op->addTag(TAG_METALINK); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -2067,21 +2064,21 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_METALINK_BASE_URI, - TEXT_METALINK_BASE_URI, - NO_DEFAULT_VALUE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_METALINK_BASE_URI, + TEXT_METALINK_BASE_URI, + NO_DEFAULT_VALUE)); op->addTag(TAG_METALINK); op->setInitialOption(true); op->setChangeGlobalOption(true); handlers.push_back(op); } { - SharedHandle op(new BooleanOptionHandler - (PREF_METALINK_ENABLE_UNIQUE_PROTOCOL, - TEXT_METALINK_ENABLE_UNIQUE_PROTOCOL, - A2_V_TRUE, - OptionHandler::OPT_ARG)); + OptionHandler* op(new BooleanOptionHandler + (PREF_METALINK_ENABLE_UNIQUE_PROTOCOL, + TEXT_METALINK_ENABLE_UNIQUE_PROTOCOL, + A2_V_TRUE, + OptionHandler::OPT_ARG)); op->addTag(TAG_METALINK); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -2089,20 +2086,20 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new LocalFilePathOptionHandler - (PREF_METALINK_FILE, - TEXT_METALINK_FILE, - NO_DEFAULT_VALUE, - true, - 'M')); + OptionHandler* op(new LocalFilePathOptionHandler + (PREF_METALINK_FILE, + TEXT_METALINK_FILE, + NO_DEFAULT_VALUE, + true, + 'M')); op->addTag(TAG_BASIC); op->addTag(TAG_METALINK); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_METALINK_LANGUAGE, - TEXT_METALINK_LANGUAGE)); + OptionHandler* op(new DefaultOptionHandler + (PREF_METALINK_LANGUAGE, + TEXT_METALINK_LANGUAGE)); op->addTag(TAG_METALINK); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -2110,9 +2107,9 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_METALINK_OS, - TEXT_METALINK_OS)); + OptionHandler* op(new DefaultOptionHandler + (PREF_METALINK_OS, + TEXT_METALINK_OS)); op->addTag(TAG_METALINK); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -2121,12 +2118,12 @@ OptionHandlerFactory::createOptionHandlers() } { const std::string params[] = { V_HTTP, V_HTTPS, V_FTP, V_NONE }; - SharedHandle op(new ParameterOptionHandler - (PREF_METALINK_PREFERRED_PROTOCOL, - TEXT_METALINK_PREFERRED_PROTOCOL, - V_NONE, - std::vector - (vbegin(params), vend(params)))); + OptionHandler* op(new ParameterOptionHandler + (PREF_METALINK_PREFERRED_PROTOCOL, + TEXT_METALINK_PREFERRED_PROTOCOL, + V_NONE, + std::vector + (vbegin(params), vend(params)))); op->addTag(TAG_METALINK); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -2134,24 +2131,23 @@ OptionHandlerFactory::createOptionHandlers() handlers.push_back(op); } { - SharedHandle op - (new DeprecatedOptionHandler - (SharedHandle(new NumberOptionHandler - (PREF_METALINK_SERVERS, - TEXT_METALINK_SERVERS, - NO_DEFAULT_VALUE, - 1, -1, - 'C')), - splitHandler)); + OptionHandler* op + (new DeprecatedOptionHandler(new NumberOptionHandler + (PREF_METALINK_SERVERS, + TEXT_METALINK_SERVERS, + NO_DEFAULT_VALUE, + 1, -1, + 'C'), + splitHandler)); op->addTag(TAG_DEPRECATED); op->addTag(TAG_METALINK); op->setInitialOption(true); handlers.push_back(op); } { - SharedHandle op(new DefaultOptionHandler - (PREF_METALINK_VERSION, - TEXT_METALINK_VERSION)); + OptionHandler* op(new DefaultOptionHandler + (PREF_METALINK_VERSION, + TEXT_METALINK_VERSION)); op->addTag(TAG_METALINK); op->setInitialOption(true); op->setChangeGlobalOption(true); @@ -2161,13 +2157,13 @@ OptionHandlerFactory::createOptionHandlers() #endif // ENABLE_METALINK // Version Option { - SharedHandle op(new DefaultOptionHandler - (PREF_VERSION, - TEXT_VERSION, - NO_DEFAULT_VALUE, - A2STR::NIL, - OptionHandler::NO_ARG, - 'v')); + OptionHandler* op(new DefaultOptionHandler + (PREF_VERSION, + TEXT_VERSION, + NO_DEFAULT_VALUE, + A2STR::NIL, + OptionHandler::NO_ARG, + 'v')); op->addTag(TAG_BASIC); handlers.push_back(op); } @@ -2179,13 +2175,13 @@ OptionHandlerFactory::createOptionHandlers() tagsStr += ", "; } tagsStr += STR_TAG_ALL; - SharedHandle op(new DefaultOptionHandler - (PREF_HELP, - TEXT_HELP, - strHelpTag(TAG_BASIC), - tagsStr, - OptionHandler::OPT_ARG, - 'h')); + OptionHandler* op(new DefaultOptionHandler + (PREF_HELP, + TEXT_HELP, + strHelpTag(TAG_BASIC), + tagsStr, + OptionHandler::OPT_ARG, + 'h')); op->addTag(TAG_BASIC); op->addTag(TAG_HELP); handlers.push_back(op); diff --git a/src/OptionHandlerFactory.h b/src/OptionHandlerFactory.h index 247614d4..ea8ec907 100644 --- a/src/OptionHandlerFactory.h +++ b/src/OptionHandlerFactory.h @@ -39,15 +39,13 @@ #include -#include "SharedHandle.h" - namespace aria2 { class OptionHandler; class OptionHandlerFactory { public: - static std::vector > createOptionHandlers(); + static std::vector createOptionHandlers(); }; } // namespace aria2 diff --git a/src/OptionHandlerImpl.cc b/src/OptionHandlerImpl.cc index 836c93f0..f2edcfc3 100644 --- a/src/OptionHandlerImpl.cc +++ b/src/OptionHandlerImpl.cc @@ -79,6 +79,7 @@ BooleanOptionHandler::BooleanOptionHandler BooleanOptionHandler::~BooleanOptionHandler() {} void BooleanOptionHandler::parseArg(Option& option, const std::string& optarg) + const { if(optarg == "true" || ((argType_ == OptionHandler::OPT_ARG || @@ -115,7 +116,7 @@ IntegerRangeOptionHandler::IntegerRangeOptionHandler IntegerRangeOptionHandler::~IntegerRangeOptionHandler() {} void IntegerRangeOptionHandler::parseArg -(Option& option, const std::string& optarg) +(Option& option, const std::string& optarg) const { SegList sgl; util::parseIntSegments(sgl, optarg); @@ -153,6 +154,7 @@ NumberOptionHandler::NumberOptionHandler NumberOptionHandler::~NumberOptionHandler() {} void NumberOptionHandler::parseArg(Option& option, const std::string& optarg) + const { int64_t number; if(util::parseLLIntNoThrow(number, optarg)) { @@ -162,7 +164,7 @@ void NumberOptionHandler::parseArg(Option& option, const std::string& optarg) } } -void NumberOptionHandler::parseArg(Option& option, int64_t number) +void NumberOptionHandler::parseArg(Option& option, int64_t number) const { if((min_ == -1 || min_ <= number) && (max_ == -1 || number <= max_)) { option.put(pref_, util::itos(number)); @@ -214,7 +216,7 @@ UnitNumberOptionHandler::UnitNumberOptionHandler UnitNumberOptionHandler::~UnitNumberOptionHandler() {} void UnitNumberOptionHandler::parseArg -(Option& option, const std::string& optarg) +(Option& option, const std::string& optarg) const { int64_t num = util::getRealSize(optarg); NumberOptionHandler::parseArg(option, num); @@ -236,7 +238,7 @@ FloatNumberOptionHandler::FloatNumberOptionHandler FloatNumberOptionHandler::~FloatNumberOptionHandler() {} void FloatNumberOptionHandler::parseArg -(Option& option, const std::string& optarg) +(Option& option, const std::string& optarg) const { double number = strtod(optarg.c_str(), 0); if((min_ < 0 || min_ <= number) && (max_ < 0 || number <= max_)) { @@ -289,6 +291,7 @@ DefaultOptionHandler::DefaultOptionHandler DefaultOptionHandler::~DefaultOptionHandler() {} void DefaultOptionHandler::parseArg(Option& option, const std::string& optarg) + const { option.put(pref_, optarg); } @@ -315,7 +318,7 @@ CumulativeOptionHandler::CumulativeOptionHandler CumulativeOptionHandler::~CumulativeOptionHandler() {} void CumulativeOptionHandler::parseArg -(Option& option, const std::string& optarg) +(Option& option, const std::string& optarg) const { std::string value = option.get(pref_); value += optarg; @@ -339,6 +342,7 @@ IndexOutOptionHandler::IndexOutOptionHandler IndexOutOptionHandler::~IndexOutOptionHandler() {} void IndexOutOptionHandler::parseArg(Option& option, const std::string& optarg) + const { // See optarg is in the fomrat of "INDEX=PATH" util::parseIndexPath(optarg); @@ -365,6 +369,7 @@ ChecksumOptionHandler::ChecksumOptionHandler ChecksumOptionHandler::~ChecksumOptionHandler() {} void ChecksumOptionHandler::parseArg(Option& option, const std::string& optarg) + const { std::pair p; util::divide(p, optarg.begin(), optarg.end(), '='); @@ -436,10 +441,11 @@ ParameterOptionHandler::ParameterOptionHandler validParamValues_.push_back(validParamValue2); validParamValues_.push_back(validParamValue3); } - + ParameterOptionHandler::~ParameterOptionHandler() {} void ParameterOptionHandler::parseArg(Option& option, const std::string& optarg) + const { std::vector::const_iterator itr = std::find(validParamValues_.begin(), validParamValues_.end(), optarg); @@ -488,6 +494,7 @@ HostPortOptionHandler::HostPortOptionHandler HostPortOptionHandler::~HostPortOptionHandler() {} void HostPortOptionHandler::parseArg(Option& option, const std::string& optarg) + const { std::string uri = "http://"; uri += optarg; @@ -500,7 +507,7 @@ void HostPortOptionHandler::parseArg(Option& option, const std::string& optarg) } void HostPortOptionHandler::setHostAndPort -(Option& option, const std::string& hostname, uint16_t port) +(Option& option, const std::string& hostname, uint16_t port) const { option.put(hostOptionName_, hostname); option.put(portOptionName_, util::uitos(port)); @@ -525,6 +532,7 @@ HttpProxyOptionHandler::HttpProxyOptionHandler HttpProxyOptionHandler::~HttpProxyOptionHandler() {} void HttpProxyOptionHandler::parseArg(Option& option, const std::string& optarg) + const { if(optarg.empty()) { option.put(pref_, optarg); @@ -564,7 +572,7 @@ LocalFilePathOptionHandler::LocalFilePathOptionHandler {} void LocalFilePathOptionHandler::parseArg -(Option& option, const std::string& optarg) +(Option& option, const std::string& optarg) const { if(acceptStdin_ && optarg == "-") { option.put(pref_, DEV_STDIN); @@ -576,7 +584,7 @@ void LocalFilePathOptionHandler::parseArg option.put(pref_, optarg); } } - + std::string LocalFilePathOptionHandler::createPossibleValuesString() const { if(acceptStdin_) { @@ -596,7 +604,7 @@ PrioritizePieceOptionHandler::PrioritizePieceOptionHandler {} void PrioritizePieceOptionHandler::parseArg -(Option& option, const std::string& optarg) +(Option& option, const std::string& optarg) const { // Parse optarg against empty FileEntry list to detect syntax // error. @@ -612,12 +620,19 @@ std::string PrioritizePieceOptionHandler::createPossibleValuesString() const } DeprecatedOptionHandler::DeprecatedOptionHandler -(const SharedHandle& depOptHandler, - const SharedHandle& repOptHandler) +(OptionHandler* depOptHandler, + const OptionHandler* repOptHandler) : depOptHandler_(depOptHandler), repOptHandler_(repOptHandler) {} +DeprecatedOptionHandler::~DeprecatedOptionHandler() +{ + delete depOptHandler_; + // We don't delete repOptHandler_. +} + void DeprecatedOptionHandler::parse(Option& option, const std::string& arg) + const { if(repOptHandler_) { A2_LOG_WARN(fmt(_("--%s option is deprecated. Use --%s option instead."), diff --git a/src/OptionHandlerImpl.h b/src/OptionHandlerImpl.h index 7537ffbd..e8b6d2cd 100644 --- a/src/OptionHandlerImpl.h +++ b/src/OptionHandlerImpl.h @@ -55,7 +55,7 @@ public: OptionHandler::ARG_TYPE argType = OptionHandler::REQ_ARG, char shortName = 0); virtual ~BooleanOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -70,7 +70,7 @@ public: int32_t min, int32_t max, char shortName = 0); virtual ~IntegerRangeOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -87,8 +87,8 @@ public: char shortName = 0); virtual ~NumberOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); - void parseArg(Option& option, int64_t number); + virtual void parseArg(Option& option, const std::string& optarg) const; + void parseArg(Option& option, int64_t number) const; virtual std::string createPossibleValuesString() const; }; @@ -101,7 +101,7 @@ public: int64_t max = -1, char shortName = 0); virtual ~UnitNumberOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; }; class FloatNumberOptionHandler : public AbstractOptionHandler { @@ -115,7 +115,7 @@ public: double min = -1, double max = -1, char shortName = 0); virtual ~FloatNumberOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -130,7 +130,7 @@ public: OptionHandler::ARG_TYPE argType = OptionHandler::REQ_ARG, char shortName = 0); virtual ~DefaultOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -148,7 +148,7 @@ public: OptionHandler::REQ_ARG, char shortName = 0); virtual ~CumulativeOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -158,7 +158,7 @@ public: const char* description, char shortName = 0); virtual ~IndexOutOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -169,7 +169,7 @@ public: const char* description, char shortName = 0); virtual ~ChecksumOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; #endif // ENABLE_MESSAGE_DIGEST @@ -202,7 +202,7 @@ public: const std::string& validParamValue3, char shortName = 0); virtual ~ParameterOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -218,9 +218,9 @@ public: const Pref* portOptionName, char shortName = 0); virtual ~HostPortOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; void setHostAndPort - (Option& option, const std::string& hostname, uint16_t port); + (Option& option, const std::string& hostname, uint16_t port) const; virtual std::string createPossibleValuesString() const; }; @@ -234,7 +234,7 @@ public: const std::string& defaultValue, char shortName = 0); virtual ~HttpProxyOptionHandler(); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -248,7 +248,7 @@ public: const std::string& defaultValue = NO_DEFAULT_VALUE, bool acceptStdin = false, char shortName = 0); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -259,7 +259,7 @@ public: const char* description = NO_DESCRIPTION, const std::string& defaultValue = NO_DEFAULT_VALUE, char shortName = 0); - virtual void parseArg(Option& option, const std::string& optarg); + virtual void parseArg(Option& option, const std::string& optarg) const; virtual std::string createPossibleValuesString() const; }; @@ -267,17 +267,17 @@ public: // option value using replacing option. class DeprecatedOptionHandler:public OptionHandler { private: - SharedHandle depOptHandler_; - SharedHandle repOptHandler_; + OptionHandler* depOptHandler_; + const OptionHandler* repOptHandler_; public: // depOptHandler is deprecated option and repOptHandler is replacing // new option. If there is no replacing option, omit second // argument. DeprecatedOptionHandler - (const SharedHandle& depOptHandler, - const SharedHandle& repOptHandler = - SharedHandle()); - virtual void parse(Option& option, const std::string& arg); + (OptionHandler* depOptHandler, + const OptionHandler* repOptHandler = 0); + virtual ~DeprecatedOptionHandler(); + virtual void parse(Option& option, const std::string& arg) const; virtual std::string createPossibleValuesString() const; virtual bool hasTag(uint32_t tag) const; virtual void addTag(uint32_t tag); diff --git a/src/OptionParser.cc b/src/OptionParser.cc index 53e0c2c0..d2250374 100644 --- a/src/OptionParser.cc +++ b/src/OptionParser.cc @@ -56,11 +56,14 @@ namespace aria2 { OptionParser::OptionParser() - : handlers_(option::countOption()), + : handlers_(option::countOption(), 0), shortOpts_(256) {} -OptionParser::~OptionParser() {} +OptionParser::~OptionParser() +{ + std::for_each(handlers_.begin(), handlers_.end(), Deleter()); +} namespace { template @@ -154,7 +157,7 @@ void OptionParser::parseArg if(c == -1) { break; } - SharedHandle op; + const OptionHandler* op = 0; if(c == 0) { op = findById(lopt); } else if(c != '?') { @@ -181,7 +184,7 @@ void OptionParser::parseArg int ambiguous = 0; for(int i = 1, len = option::countOption(); i < len; ++i) { const Pref* pref = option::i2p(i); - const SharedHandle& h = find(pref); + const OptionHandler* h = find(pref); if(h && !h->isHidden()) { if(strcmp(pref->k, optstr) == 0) { // Exact match, this means getopt_long detected error @@ -231,7 +234,7 @@ void OptionParser::parse(Option& option, std::istream& is) const } const Pref* pref = option::k2p(std::string(nv.first.first, nv.first.second)); - const SharedHandle& handler = find(pref); + const OptionHandler* handler = find(pref); if(handler) { handler->parse(option, std::string(nv.second.first, nv.second.second)); } @@ -239,15 +242,15 @@ void OptionParser::parse(Option& option, std::istream& is) const } void OptionParser::setOptionHandlers -(const std::vector >& handlers) +(const std::vector& handlers) { - for(std::vector >::const_iterator i = + for(std::vector::const_iterator i = handlers.begin(), eoi = handlers.end(); i != eoi; ++i) { addOptionHandler(*i); } } -void OptionParser::addOptionHandler(const SharedHandle& handler) +void OptionParser::addOptionHandler(OptionHandler* handler) { size_t optId = handler->getPref()->i; assert(optId < handlers_.size()); @@ -259,7 +262,7 @@ void OptionParser::addOptionHandler(const SharedHandle& handler) void OptionParser::parseDefaultValues(Option& option) const { - for(std::vector >::const_iterator i = + for(std::vector::const_iterator i = handlers_.begin(), eoi = handlers_.end(); i != eoi; ++i) { if(*i && !(*i)->getDefaultValue().empty()) { (*i)->parse(option, (*i)->getDefaultValue()); @@ -267,11 +270,10 @@ void OptionParser::parseDefaultValues(Option& option) const } } -std::vector > -OptionParser::findByTag(uint32_t tag) const +std::vector OptionParser::findByTag(uint32_t tag) const { - std::vector > result; - for(std::vector >::const_iterator i = + std::vector result; + for(std::vector::const_iterator i = handlers_.begin(), eoi = handlers_.end(); i != eoi; ++i) { if(*i && !(*i)->isHidden() && (*i)->hasTag(tag)) { result.push_back(*i); @@ -280,11 +282,11 @@ OptionParser::findByTag(uint32_t tag) const return result; } -std::vector > +std::vector OptionParser::findByNameSubstring(const std::string& substring) const { - std::vector > result; - for(std::vector >::const_iterator i = + std::vector result; + for(std::vector::const_iterator i = handlers_.begin(), eoi = handlers_.end(); i != eoi; ++i) { if(*i && !(*i)->isHidden()) { size_t nameLen = strlen((*i)->getName()); @@ -295,13 +297,13 @@ OptionParser::findByNameSubstring(const std::string& substring) const } } } - return result; + return result; } -std::vector > OptionParser::findAll() const +std::vector OptionParser::findAll() const { - std::vector > result; - for(std::vector >::const_iterator i = + std::vector result; + for(std::vector::const_iterator i = handlers_.begin(), eoi = handlers_.end(); i != eoi; ++i) { if(*i && !(*i)->isHidden()) { result.push_back(*i); @@ -310,17 +312,17 @@ std::vector > OptionParser::findAll() const return result; } -const SharedHandle& OptionParser::find(const Pref* pref) const +const OptionHandler* OptionParser::find(const Pref* pref) const { return findById(pref->i); } -const SharedHandle& OptionParser::findById(size_t id) const +const OptionHandler* OptionParser::findById(size_t id) const { if(id >= handlers_.size()) { return handlers_[0]; } - const SharedHandle& h = handlers_[id]; + const OptionHandler* h = handlers_[id]; if(!h || h->isHidden()) { return handlers_[0]; } else { @@ -328,8 +330,7 @@ const SharedHandle& OptionParser::findById(size_t id) const } } -const SharedHandle& OptionParser::findByShortName -(char shortName) const +const OptionHandler* OptionParser::findByShortName(char shortName) const { size_t idx = static_cast(shortName); return findById(shortOpts_[idx]); diff --git a/src/OptionParser.h b/src/OptionParser.h index 901fe8ec..617712db 100644 --- a/src/OptionParser.h +++ b/src/OptionParser.h @@ -51,7 +51,7 @@ struct Pref; class OptionParser { private: - std::vector > handlers_; + std::vector handlers_; // Index of handler in handlers_ for option who has short option name. std::vector shortOpts_; static SharedHandle optionParser_; @@ -70,29 +70,28 @@ public: void parseDefaultValues(Option& option) const; void setOptionHandlers - (const std::vector >& handlers); + (const std::vector& handlers); - void addOptionHandler(const SharedHandle& handler); + void addOptionHandler(OptionHandler* handler); // Hidden options are not returned. - std::vector > - findByTag(uint32_t tag) const; + std::vector findByTag(uint32_t tag) const; // Hidden options are not returned. - std::vector > + std::vector findByNameSubstring(const std::string& substring) const; // Hidden options are not returned. - std::vector > findAll() const; + std::vector findAll() const; // Hidden options are not returned. - const SharedHandle& find(const Pref* pref) const; + const OptionHandler* find(const Pref* pref) const; // Hidden options are not returned. - const SharedHandle& findById(size_t id) const; + const OptionHandler* findById(size_t id) const; // Hidden options are not returned. - const SharedHandle& findByShortName(char shortName) const; + const OptionHandler* findByShortName(char shortName) const; static const SharedHandle& getInstance(); }; diff --git a/src/RpcMethod.cc b/src/RpcMethod.cc index 46dba121..a06fd714 100644 --- a/src/RpcMethod.cc +++ b/src/RpcMethod.cc @@ -94,7 +94,7 @@ void gatherOption throw DL_ABORT_EX (fmt("We don't know how to deal with %s option", optionName.c_str())); } - const SharedHandle& handler = optionParser->find(pref); + const OptionHandler* handler = optionParser->find(pref); if(!handler || !pred(handler)) { // Just ignore the unacceptable options in this context. continue; @@ -123,7 +123,7 @@ void RpcMethod::gatherRequestOption(Option* option, const Dict* optionsDict) { if(optionsDict) { gatherOption(optionsDict->begin(), optionsDict->end(), - mem_fun_sh(&OptionHandler::getInitialOption), + std::mem_fun(&OptionHandler::getInitialOption), option, optionParser_); } } @@ -132,7 +132,7 @@ void RpcMethod::gatherChangeableOption(Option* option, const Dict* optionsDict) { if(optionsDict) { gatherOption(optionsDict->begin(), optionsDict->end(), - mem_fun_sh(&OptionHandler::getChangeOption), + std::mem_fun(&OptionHandler::getChangeOption), option, optionParser_); } } @@ -143,7 +143,7 @@ void RpcMethod::gatherChangeableOptionForReserved { if(optionsDict) { gatherOption(optionsDict->begin(), optionsDict->end(), - mem_fun_sh(&OptionHandler::getChangeOptionForReserved), + std::mem_fun(&OptionHandler::getChangeOptionForReserved), option, optionParser_); } } @@ -153,7 +153,7 @@ void RpcMethod::gatherChangeableGlobalOption { if(optionsDict) { gatherOption(optionsDict->begin(), optionsDict->end(), - mem_fun_sh(&OptionHandler::getChangeGlobalOption), + std::mem_fun(&OptionHandler::getChangeGlobalOption), option, optionParser_); } } diff --git a/src/RpcMethodImpl.cc b/src/RpcMethodImpl.cc index 3a787e91..be0b8916 100644 --- a/src/RpcMethodImpl.cc +++ b/src/RpcMethodImpl.cc @@ -1251,7 +1251,7 @@ void pushRequestOption { for(size_t i = 1, len = option::countOption(); i < len; ++i) { const Pref* pref = option::i2p(i); - const SharedHandle& h = oparser->find(pref); + const OptionHandler* h = oparser->find(pref); if(h && h->getInitialOption() && option->defined(pref)) { dict->put(pref->k, option->get(pref)); } @@ -1284,7 +1284,7 @@ SharedHandle GetGlobalOptionRpcMethod::process if(!e->getOption()->defined(pref)) { continue; } - const SharedHandle& h = getOptionParser()->find(pref); + const OptionHandler* h = getOptionParser()->find(pref); if(h) { result->put(pref->k, e->getOption()->get(pref)); } diff --git a/src/SessionSerializer.cc b/src/SessionSerializer.cc index ed8f20a2..9ccf3149 100644 --- a/src/SessionSerializer.cc +++ b/src/SessionSerializer.cc @@ -83,7 +83,7 @@ bool writeOption(BufferedFile& fp, const SharedHandle