Browse Source

Added geom parameter to --stream-piece-selector option.

Tatsuhiro Tsujikawa 14 years ago
parent
commit
7318c361bc
4 changed files with 11 additions and 6 deletions
  1. 5 4
      src/DefaultPieceStorage.cc
  2. 2 1
      src/OptionHandlerFactory.cc
  3. 1 0
      src/prefs.cc
  4. 3 1
      src/prefs.h

+ 5 - 4
src/DefaultPieceStorage.cc

@@ -58,6 +58,7 @@
 #include "RarestPieceSelector.h"
 #include "DefaultStreamPieceSelector.h"
 #include "InorderStreamPieceSelector.h"
+#include "GeomStreamPieceSelector.h"
 #include "array_fun.h"
 #include "PieceStatMan.h"
 #include "wallclock.h"
@@ -83,11 +84,11 @@ DefaultPieceStorage::DefaultPieceStorage
   const std::string& pieceSelectorOpt =
     option_->get(PREF_STREAM_PIECE_SELECTOR);
   if(pieceSelectorOpt.empty() || pieceSelectorOpt == A2_V_DEFAULT) {
-    streamPieceSelector_ = SharedHandle<StreamPieceSelector>
-      (new DefaultStreamPieceSelector(bitfieldMan_));
+    streamPieceSelector_.reset(new DefaultStreamPieceSelector(bitfieldMan_));
   } else if(pieceSelectorOpt == V_INORDER) {
-    streamPieceSelector_ = SharedHandle<StreamPieceSelector>
-      (new InorderStreamPieceSelector(bitfieldMan_));
+    streamPieceSelector_.reset(new InorderStreamPieceSelector(bitfieldMan_));
+  } else if(pieceSelectorOpt == A2_V_GEOM) {
+    streamPieceSelector_.reset(new GeomStreamPieceSelector(bitfieldMan_));
   }
 }
 

+ 2 - 1
src/OptionHandlerFactory.cc

@@ -859,7 +859,8 @@ OptionHandlers OptionHandlerFactory::createOptionHandlers()
                                     TEXT_STREAM_PIECE_SELECTOR,
                                     A2_V_DEFAULT,
                                     A2_V_DEFAULT,
-                                    V_INORDER));
+                                    V_INORDER,
+                                    A2_V_GEOM));
     op->addTag(TAG_FTP);
     op->addTag(TAG_HTTP);
     handlers.push_back(op);

+ 1 - 0
src/prefs.cc

@@ -46,6 +46,7 @@ const std::string V_NONE("none");
 const std::string V_MEM("mem");
 const std::string V_ALL("all");
 const std::string A2_V_FULL("full");
+const std::string A2_V_GEOM("geom");
 
 /**
  * General preferences

+ 3 - 1
src/prefs.h

@@ -50,6 +50,8 @@ extern const std::string V_NONE;
 extern const std::string V_MEM;
 extern const std::string V_ALL;
 extern const std::string A2_V_FULL;
+extern const std::string A2_V_GEOM;
+
 /**
  * General preferences
  */
@@ -216,7 +218,7 @@ extern const std::string PREF_RETRY_WAIT;
 extern const std::string PREF_ASYNC_DNS_SERVER;
 // value: true | false
 extern const std::string PREF_SHOW_CONSOLE_READOUT;
-// value: default | inorder
+// value: default | inorder | geom
 extern const std::string PREF_STREAM_PIECE_SELECTOR;
 // value: true | false
 extern const std::string PREF_TRUNCATE_CONSOLE_READOUT;