From: Loic Dachary Date: Sat, 31 May 2014 20:17:15 +0000 (+0200) Subject: erasure-code: ErasureCode base class X-Git-Tag: v0.85~67^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1ebce988b3401fe0440bd6d9bcdffa9caa6bc15f;p=ceph.git erasure-code: ErasureCode base class Add the ErasureCode base class for ErasureCodeJerasure and ErasureCodeIsa, for methods that can be shared among all plugins. http://tracker.ceph.com/issues/8496 Fixes: #8496 Signed-off-by: Loic Dachary --- diff --git a/src/erasure-code/ErasureCode.cc b/src/erasure-code/ErasureCode.cc new file mode 100644 index 000000000000..8b432451909d --- /dev/null +++ b/src/erasure-code/ErasureCode.cc @@ -0,0 +1,17 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* + * Ceph distributed storage system + * + * Copyright (C) 2014 Cloudwatt + * + * 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. + * + */ + +#include "ErasureCode.h" diff --git a/src/erasure-code/ErasureCode.h b/src/erasure-code/ErasureCode.h new file mode 100644 index 000000000000..25b17c743721 --- /dev/null +++ b/src/erasure-code/ErasureCode.h @@ -0,0 +1,31 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab +/* + * Ceph distributed storage system + * + * Copyright (C) 2014 Cloudwatt + * + * 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_H +#define CEPH_ERASURE_CODE_H + +#include "ErasureCodeInterface.h" + +namespace ceph { + + class ErasureCode : public ErasureCodeInterface { + public: + virtual ~ErasureCode() {} + + }; +} + +#endif diff --git a/src/erasure-code/Makefile.am b/src/erasure-code/Makefile.am index 353620be9059..5983ceaf395f 100644 --- a/src/erasure-code/Makefile.am +++ b/src/erasure-code/Makefile.am @@ -11,11 +11,13 @@ endif # WITH_BETTER_YASM_ELF64 liberasure_code_la_SOURCES = \ erasure-code/ErasureCodePlugin.cc + if LINUX liberasure_code_la_LIBADD = -ldl endif # LINUX noinst_LTLIBRARIES += liberasure_code.la noinst_HEADERS += \ + erasure-code/ErasureCode.h \ erasure-code/ErasureCodeInterface.h \ erasure-code/ErasureCodePlugin.h diff --git a/src/erasure-code/jerasure/ErasureCodeJerasure.h b/src/erasure-code/jerasure/ErasureCodeJerasure.h index 97257550b09a..cda7e5bce218 100644 --- a/src/erasure-code/jerasure/ErasureCodeJerasure.h +++ b/src/erasure-code/jerasure/ErasureCodeJerasure.h @@ -17,9 +17,9 @@ #ifndef CEPH_ERASURE_CODE_JERASURE_H #define CEPH_ERASURE_CODE_JERASURE_H -#include "erasure-code/ErasureCodeInterface.h" +#include "erasure-code/ErasureCode.h" -class ErasureCodeJerasure : public ErasureCodeInterface { +class ErasureCodeJerasure : public ErasureCode { public: int k; int m; diff --git a/src/erasure-code/jerasure/Makefile.am b/src/erasure-code/jerasure/Makefile.am index 9c31336cdee7..914d1eda6cd8 100644 --- a/src/erasure-code/jerasure/Makefile.am +++ b/src/erasure-code/jerasure/Makefile.am @@ -13,6 +13,7 @@ noinst_HEADERS += \ erasure-code/jerasure/ErasureCodeJerasure.h jerasure_sources = \ + erasure-code/ErasureCode.cc \ erasure-code/jerasure/jerasure/src/cauchy.c \ erasure-code/jerasure/jerasure/src/galois.c \ erasure-code/jerasure/jerasure/src/jerasure.c \ diff --git a/src/test/erasure-code/ErasureCodeExample.h b/src/test/erasure-code/ErasureCodeExample.h index 089345ba3476..e07a14237268 100644 --- a/src/test/erasure-code/ErasureCodeExample.h +++ b/src/test/erasure-code/ErasureCodeExample.h @@ -24,7 +24,7 @@ #include "crush/CrushWrapper.h" #include "osd/osd_types.h" -#include "erasure-code/ErasureCodeInterface.h" +#include "erasure-code/ErasureCode.h" #define FIRST_DATA_CHUNK 0 #define SECOND_DATA_CHUNK 1 @@ -35,7 +35,7 @@ #define MINIMUM_TO_RECOVER 2u -class ErasureCodeExample : public ErasureCodeInterface { +class ErasureCodeExample : public ErasureCode { public: virtual ~ErasureCodeExample() {} diff --git a/src/test/erasure-code/Makefile.am b/src/test/erasure-code/Makefile.am index b98343255a41..be1ac77de9dc 100644 --- a/src/test/erasure-code/Makefile.am +++ b/src/test/erasure-code/Makefile.am @@ -73,7 +73,9 @@ libec_test_jerasure_generic_la_LIBADD = $(PTHREAD_LIBS) $(EXTRALIBS) libec_test_jerasure_generic_la_LDFLAGS = ${AM_LDFLAGS} -export-symbols-regex '.*__erasure_code_.*' erasure_codelib_LTLIBRARIES += libec_test_jerasure_generic.la -unittest_erasure_code_plugin_SOURCES = test/erasure-code/TestErasureCodePlugin.cc +unittest_erasure_code_plugin_SOURCES = \ + erasure-code/ErasureCode.cc \ + test/erasure-code/TestErasureCodePlugin.cc unittest_erasure_code_plugin_CXXFLAGS = $(UNITTEST_CXXFLAGS) unittest_erasure_code_plugin_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) if LINUX @@ -106,26 +108,30 @@ endif check_PROGRAMS += unittest_erasure_code_plugin_jerasure if WITH_BETTER_YASM_ELF64 -unittest_erasure_code_isa_SOURCES = test/erasure-code/TestErasureCodeIsa.cc +unittest_erasure_code_isa_SOURCES = \ + erasure-code/ErasureCode.cc \ + test/erasure-code/TestErasureCodeIsa.cc unittest_erasure_code_isa_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} -unittest_erasure_code_isa_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) .libs/libec_isa.la .libs/liberasure_code.la +unittest_erasure_code_isa_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) .libs/libec_isa.la $(LIBERASURE_CODE) if LINUX unittest_erasure_code_isa_LDADD += -ldl endif check_PROGRAMS += unittest_erasure_code_isa unittest_erasure_code_plugin_isa_SOURCES = \ + erasure-code/ErasureCode.cc \ test/erasure-code/TestErasureCodePluginIsa.cc unittest_erasure_code_plugin_isa_CXXFLAGS = ${AM_CXXFLAGS} ${UNITTEST_CXXFLAGS} -unittest_erasure_code_plugin_isa_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) .libs/libec_isa.la .libs/liberasure_code.la +unittest_erasure_code_plugin_isa_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL) .libs/libec_isa.la $(LIBERASURE_CODE) if LINUX unittest_erasure_code_plugin_isa_LDADD += -ldl endif check_PROGRAMS += unittest_erasure_code_plugin_isa endif -unittest_erasure_code_example_SOURCES = test/erasure-code/TestErasureCodeExample.cc - +unittest_erasure_code_example_SOURCES = \ + erasure-code/ErasureCode.cc \ + test/erasure-code/TestErasureCodeExample.cc noinst_HEADERS += test/erasure-code/ErasureCodeExample.h unittest_erasure_code_example_CXXFLAGS = $(UNITTEST_CXXFLAGS) unittest_erasure_code_example_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL)