Botan 1.10.17
Botan::DataSink_Stream Class Reference

#include <data_snk.h>

Inheritance diagram for Botan::DataSink_Stream:
Botan::DataSink Botan::Filter

Public Member Functions

bool attachable ()
 DataSink_Stream (const std::string &pathname, bool use_binary=false)
 DataSink_Stream (std::ostream &stream, const std::string &name="<std::ostream>")
virtual void end_msg ()
std::string name () const
virtual void start_msg ()
void write (const byte[], size_t)
 ~DataSink_Stream ()

Protected Member Functions

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

Detailed Description

This class represents a data sink which writes its output to a stream.

Definition at line 33 of file data_snk.h.

Constructor & Destructor Documentation

◆ DataSink_Stream() [1/2]

Botan::DataSink_Stream::DataSink_Stream ( std::ostream & stream,
const std::string & name = "<std::ostream>" )

Construct a DataSink_Stream from a stream.

Parameters
streamthe stream to write to
nameidentifier

Definition at line 29 of file data_snk.cpp.

30 :
31 identifier(name),
32 sink_p(0),
33 sink(out)
34 {
35 }
std::string name() const
Definition data_snk.h:36

References name().

◆ DataSink_Stream() [2/2]

Botan::DataSink_Stream::DataSink_Stream ( const std::string & pathname,
bool use_binary = false )

Construct a DataSink_Stream from a stream.

Parameters
pathnamethe name of the file to open a stream to
use_binaryindicates whether to treat the file as a binary file or not

Definition at line 40 of file data_snk.cpp.

41 :
42 identifier(path),
43 sink_p(new std::ofstream(
44 path.c_str(),
45 use_binary ? std::ios::binary : std::ios::out)),
46 sink(*sink_p)
47 {
48 if(!sink.good())
49 {
50 delete sink_p;
51 throw Stream_IO_Error("DataSink_Stream: Failure opening " + path);
52 }
53 }
Stream_IO_Error(const std::string &err)
Definition exceptn.h:167

◆ ~DataSink_Stream()

Botan::DataSink_Stream::~DataSink_Stream ( )

Definition at line 58 of file data_snk.cpp.

59 {
60 delete sink_p;
61 }

Member Function Documentation

◆ attachable()

bool Botan::DataSink::attachable ( )
inlinevirtualinherited

Check whether this filter is an attachable filter.

Returns
true if this filter is attachable, false otherwise

Reimplemented from Botan::Filter.

Definition at line 22 of file data_snk.h.

22{ return false; }

◆ end_msg()

virtual void Botan::Filter::end_msg ( )
inlinevirtualinherited

◆ name()

std::string Botan::DataSink_Stream::name ( ) const
inlinevirtual
Returns
descriptive name for this filter

Implements Botan::Filter.

Definition at line 36 of file data_snk.h.

36{ return identifier; }

Referenced by DataSink_Stream().

◆ send() [1/4]

void Botan::Filter::send ( byte in)
inlineprotectedinherited
Parameters
insome input for the filter

Definition at line 63 of file filter.h.

63{ send(&in, 1); }
void send(const byte in[], size_t length)
Definition filter.cpp:28

References send().

Referenced by send().

◆ send() [2/4]

void Botan::Filter::send ( const byte in[],
size_t length )
protectedinherited

◆ send() [3/4]

void Botan::Filter::send ( const MemoryRegion< byte > & in)
inlineprotectedinherited
Parameters
insome input for the filter

Definition at line 68 of file filter.h.

68{ send(&in[0], in.size()); }

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

Referenced by send().

◆ send() [4/4]

void Botan::Filter::send ( const MemoryRegion< byte > & in,
size_t length )
inlineprotectedinherited
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 }

References send().

◆ start_msg()

virtual void Botan::Filter::start_msg ( )
inlinevirtualinherited

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

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

Definition at line 38 of file filter.h.

38{}

◆ write()

void Botan::DataSink_Stream::write ( const byte input[],
size_t length )
virtual

Write a portion of a message to this filter.

Parameters
inputthe input as a byte array
lengththe length of the byte array input

Implements Botan::Filter.

Definition at line 18 of file data_snk.cpp.

19 {
20 sink.write(reinterpret_cast<const char*>(out), length);
21 if(!sink.good())
22 throw Stream_IO_Error("DataSink_Stream: Failure writing to " +
23 identifier);
24 }

References Botan::Stream_IO_Error::Stream_IO_Error().


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