8 #ifndef BOTAN_DATA_SRC_H__
9 #define BOTAN_DATA_SRC_H__
11 #include <botan/secmem.h>
32 virtual size_t read(
byte out[],
size_t length) = 0;
45 virtual size_t peek(
byte out[],
size_t length,
46 size_t peek_offset)
const = 0;
52 virtual bool end_of_data()
const = 0;
57 virtual std::string
id()
const {
return ""; }
65 size_t read_byte(
byte& out);
73 size_t peek_byte(
byte& out)
const;
80 size_t discard_next(
size_t N);
86 DataSource(
const DataSource&);
95 size_t read(
byte[],
size_t);
96 size_t peek(
byte[],
size_t,
size_t)
const;
97 bool end_of_data()
const;
128 size_t read(
byte[],
size_t);
129 size_t peek(
byte[],
size_t,
size_t)
const;
130 bool end_of_data()
const;
131 std::string id()
const;
134 const std::string&
id =
"<std::istream>");
145 const std::string identifier;
147 std::istream* source_p;
148 std::istream& source;
virtual std::string id() const