Botan 1.10.17
basefilt.cpp
Go to the documentation of this file.
1/*
2* Basic Filters
3* (C) 1999-2007 Jack Lloyd
4*
5* Distributed under the terms of the Botan license
6*/
7
8#include <botan/basefilt.h>
9#include <botan/key_filt.h>
10
11namespace Botan {
12
14 {
15 if(iv.length() != 0)
16 throw Invalid_IV_Length(name(), iv.length());
17 }
18
19/*
20* Chain Constructor
21*/
23 {
24 if(f1) { attach(f1); incr_owns(); }
25 if(f2) { attach(f2); incr_owns(); }
26 if(f3) { attach(f3); incr_owns(); }
27 if(f4) { attach(f4); incr_owns(); }
28 }
29
30/*
31* Chain Constructor
32*/
33Chain::Chain(Filter* filters[], size_t count)
34 {
35 for(size_t j = 0; j != count; ++j)
36 if(filters[j])
37 {
38 attach(filters[j]);
39 incr_owns();
40 }
41 }
42
43std::string Chain::name() const
44 {
45 return "Chain";
46 }
47
48/*
49* Fork Constructor
50*/
52 {
53 Filter* filters[4] = { f1, f2, f3, f4 };
54 set_next(filters, 4);
55 }
56
57/*
58* Fork Constructor
59*/
60Fork::Fork(Filter* filters[], size_t count)
61 {
62 set_next(filters, count);
63 }
64
65std::string Fork::name() const
66 {
67 return "Fork";
68 }
69
70}
std::string name() const
Definition basefilt.cpp:43
Chain(Filter *=0, Filter *=0, Filter *=0, Filter *=0)
Definition basefilt.cpp:22
void set_next(Filter *f[], size_t n)
Definition filter.h:144
void attach(Filter *f)
Definition filter.h:146
virtual std::string name() const =0
std::string name() const
Definition basefilt.cpp:65
Fork(Filter *, Filter *, Filter *=0, Filter *=0)
Definition basefilt.cpp:51
virtual void set_iv(const InitializationVector &iv)
Definition basefilt.cpp:13
size_t length() const
Definition symkey.h:25
OctetString InitializationVector
Definition symkey.h:152
Invalid_IV_Length(const std::string &mode, size_t bad_len)
Definition exceptn.h:80