From 9760c220b80c79f61819d683b36114a1f46f18f6 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Mon, 6 Jul 2015 12:53:59 +0800 Subject: [PATCH] erasure-code: do not hide overloaded ErasureCode::parse() * this change fixes the warning from clang: ErasureCodeJerasure::parse' hides overloaded virtual function [-Woverloaded-virtual] * some erasure codecs' ErasureCode::parse() rewrites the profile using the default values when parsing it if the corresponding items are not specified. and we don't call ErasureCode::parse() via its children's references. so no need to make it a virtual function. * and ErasureCode::parse() is used as a helper function by its children, so make it `protected` * and parse() in ErasureCode's children is but a helper function called by ctor, descendants' parse() and init(). so make them protected or private accordingly. Signed-off-by: Kefu Chai --- src/erasure-code/ErasureCode.h | 7 ++++--- src/erasure-code/isa/ErasureCodeIsa.h | 13 ++++++------- .../jerasure/ErasureCodeJerasure.h | 19 ++++++++++++------- src/erasure-code/shec/ErasureCodeShec.h | 6 ++++-- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/erasure-code/ErasureCode.h b/src/erasure-code/ErasureCode.h index 294f538e5de4a..bad6d8140f37c 100644 --- a/src/erasure-code/ErasureCode.h +++ b/src/erasure-code/ErasureCode.h @@ -78,9 +78,6 @@ namespace ceph { const map &chunks, map *decoded); - virtual int parse(const ErasureCodeProfile &profile, - ostream *ss); - virtual const vector &get_chunk_mapping() const; int to_mapping(const ErasureCodeProfile &profile, @@ -107,6 +104,10 @@ namespace ceph { virtual int decode_concat(const map &chunks, bufferlist *decoded); + protected: + int parse(const ErasureCodeProfile &profile, + ostream *ss); + private: int chunk_index(unsigned int i) const; }; diff --git a/src/erasure-code/isa/ErasureCodeIsa.h b/src/erasure-code/isa/ErasureCodeIsa.h index e7c6525b32112..63aa5f3403604 100644 --- a/src/erasure-code/isa/ErasureCodeIsa.h +++ b/src/erasure-code/isa/ErasureCodeIsa.h @@ -108,11 +108,11 @@ public: virtual unsigned get_alignment() const = 0; - virtual int parse(ErasureCodeProfile &profile, - ostream *ss) = 0; - virtual void prepare() = 0; + private: + virtual int parse(ErasureCodeProfile &profile, + ostream *ss) = 0; }; // ----------------------------------------------------------------------------- @@ -157,12 +157,11 @@ public: virtual unsigned get_alignment() const; - virtual int parse(ErasureCodeProfile &profile, - ostream *ss); - virtual void prepare(); - + private: + virtual int parse(ErasureCodeProfile &profile, + ostream *ss); }; #endif diff --git a/src/erasure-code/jerasure/ErasureCodeJerasure.h b/src/erasure-code/jerasure/ErasureCodeJerasure.h index 51c319ebcf26d..df60dac6a35f1 100644 --- a/src/erasure-code/jerasure/ErasureCodeJerasure.h +++ b/src/erasure-code/jerasure/ErasureCodeJerasure.h @@ -51,8 +51,6 @@ public: virtual ~ErasureCodeJerasure() {} - virtual int parse(ErasureCodeProfile &profile, ostream *ss); - virtual int create_ruleset(const string &name, CrushWrapper &crush, ostream *ss) const; @@ -86,6 +84,8 @@ public: virtual unsigned get_alignment() const = 0; virtual void prepare() = 0; static bool is_prime(int value); +protected: + virtual int parse(ErasureCodeProfile &profile, ostream *ss); }; class ErasureCodeJerasureReedSolomonVandermonde : public ErasureCodeJerasure { @@ -113,8 +113,9 @@ public: char **coding, int blocksize); virtual unsigned get_alignment() const; - virtual int parse(ErasureCodeProfile &profile, ostream *ss); virtual void prepare(); +private: + virtual int parse(ErasureCodeProfile &profile, ostream *ss); }; class ErasureCodeJerasureReedSolomonRAID6 : public ErasureCodeJerasure { @@ -141,8 +142,9 @@ public: char **coding, int blocksize); virtual unsigned get_alignment() const; - virtual int parse(ErasureCodeProfile &profile, ostream *ss); virtual void prepare(); +private: + virtual int parse(ErasureCodeProfile &profile, ostream *ss); }; #define DEFAULT_PACKETSIZE "2048" @@ -177,8 +179,9 @@ public: char **coding, int blocksize); virtual unsigned get_alignment() const; - virtual int parse(ErasureCodeProfile &profile, ostream *ss); void prepare_schedule(int *matrix); +private: + virtual int parse(ErasureCodeProfile &profile, ostream *ss); }; class ErasureCodeJerasureCauchyOrig : public ErasureCodeJerasureCauchy { @@ -230,8 +233,9 @@ public: virtual bool check_packetsize(ostream *ss) const; virtual int revert_to_default(ErasureCodeProfile &profile, ostream *ss); - virtual int parse(ErasureCodeProfile &profile, ostream *ss); virtual void prepare(); +private: + virtual int parse(ErasureCodeProfile &profile, ostream *ss); }; class ErasureCodeJerasureBlaumRoth : public ErasureCodeJerasureLiberation { @@ -255,8 +259,9 @@ public: DEFAULT_W = "8"; } - virtual int parse(ErasureCodeProfile &profile, ostream *ss); virtual void prepare(); +private: + virtual int parse(ErasureCodeProfile &profile, ostream *ss); }; #endif diff --git a/src/erasure-code/shec/ErasureCodeShec.h b/src/erasure-code/shec/ErasureCodeShec.h index 672e0fa44fad1..a943f0859725f 100644 --- a/src/erasure-code/shec/ErasureCodeShec.h +++ b/src/erasure-code/shec/ErasureCodeShec.h @@ -115,8 +115,9 @@ public: char **coding, int blocksize) = 0; virtual unsigned get_alignment() const = 0; - virtual int parse(const ErasureCodeProfile &profile) = 0; virtual void prepare() = 0; +private: + virtual int parse(const ErasureCodeProfile &profile) = 0; }; class ErasureCodeShecReedSolomonVandermonde : public ErasureCodeShec { @@ -139,8 +140,9 @@ public: char **coding, int blocksize); virtual unsigned get_alignment() const; - virtual int parse(const ErasureCodeProfile &profile); virtual void prepare(); +private: + virtual int parse(const ErasureCodeProfile &profile); }; #endif -- 2.39.5