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 byte in[], size_t length)
virtual std::string name() const =0
virtual bool attachable()
friend class Fanout_Filter
void send(const MemoryRegion< byte > &in, size_t length)
void send(const MemoryRegion< byte > &in)
virtual void write(const byte input[], size_t length)=0