Ver código fonte

2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

	Use the default value pulled from Option object in 
HelpItemFactory.
	except options whose defualt value is embedded in a usage text.
	* src/HelpItemFactory.cc
	* src/HelpItemFactory.h
	* src/option_processing.cc
	* src/version_usage.cc
Tatsuhiro Tsujikawa 17 anos atrás
pai
commit
da615e4e7a
5 arquivos alterados com 55 adições e 23 exclusões
  1. 9 0
      ChangeLog
  2. 30 15
      src/HelpItemFactory.cc
  3. 2 1
      src/HelpItemFactory.h
  4. 12 5
      src/option_processing.cc
  5. 2 2
      src/version_usage.cc

+ 9 - 0
ChangeLog

@@ -1,3 +1,12 @@
+2008-04-22  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
+
+	Use the default value pulled from Option object in HelpItemFactory.
+	except options whose defualt value is embedded in a usage text.
+	* src/HelpItemFactory.cc
+	* src/HelpItemFactory.h
+	* src/option_processing.cc
+	* src/version_usage.cc
+	
 2008-04-22  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 
 	Added --quiet option to make aria2 quiet (no console output).

+ 30 - 15
src/HelpItemFactory.cc

@@ -39,12 +39,13 @@
 #include "prefs.h"
 #include "a2io.h"
 #include "help_tags.h"
+#include "Option.h"
 
 namespace aria2 {
 
 HelpItemFactory::HelpItemFactory() {}
 
-TagContainerHandle HelpItemFactory::createHelpItems()
+TagContainerHandle HelpItemFactory::createHelpItems(const Option* op)
 {
   TagContainerHandle tc(new TagContainer());
   {
@@ -185,7 +186,8 @@ TagContainerHandle HelpItemFactory::createHelpItems()
   }
 #ifdef ENABLE_DIRECT_IO
   {
-    HelpItemHandle item(new HelpItem(PREF_ENABLE_DIRECT_IO, TEXT_ENABLE_DIRECT_IO, V_TRUE));
+    HelpItemHandle item(new HelpItem(PREF_ENABLE_DIRECT_IO, TEXT_ENABLE_DIRECT_IO,
+				     op->get(PREF_ENABLE_DIRECT_IO)));
     item->addTag(TAG_ADVANCED);
     tc->addItem(item);
   }
@@ -196,7 +198,8 @@ TagContainerHandle HelpItemFactory::createHelpItems()
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_ALLOW_PIECE_LENGTH_CHANGE, TEXT_ALLOW_PIECE_LENGTH_CHANGE, V_FALSE));
+    HelpItemHandle item(new HelpItem(PREF_ALLOW_PIECE_LENGTH_CHANGE, TEXT_ALLOW_PIECE_LENGTH_CHANGE,
+				     op->get(PREF_ALLOW_PIECE_LENGTH_CHANGE)));
     item->addTag(TAG_ADVANCED);
     tc->addItem(item);
   }
@@ -295,7 +298,7 @@ TagContainerHandle HelpItemFactory::createHelpItems()
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_FOLLOW_TORRENT, TEXT_FOLLOW_TORRENT, V_TRUE));
+    HelpItemHandle item(new HelpItem(PREF_FOLLOW_TORRENT, TEXT_FOLLOW_TORRENT, op->get(PREF_FOLLOW_TORRENT)));
     item->addTag(TAG_BITTORRENT);
     tc->addItem(item);
   }
@@ -305,7 +308,8 @@ TagContainerHandle HelpItemFactory::createHelpItems()
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_LISTEN_PORT, TEXT_LISTEN_PORT, "6881-6999"));
+    HelpItemHandle item(new HelpItem(PREF_LISTEN_PORT, TEXT_LISTEN_PORT,
+				     op->get(PREF_LISTEN_PORT)));
     item->addTag(TAG_BASIC);
     item->addTag(TAG_BITTORRENT);
     tc->addItem(item);
@@ -322,7 +326,8 @@ TagContainerHandle HelpItemFactory::createHelpItems()
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_SEED_RATIO, TEXT_SEED_RATIO, "1.0"));
+    HelpItemHandle item(new HelpItem(PREF_SEED_RATIO, TEXT_SEED_RATIO,
+				     op->get(PREF_SEED_RATIO)));
     item->addTag(TAG_BITTORRENT);
     tc->addItem(item);
   }
@@ -332,18 +337,21 @@ TagContainerHandle HelpItemFactory::createHelpItems()
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_ENABLE_PEER_EXCHANGE, TEXT_ENABLE_PEER_EXCHANGE, V_TRUE));
+    HelpItemHandle item(new HelpItem(PREF_ENABLE_PEER_EXCHANGE, TEXT_ENABLE_PEER_EXCHANGE,
+				     op->get(PREF_ENABLE_PEER_EXCHANGE)));
     item->addTag(TAG_BITTORRENT);
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_ENABLE_DHT, TEXT_ENABLE_DHT, V_FALSE));
+    HelpItemHandle item(new HelpItem(PREF_ENABLE_DHT, TEXT_ENABLE_DHT,
+				     op->get(PREF_ENABLE_DHT)));
     item->addTag(TAG_BASIC);
     item->addTag(TAG_BITTORRENT);
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_DHT_LISTEN_PORT, TEXT_DHT_LISTEN_PORT, "6881-6999"));
+    HelpItemHandle item(new HelpItem(PREF_DHT_LISTEN_PORT, TEXT_DHT_LISTEN_PORT,
+				     op->get(PREF_DHT_LISTEN_PORT)));
     item->addTag(TAG_BASIC);
     item->addTag(TAG_BITTORRENT);
     tc->addItem(item);
@@ -354,12 +362,14 @@ TagContainerHandle HelpItemFactory::createHelpItems()
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_BT_MIN_CRYPTO_LEVEL, TEXT_BT_MIN_CRYPTO_LEVEL, V_PLAIN));
+    HelpItemHandle item(new HelpItem(PREF_BT_MIN_CRYPTO_LEVEL, TEXT_BT_MIN_CRYPTO_LEVEL,
+				     op->get(PREF_BT_MIN_CRYPTO_LEVEL)));
     item->addTag(TAG_BITTORRENT);
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_BT_REQUIRE_CRYPTO, TEXT_BT_REQUIRE_CRYPTO, V_FALSE));
+    HelpItemHandle item(new HelpItem(PREF_BT_REQUIRE_CRYPTO, TEXT_BT_REQUIRE_CRYPTO,
+				     op->get(PREF_BT_REQUIRE_CRYPTO)));
     item->addTag(TAG_BITTORRENT);
     tc->addItem(item);
   }
@@ -397,17 +407,22 @@ TagContainerHandle HelpItemFactory::createHelpItems()
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_METALINK_PREFERRED_PROTOCOL, TEXT_METALINK_PREFERRED_PROTOCOL, V_NONE));
+    HelpItemHandle item(new HelpItem(PREF_METALINK_PREFERRED_PROTOCOL, TEXT_METALINK_PREFERRED_PROTOCOL,
+				     op->get(PREF_METALINK_PREFERRED_PROTOCOL)));
     item->addTag(TAG_METALINK);
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_FOLLOW_METALINK, TEXT_FOLLOW_METALINK, V_TRUE));
+    HelpItemHandle item(new HelpItem(PREF_FOLLOW_METALINK,
+				     TEXT_FOLLOW_METALINK,
+				     op->get(PREF_FOLLOW_METALINK)));
     item->addTag(TAG_METALINK);
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_METALINK_ENABLE_UNIQUE_PROTOCOL, TEXT_METALINK_ENABLE_UNIQUE_PROTOCOL, V_TRUE));
+    HelpItemHandle item(new HelpItem(PREF_METALINK_ENABLE_UNIQUE_PROTOCOL,
+				     TEXT_METALINK_ENABLE_UNIQUE_PROTOCOL,
+				     op->get(PREF_METALINK_ENABLE_UNIQUE_PROTOCOL)));
     item->addTag(TAG_METALINK);
     tc->addItem(item);
   }
@@ -428,7 +443,7 @@ TagContainerHandle HelpItemFactory::createHelpItems()
     tc->addItem(item);
   }
   {
-    HelpItemHandle item(new HelpItem(PREF_STOP, TEXT_STOP, "0"));
+    HelpItemHandle item(new HelpItem(PREF_STOP, TEXT_STOP, op->get(PREF_STOP)));
     item->addTag(TAG_ADVANCED);
     tc->addItem(item);
   }

+ 2 - 1
src/HelpItemFactory.h

@@ -41,12 +41,13 @@
 namespace aria2 {
 
 class TagContainer;
+class Option;
 
 class HelpItemFactory {
 private:
   HelpItemFactory();
 public:
-  static SharedHandle<TagContainer> createHelpItems();
+  static SharedHandle<TagContainer> createHelpItems(const Option* option);
 };
 
 } // namespace aria2

+ 12 - 5
src/option_processing.cc

@@ -56,7 +56,7 @@ extern int optind, opterr, optopt;
 namespace aria2 {
 
 extern void showVersion();
-extern void showUsage(const std::string& category);
+extern void showUsage(const std::string& category, const Option* option);
 
 static std::string toBoolArg(const char* optarg)
 {
@@ -69,10 +69,8 @@ static std::string toBoolArg(const char* optarg)
   return arg;
 }
 
-Option* option_processing(int argc, char* const argv[])
+Option* createDefaultOption()
 {
-  std::stringstream cmdstream;
-  int32_t c;
   Option* op = new Option();
   op->put(PREF_STDOUT_LOG, V_FALSE);
   op->put(PREF_DIR, ".");
@@ -144,6 +142,15 @@ Option* option_processing(int argc, char* const argv[])
   op->put(PREF_BT_MIN_CRYPTO_LEVEL, V_PLAIN);
   op->put(PREF_BT_REQUIRE_CRYPTO, V_FALSE);
   op->put(PREF_QUIET, V_FALSE);
+  op->put(PREF_STOP, "0");
+  return op;
+}
+
+Option* option_processing(int argc, char* const argv[])
+{
+  std::stringstream cmdstream;
+  int32_t c;
+  Option* op = createDefaultOption();
 
   // following options are not parsed by OptionHandler and not stored in Option.
   bool noConf = false;
@@ -487,7 +494,7 @@ Option* option_processing(int argc, char* const argv[])
 	} else {
 	  category = optarg;
 	}
-	showUsage(category);
+	showUsage(category, createDefaultOption());
 	exit(EXIT_SUCCESS);
       }
     default:

+ 2 - 2
src/version_usage.cc

@@ -94,7 +94,7 @@ void showVersion() {
   std::cout << std::endl;
 }
 
-void showUsage(const std::string& category) {
+void showUsage(const std::string& category, const Option* option) {
   printf(_("Usage: %s [options] URL ...\n"), PACKAGE_NAME);
 #ifdef ENABLE_BITTORRENT
   printf(_("       %s [options] -T TORRENT_FILE URL ...\n"), PACKAGE_NAME);
@@ -104,7 +104,7 @@ void showUsage(const std::string& category) {
 #endif // ENABLE_METALINK
   std::cout << "\n";
 
-  SharedHandle<TagContainer> tc = HelpItemFactory::createHelpItems();
+  SharedHandle<TagContainer> tc = HelpItemFactory::createHelpItems(option);
   std::deque<SharedHandle<TaggedItem> > items =
     category == V_ALL ? tc->getAllItems() : tc->search(category);
   if(items.size() > 0) {