*
*/
-#include <ostream>
-
-// -----------------------------------------------------------------------------
+#include "acconfig.h"
#include "ceph_ver.h"
-#include "compressor/CompressionPlugin.h"
-#include "ZstdCompressor.h"
-// -----------------------------------------------------------------------------
-
-class CompressionPluginZstd : public CompressionPlugin {
+#include "CompressionPluginZstd.h"
-public:
-
- explicit CompressionPluginZstd(CephContext* cct) : CompressionPlugin(cct)
- {}
-
- virtual int factory(CompressorRef *cs,
- std::ostream *ss)
- {
- if (compressor == 0) {
- ZstdCompressor *interface = new ZstdCompressor();
- compressor = CompressorRef(interface);
- }
- *cs = compressor;
- return 0;
- }
-};
+#ifndef BUILDING_FOR_EMBEDDED
// -----------------------------------------------------------------------------
return instance->add(type, name, new CompressionPluginZstd(cct));
}
+
+#endif // !BUILDING_FOR_EMBEDDED
--- /dev/null
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2015 Mirantis, Inc.
+ *
+ * Author: Alyona Kiseleva <akiselyova@mirantis.com>
+ *
+ * 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_COMPRESSION_PLUGIN_ZSTD_H
+#define CEPH_COMPRESSION_PLUGIN_ZSTD_H
+
+// -----------------------------------------------------------------------------
+#include "ceph_ver.h"
+#include "compressor/CompressionPlugin.h"
+#include "ZstdCompressor.h"
+// -----------------------------------------------------------------------------
+
+class CompressionPluginZstd : public CompressionPlugin {
+
+public:
+
+ explicit CompressionPluginZstd(CephContext* cct) : CompressionPlugin(cct)
+ {}
+
+ virtual int factory(CompressorRef *cs,
+ std::ostream *ss)
+ {
+ if (compressor == 0) {
+ ZstdCompressor *interface = new ZstdCompressor();
+ compressor = CompressorRef(interface);
+ }
+ *cs = compressor;
+ return 0;
+ }
+};
+
+#endif
#include "common/PluginRegistry.h"
#include "compressor/snappy/CompressionPluginSnappy.h"
#include "compressor/zlib/CompressionPluginZlib.h"
+#include "compressor/zstd/CompressionPluginZstd.h"
#include "erasure-code/ErasureCodePlugin.h"
#if __x86_64__ && defined(HAVE_BETTER_YASM_ELF64)
#include "erasure-code/isa/ErasureCodePluginIsa.h"
delete plugin;
}
assert(r == 0);
+
+ plugin = new CompressionPluginZstd(g_ceph_context);
+ r = reg->add("compressor", "zstd", plugin);
+ if (r == -EEXIST) {
+ delete plugin;
+ }
+ assert(r == 0);
}
}
set_target_properties(ceph_test_cephd_api_misc PROPERTIES COMPILE_FLAGS
${UNITTEST_CXX_FLAGS})
target_link_libraries(ceph_test_cephd_api_misc
- cephd global ${UNITTEST_LIBS} cephdtest z snappy)
+ cephd global ${UNITTEST_LIBS} cephdtest z snappy ceph_zstd)
install(TARGETS
ceph_test_cephd_api_misc