8 #ifndef BOTAN_FILTER_H__
9 #define BOTAN_FILTER_H__
11 #include <botan/secmem.h>
25 virtual std::string name()
const = 0;
32 virtual void write(
const byte input[],
size_t length) = 0;
58 void send(
const byte in[],
size_t length);
82 Filter& operator=(
const Filter&) {
return (*
this); }
99 size_t total_ports()
const;
100 size_t current_port()
const {
return port_num; }
106 void set_port(
size_t new_port);
108 size_t owns()
const {
return filter_owns; }
114 void attach(Filter* f);
120 void set_next(Filter* filters[],
size_t count);
121 Filter* get_next()
const;
123 SecureVector<byte> write_queue;
124 std::vector<Filter*> next;
125 size_t port_num, filter_owns;
void set_next(Filter *f[], size_t n)
void send(const MemoryRegion< byte > &in)
void send(const MemoryRegion< byte > &in, size_t length)
virtual bool attachable()