X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Ferasure-code%2Fshec%2FErasureCodeShec.h;fp=src%2Fceph%2Fsrc%2Ferasure-code%2Fshec%2FErasureCodeShec.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=073644e7ad0a6225a51180526e355d6c5b4ab545;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/erasure-code/shec/ErasureCodeShec.h b/src/ceph/src/erasure-code/shec/ErasureCodeShec.h deleted file mode 100644 index 073644e..0000000 --- a/src/ceph/src/erasure-code/shec/ErasureCodeShec.h +++ /dev/null @@ -1,147 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2014 FUJITSU LIMITED - * Copyright (C) 2013, 2014 Cloudwatt - * Copyright (C) 2014 Red Hat - * - * Author: Takanori Nakao - * Author: Takeshi Miyamae - * Author: Loic Dachary - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - */ - -#ifndef CEPH_ERASURE_CODE_SHEC_H -#define CEPH_ERASURE_CODE_SHEC_H - -#include "erasure-code/ErasureCode.h" -#include "ErasureCodeShecTableCache.h" - -class ErasureCodeShec : public ErasureCode { - -public: - enum { - MULTIPLE = 0, - SINGLE = 1 - }; - - ErasureCodeShecTableCache &tcache; - int k; - int DEFAULT_K; - int m; - int DEFAULT_M; - int c; - int DEFAULT_C; - int w; - int DEFAULT_W; - int technique; - int *matrix; - - ErasureCodeShec(const int _technique, - ErasureCodeShecTableCache &_tcache) : - tcache(_tcache), - k(0), - DEFAULT_K(4), - m(0), - DEFAULT_M(3), - c(0), - DEFAULT_C(2), - w(0), - DEFAULT_W(8), - technique(_technique), - matrix(0) - {} - - ~ErasureCodeShec() override {} - - unsigned int get_chunk_count() const override { - return k + m; - } - - unsigned int get_data_chunk_count() const override { - return k; - } - - unsigned int get_chunk_size(unsigned int object_size) const override; - - int minimum_to_decode(const set &want_to_read, - const set &available_chunks, - set *minimum) override; - - int minimum_to_decode_with_cost(const set &want_to_read, - const map &available, - set *minimum) override; - - int encode(const set &want_to_encode, - const bufferlist &in, - map *encoded) override; - int encode_chunks(const set &want_to_encode, - map *encoded) override; - - int decode(const set &want_to_read, - const map &chunks, - map *decoded) override; - int decode_chunks(const set &want_to_read, - const map &chunks, - map *decoded) override; - - int init(ErasureCodeProfile &profile, ostream *ss) override; - virtual void shec_encode(char **data, - char **coding, - int blocksize) = 0; - virtual int shec_decode(int *erasures, - int *avails, - char **data, - char **coding, - int blocksize) = 0; - virtual unsigned get_alignment() const = 0; - virtual void prepare() = 0; - - virtual int shec_matrix_decode(int *erased, int *avails, - char **data_ptrs, char **coding_ptrs, int size); - virtual int* shec_reedsolomon_coding_matrix(int is_single); - -private: - virtual int parse(const ErasureCodeProfile &profile) = 0; - - virtual double shec_calc_recovery_efficiency1(int k, int m1, int m2, int c1, int c2); - virtual int shec_make_decoding_matrix(bool prepare, - int *want, int *avails, - int *decoding_matrix, - int *dm_row, int *dm_column, - int *minimum); -}; - -class ErasureCodeShecReedSolomonVandermonde : public ErasureCodeShec { -public: - - ErasureCodeShecReedSolomonVandermonde(ErasureCodeShecTableCache &_tcache, - int technique = MULTIPLE) : - ErasureCodeShec(technique, _tcache) - {} - - ~ErasureCodeShecReedSolomonVandermonde() override { - } - - void shec_encode(char **data, - char **coding, - int blocksize) override; - int shec_decode(int *erasures, - int *avails, - char **data, - char **coding, - int blocksize) override; - unsigned get_alignment() const override; - void prepare() override; -private: - int parse(const ErasureCodeProfile &profile) override; -}; - -#endif