retdec
byte_array_buffer.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_FILEFORMAT_UTILS_BYTE_ARRAY_BUFFER_H
8 #define RETDEC_FILEFORMAT_UTILS_BYTE_ARRAY_BUFFER_H
9 
10 #include <streambuf>
11 
12 namespace retdec {
13 namespace fileformat {
14 
22 class byte_array_buffer : public std::streambuf
23 {
24  public:
25  byte_array_buffer(const std::uint8_t* begin, const std::uint8_t* end);
26  byte_array_buffer(const std::uint8_t* data, const std::size_t size);
27 
28  private:
29  int_type underflow();
30  int_type uflow();
31  int_type pbackfail(int_type ch);
32  std::streamsize showmanyc();
33 
34  std::streampos seekoff(
35  std::streamoff off,
36  std::ios_base::seekdir way,
37  std::ios_base::openmode which = std::ios_base::in | std::ios_base::out);
38  std::streampos seekpos(std::streampos sp,
39  std::ios_base::openmode which = std::ios_base::in | std::ios_base::out);
40 
41  // copy ctor and assignment not implemented;
42  // copying not allowed
45 
46  private:
47  const std::uint8_t* const begin_ = nullptr;
48  const std::uint8_t* const end_ = nullptr;
49  const std::uint8_t* current_ = nullptr;
50 };
51 
52 } // namespace fileformat
53 } // namespace retdec
54 
55 #endif
Definition: byte_array_buffer.h:23
byte_array_buffer & operator=(const byte_array_buffer &)
const std::uint8_t * current_
Definition: byte_array_buffer.h:49
int_type underflow()
Definition: byte_array_buffer.cpp:33
std::streampos seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out)
Definition: byte_array_buffer.cpp:69
std::streamsize showmanyc()
Definition: byte_array_buffer.cpp:63
byte_array_buffer(const std::uint8_t *begin, const std::uint8_t *end)
Definition: byte_array_buffer.cpp:16
byte_array_buffer(const byte_array_buffer &)
const std::uint8_t *const end_
Definition: byte_array_buffer.h:48
int_type uflow()
Definition: byte_array_buffer.cpp:43
int_type pbackfail(int_type ch)
Definition: byte_array_buffer.cpp:53
std::streampos seekpos(std::streampos sp, std::ios_base::openmode which=std::ios_base::in|std::ios_base::out)
Definition: byte_array_buffer.cpp:95
const std::uint8_t *const begin_
Definition: byte_array_buffer.h:47
Definition: archive_wrapper.h:19