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 ""; }
    59       virtual bool check_available(
size_t n) = 0;
    67       size_t read_byte(
byte& out);
    75       size_t peek_byte(
byte& out) 
const;
    82       size_t discard_next(
size_t N);
    97       size_t read(
byte[], 
size_t);
    98       size_t peek(
byte[], 
size_t, 
size_t) 
const;
    99       bool check_available(
size_t n);
   100       bool end_of_data() 
const;
   131       size_t read(
byte[], 
size_t);
   132       size_t peek(
byte[], 
size_t, 
size_t) 
const;
   133       bool check_available(
size_t n);
   134       bool end_of_data() 
const;
   135       std::string id() 
const;
   138                         const std::string& 
id = 
"<std::istream>");
   149       const std::string identifier;
   151       std::istream* source_p;
   152       std::istream& source;
 
virtual std::string id() const