Botan 1.10.17
data_snk.h
Go to the documentation of this file.
1/*
2* DataSink
3* (C) 1999-2007 Jack Lloyd
4*
5* Distributed under the terms of the Botan license
6*/
7
8#ifndef BOTAN_DATA_SINK_H__
9#define BOTAN_DATA_SINK_H__
10
11#include <botan/filter.h>
12#include <iosfwd>
13
14namespace Botan {
15
16/**
17* This class represents abstract data sink objects.
18*/
19class BOTAN_DLL DataSink : public Filter
20 {
21 public:
22 bool attachable() { return false; }
24 virtual ~DataSink() {}
25 private:
26 DataSink& operator=(const DataSink&) { return (*this); }
27 DataSink(const DataSink&);
28 };
29
30/**
31* This class represents a data sink which writes its output to a stream.
32*/
33class BOTAN_DLL DataSink_Stream : public DataSink
34 {
35 public:
36 std::string name() const { return identifier; }
37
38 void write(const byte[], size_t);
39
40 /**
41 * Construct a DataSink_Stream from a stream.
42 * @param stream the stream to write to
43 * @param name identifier
44 */
45 DataSink_Stream(std::ostream& stream,
46 const std::string& name = "<std::ostream>");
47
48 /**
49 * Construct a DataSink_Stream from a stream.
50 * @param pathname the name of the file to open a stream to
51 * @param use_binary indicates whether to treat the file
52 * as a binary file or not
53 */
54 DataSink_Stream(const std::string& pathname,
55 bool use_binary = false);
56
58 private:
59 const std::string identifier;
60
61 std::ostream* sink_p;
62 std::ostream& sink;
63 };
64
65}
66
67#endif
std::string name() const
Definition data_snk.h:36
DataSink_Stream(std::ostream &stream, const std::string &name="<std::ostream>")
Definition data_snk.cpp:29
bool attachable()
Definition data_snk.h:22
virtual ~DataSink()
Definition data_snk.h:24