31 #ifndef _SCC_UTIL_RWLOOPBUF_H
32 #define _SCC_UTIL_RWLOOPBUF_H
63 size_t idx()
const {
return m_idx; }
80 set(b.data(), b.size());
88 std::vector<char>::clear();
92 void set(
const void* loc,
size_t len)
99 void set(
const std::vector<char>& v)
101 set(v.data(), v.size());
105 void set(
const std::string& v)
107 set(v.data(), v.size());
111 size_t read(
void* loc,
size_t len)
117 int rd = len < size()-m_idx ? len : size()-m_idx;
118 memcpy(loc, (
char*)data()+m_idx, rd);
130 size_t write(
const void* loc,
size_t len)
132 insert(end(), (
char*)loc, (
char*)loc+len);
149 return std::string((
char*)data()+m_idx, (
char*)data()+size());
153 std::vector<char>
vec()
const
157 return std::vector<char>();
159 return std::vector<char>((
char*)data()+m_idx, (
char*)data()+size());
Loopback read/write stream buffer.
std::string str()
Read as a string.
size_t const read_loc()
Return the current read location.
void clear()
Empty and reset.
std::vector< char > vec() const
Read as a vector.
void set(const std::string &v)
Clear and set for reading.
RwLoopBuffer(const std::vector< char > &v)
Create as a vector.
void set(const std::vector< char > &v)
Clear and set for reading.
RwLoopBuffer & operator=(const std::string &b)
Set to a string.
RwLoopBuffer()
rw loop buffer
RwLoopBuffer(const std::string &b)
Create as a string.
size_t write(const void *loc, size_t len)
Writer write.
size_t const write_loc()
Return the current write location.
size_t read(void *loc, size_t len)
Reader read.
void set(const void *loc, size_t len)
Clear and set for reading.
Input/output stream base reader/writer interface classes.
Interface class for objects which can be read.
Interface class for objects which can be written.