From 7318c361bcb4c06537016f2a88813ade79fb8f2d Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 23 Aug 2011 19:13:44 +0900 Subject: [PATCH] Added geom parameter to --stream-piece-selector option. --- src/DefaultPieceStorage.cc | 9 +++++---- src/OptionHandlerFactory.cc | 3 ++- src/prefs.cc | 1 + src/prefs.h | 4 +++- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/DefaultPieceStorage.cc b/src/DefaultPieceStorage.cc index 82fe0bd6..659697db 100644 --- a/src/DefaultPieceStorage.cc +++ b/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 - (new DefaultStreamPieceSelector(bitfieldMan_)); + streamPieceSelector_.reset(new DefaultStreamPieceSelector(bitfieldMan_)); } else if(pieceSelectorOpt == V_INORDER) { - streamPieceSelector_ = SharedHandle - (new InorderStreamPieceSelector(bitfieldMan_)); + streamPieceSelector_.reset(new InorderStreamPieceSelector(bitfieldMan_)); + } else if(pieceSelectorOpt == A2_V_GEOM) { + streamPieceSelector_.reset(new GeomStreamPieceSelector(bitfieldMan_)); } } diff --git a/src/OptionHandlerFactory.cc b/src/OptionHandlerFactory.cc index 9f8f3891..59636c52 100644 --- a/src/OptionHandlerFactory.cc +++ b/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); diff --git a/src/prefs.cc b/src/prefs.cc index 92be4a48..9a4ba8a6 100644 --- a/src/prefs.cc +++ b/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 diff --git a/src/prefs.h b/src/prefs.h index 2fbe3872..802e4916 100644 --- a/src/prefs.h +++ b/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;