From: Loic Dachary Date: Wed, 6 Aug 2014 11:54:49 +0000 (+0200) Subject: erasure-code: move to ErasureCode::decode_concat X-Git-Tag: v0.85~67^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=77690f668fa34731b057f45d2c5fee56113a3917;p=ceph.git erasure-code: move to ErasureCode::decode_concat It does not belong to ErasureCodeInterface which is supposed to not have any implementation. Signed-off-by: Loic Dachary --- diff --git a/src/erasure-code/ErasureCode.cc b/src/erasure-code/ErasureCode.cc index 95bf13a49d1e2..25de8e137e378 100644 --- a/src/erasure-code/ErasureCode.cc +++ b/src/erasure-code/ErasureCode.cc @@ -183,3 +183,17 @@ int ErasureCode::to_bool(const std::string &name, *value = (p == "yes") || (p == "true"); return 0; } + +int ErasureCode::decode_concat(const map &chunks, + bufferlist *decoded) +{ + set want_to_read; + for (unsigned int i = 0; i < get_data_chunk_count(); i++) + want_to_read.insert(i); + map decoded_map; + int r = decode(want_to_read, chunks, &decoded_map); + if (r == 0) + for (unsigned int i = 0; i < get_data_chunk_count(); i++) + decoded->claim_append(decoded_map[i]); + return r; +} diff --git a/src/erasure-code/ErasureCode.h b/src/erasure-code/ErasureCode.h index 97ec687aed181..63306db2378f9 100644 --- a/src/erasure-code/ErasureCode.h +++ b/src/erasure-code/ErasureCode.h @@ -66,6 +66,9 @@ namespace ceph { bool *value, bool default_value, ostream *ss); + + virtual int decode_concat(const map &chunks, + bufferlist *decoded); }; } diff --git a/src/erasure-code/ErasureCodeInterface.h b/src/erasure-code/ErasureCodeInterface.h index 06ee373357af3..328e323546e44 100644 --- a/src/erasure-code/ErasureCodeInterface.h +++ b/src/erasure-code/ErasureCodeInterface.h @@ -358,17 +358,7 @@ namespace ceph { * @return **0** on success or a negative errno on error. */ virtual int decode_concat(const map &chunks, - bufferlist *decoded) { - set want_to_read; - for (unsigned int i = 0; i < get_data_chunk_count(); i++) - want_to_read.insert(i); - map decoded_map; - int r = decode(want_to_read, chunks, &decoded_map); - if (r == 0) - for (unsigned int i = 0; i < get_data_chunk_count(); i++) - decoded->claim_append(decoded_map[i]); - return r; - } + bufferlist *decoded) = 0; }; typedef ceph::shared_ptr ErasureCodeInterfaceRef;