mirror of https://github.com/aria2/aria2
Deprecated --enable-direct-io option.
Modified DeprecatedOptionHandler so that it can have replacing OptionHandler.pull/1/head
parent
b96df117d6
commit
dbf4f553ca
|
@ -218,11 +218,14 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers()
|
|||
#endif // ENABLE_ASYNC_DNS
|
||||
#ifdef ENABLE_DIRECT_IO
|
||||
{
|
||||
SharedHandle<OptionHandler> op(new BooleanOptionHandler
|
||||
(PREF_ENABLE_DIRECT_IO,
|
||||
TEXT_ENABLE_DIRECT_IO,
|
||||
A2_V_TRUE,
|
||||
OptionHandler::OPT_ARG));
|
||||
// TODO Deprecated
|
||||
SharedHandle<OptionHandler> op
|
||||
(new DeprecatedOptionHandler
|
||||
(SharedHandle<OptionHandler>(new BooleanOptionHandler
|
||||
(PREF_ENABLE_DIRECT_IO,
|
||||
TEXT_ENABLE_DIRECT_IO,
|
||||
A2_V_TRUE,
|
||||
OptionHandler::OPT_ARG))));
|
||||
op->addTag(TAG_ADVANCED);
|
||||
op->addTag(TAG_FILE);
|
||||
handlers.push_back(op);
|
||||
|
|
|
@ -738,8 +738,8 @@ std::string PrioritizePieceOptionHandler::createPossibleValuesString() const
|
|||
|
||||
DeprecatedOptionHandler::DeprecatedOptionHandler
|
||||
(const SharedHandle<OptionHandler>& depOptHandler,
|
||||
const std::string& repOptName)
|
||||
: depOptHandler_(depOptHandler), repOptName_(repOptName)
|
||||
const SharedHandle<OptionHandler>& repOptHandler)
|
||||
: depOptHandler_(depOptHandler), repOptHandler_(repOptHandler)
|
||||
{}
|
||||
|
||||
bool DeprecatedOptionHandler::canHandle(const std::string& optName)
|
||||
|
@ -749,11 +749,15 @@ bool DeprecatedOptionHandler::canHandle(const std::string& optName)
|
|||
|
||||
void DeprecatedOptionHandler::parse(Option& option, const std::string& arg)
|
||||
{
|
||||
A2_LOG_WARN(fmt("--%s option is deprecated. Use --%s option instead.",
|
||||
depOptHandler_->getName().c_str(),
|
||||
repOptName_.c_str()));
|
||||
depOptHandler_->parse(option, arg);
|
||||
option.put(repOptName_, option.get(depOptHandler_->getName()));
|
||||
if(repOptHandler_) {
|
||||
A2_LOG_WARN(fmt(_("--%s option is deprecated. Use --%s option instead."),
|
||||
depOptHandler_->getName().c_str(),
|
||||
repOptHandler_->getName().c_str()));
|
||||
repOptHandler_->parse(option, arg);
|
||||
} else {
|
||||
A2_LOG_WARN(fmt(_("--%s option is deprecated."),
|
||||
depOptHandler_->getName().c_str()));
|
||||
}
|
||||
}
|
||||
|
||||
std::string DeprecatedOptionHandler::createPossibleValuesString() const
|
||||
|
|
|
@ -294,14 +294,20 @@ public:
|
|||
virtual std::string createPossibleValuesString() const;
|
||||
};
|
||||
|
||||
// This class is used to deprecate option and optionally handle its
|
||||
// option value using replacing option.
|
||||
class DeprecatedOptionHandler:public OptionHandler {
|
||||
private:
|
||||
SharedHandle<OptionHandler> depOptHandler_;
|
||||
std::string repOptName_;
|
||||
SharedHandle<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<OptionHandler>& depOptHandler,
|
||||
const std::string& repOptName);
|
||||
const SharedHandle<OptionHandler>& repOptHandler =
|
||||
SharedHandle<OptionHandler>());
|
||||
virtual bool canHandle(const std::string& optName);
|
||||
virtual void parse(Option& option, const std::string& arg);
|
||||
virtual std::string createPossibleValuesString() const;
|
||||
|
|
|
@ -29,6 +29,7 @@ class OptionHandlerTest:public CppUnit::TestFixture {
|
|||
CPPUNIT_TEST(testHttpProxyOptionHandler);
|
||||
CPPUNIT_TEST(testHttpProxyUserOptionHandler);
|
||||
CPPUNIT_TEST(testHttpProxyPasswdOptionHandler);
|
||||
CPPUNIT_TEST(testDeprecatedOptionHandler);
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
public:
|
||||
|
@ -50,6 +51,7 @@ public:
|
|||
void testHttpProxyOptionHandler();
|
||||
void testHttpProxyUserOptionHandler();
|
||||
void testHttpProxyPasswdOptionHandler();
|
||||
void testDeprecatedOptionHandler();
|
||||
};
|
||||
|
||||
|
||||
|
@ -420,4 +422,24 @@ void OptionHandlerTest::testHttpProxyPasswdOptionHandler()
|
|||
|
||||
}
|
||||
|
||||
void OptionHandlerTest::testDeprecatedOptionHandler()
|
||||
{
|
||||
{
|
||||
DeprecatedOptionHandler handler
|
||||
(SharedHandle<OptionHandler>(new DefaultOptionHandler("dep")));
|
||||
Option option;
|
||||
handler.parse(option, "foo");
|
||||
CPPUNIT_ASSERT(!option.defined("dep"));
|
||||
}
|
||||
{
|
||||
DeprecatedOptionHandler handler
|
||||
(SharedHandle<OptionHandler>(new DefaultOptionHandler("dep")),
|
||||
SharedHandle<OptionHandler>(new DefaultOptionHandler("rep")));
|
||||
Option option;
|
||||
handler.parse(option, "foo");
|
||||
CPPUNIT_ASSERT(!option.defined("dep"));
|
||||
CPPUNIT_ASSERT_EQUAL(std::string("foo"), option.get("rep"));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace aria2
|
||||
|
|
Loading…
Reference in New Issue