Botan  1.10.9
Public Member Functions | Protected Member Functions | Friends | List of all members
Botan::Filter Class Referenceabstract

#include <filter.h>

Inheritance diagram for Botan::Filter:
Botan::Base64_Decoder Botan::Base64_Encoder Botan::BitBucket Botan::Bzip_Compression Botan::Bzip_Decompression Botan::DataSink Botan::Fanout_Filter Botan::Hash_Filter Botan::Hex_Decoder Botan::Hex_Encoder Botan::Keyed_Filter Botan::PBE Botan::PK_Decryptor_Filter Botan::PK_Encryptor_Filter Botan::PK_Signer_Filter Botan::PK_Verifier_Filter Botan::Zlib_Compression Botan::Zlib_Decompression

Public Member Functions

virtual bool attachable ()
 
virtual void end_msg ()
 
virtual std::string name () const =0
 
virtual void start_msg ()
 
virtual void write (const byte input[], size_t length)=0
 
virtual ~Filter ()
 

Protected Member Functions

 Filter ()
 
void send (const byte in[], size_t length)
 
void send (byte in)
 
void send (const MemoryRegion< byte > &in)
 
void send (const MemoryRegion< byte > &in, size_t length)
 

Friends

class Fanout_Filter
 
class Pipe
 

Detailed Description

This class represents general abstract filter objects.

Definition at line 19 of file filter.h.

Constructor & Destructor Documentation

virtual Botan::Filter::~Filter ( )
inlinevirtual

Definition at line 52 of file filter.h.

52 {}
Botan::Filter::Filter ( )
protected

Definition at line 17 of file filter.cpp.

18  {
19  next.resize(1);
20  port_num = 0;
21  filter_owns = 0;
22  owned = false;
23  }

Member Function Documentation

virtual bool Botan::Filter::attachable ( )
inlinevirtual

Check whether this filter is an attachable filter.

Returns
true if this filter is attachable, false otherwise

Reimplemented in Botan::SecureQueue, and Botan::DataSink.

Definition at line 50 of file filter.h.

50 { return true; }
virtual void Botan::Filter::end_msg ( )
inlinevirtual
virtual std::string Botan::Filter::name ( ) const
pure virtual
void Botan::Filter::send ( const byte  in[],
size_t  length 
)
protected
Parameters
insome input for the filter
lengththe length of in

Definition at line 28 of file filter.cpp.

References Botan::MemoryRegion< T >::clear(), Botan::MemoryRegion< T >::size(), and write().

Referenced by Botan::PK_Encryptor_Filter::end_msg(), Botan::Zlib_Compression::end_msg(), Botan::Bzip_Compression::end_msg(), Botan::Hex_Encoder::end_msg(), Botan::Base64_Encoder::end_msg(), Botan::PK_Decryptor_Filter::end_msg(), Botan::Bzip_Decompression::end_msg(), Botan::Zlib_Decompression::end_msg(), Botan::PK_Signer_Filter::end_msg(), Botan::Hex_Decoder::end_msg(), Botan::Base64_Decoder::end_msg(), Botan::PK_Verifier_Filter::end_msg(), Botan::Hash_Filter::end_msg(), Botan::MAC_Filter::end_msg(), Botan::Bzip_Compression::flush(), Botan::Zlib_Compression::flush(), Botan::Zlib_Compression::write(), Botan::Bzip_Compression::write(), Botan::StreamCipher_Filter::write(), Botan::Bzip_Decompression::write(), Botan::Zlib_Decompression::write(), Botan::Hex_Decoder::write(), and Botan::Base64_Decoder::write().

29  {
30  bool nothing_attached = true;
31  for(size_t j = 0; j != total_ports(); ++j)
32  if(next[j])
33  {
34  if(write_queue.size())
35  next[j]->write(&write_queue[0], write_queue.size());
36  next[j]->write(input, length);
37  nothing_attached = false;
38  }
39 
40  if(nothing_attached)
41  write_queue += std::make_pair(input, length);
42  else
43  write_queue.clear();
44  }
virtual void write(const byte input[], size_t length)=0
size_t size() const
Definition: secmem.h:29
void Botan::Filter::send ( byte  in)
inlineprotected
Parameters
insome input for the filter

Definition at line 63 of file filter.h.

References send().

Referenced by send().

63 { send(&in, 1); }
void send(const byte in[], size_t length)
Definition: filter.cpp:28
void Botan::Filter::send ( const MemoryRegion< byte > &  in)
inlineprotected
Parameters
insome input for the filter

Definition at line 68 of file filter.h.

References send(), and Botan::MemoryRegion< T >::size().

Referenced by send().

68 { send(&in[0], in.size()); }
void send(const byte in[], size_t length)
Definition: filter.cpp:28
size_t size() const
Definition: secmem.h:29
void Botan::Filter::send ( const MemoryRegion< byte > &  in,
size_t  length 
)
inlineprotected
Parameters
insome input for the filter
lengththe number of bytes of in to send

Definition at line 74 of file filter.h.

75  {
76  send(&in[0], length);
77  }
void send(const byte in[], size_t length)
Definition: filter.cpp:28
virtual void Botan::Filter::start_msg ( )
inlinevirtual

Start a new message. Must be closed by end_msg() before another message can be started.

Reimplemented in Botan::Zlib_Decompression, Botan::EAX_Base, Botan::Bzip_Decompression, Botan::PBE_PKCS5v20, Botan::PBE_PKCS5v15, Botan::Bzip_Compression, and Botan::Zlib_Compression.

Definition at line 38 of file filter.h.

38 {}
virtual void Botan::Filter::write ( const byte  input[],
size_t  length 
)
pure virtual

Friends And Related Function Documentation

friend class Fanout_Filter
friend

Definition at line 97 of file filter.h.

friend class Pipe
friend

Definition at line 96 of file filter.h.


The documentation for this class was generated from the following files: