9 #ifndef BOTAN_BASEFILT_H__
10 #define BOTAN_BASEFILT_H__
12 #include <botan/filter.h>
14 #if defined(BOTAN_TARGET_OS_HAS_THREADS)
25 void write(
const uint8_t[],
size_t)
override {}
27 std::string
name()
const override {
return "BitBucket"; }
39 void write(
const uint8_t input[],
size_t length)
override { send(input, length); }
41 std::string name()
const override;
66 void write(
const uint8_t input[],
size_t length)
override { send(input, length); }
69 std::string name()
const override;
84 #if defined(BOTAN_TARGET_OS_HAS_THREADS)
91 class BOTAN_DLL Threaded_Fork :
public Fork
94 std::string name()
const override;
99 Threaded_Fork(Filter*, Filter*, Filter* =
nullptr, Filter* =
nullptr);
106 Threaded_Fork(Filter* filter_arr[],
size_t length);
111 void set_next(Filter* f[],
size_t n);
112 void send(
const uint8_t in[],
size_t length)
override;
115 void thread_delegate_work(
const uint8_t input[],
size_t length);
116 void thread_entry(Filter* filter);
118 std::vector<std::shared_ptr<std::thread>> m_threads;
119 std::unique_ptr<struct Threaded_Fork_Data> m_thread_data;
std::string name() const override
void write(const uint8_t[], size_t) override
void write(const uint8_t input[], size_t length) override
void write(const uint8_t input[], size_t length) override