56 explicit Buffer(
size_t initialCapacity);
59 explicit Buffer(
const char *s);
62 explicit Buffer(
const std::string s);
69 {
return this->contents; }
74 {
return this->length; };
78 {
return this->capacity; }
84 bool Append(
const char *s);
90 bool Append(
const std::string s);
97 bool Append(
const uint8_t *data,
const size_t datalen);
103 bool Append(
const uint8_t c);
110 bool Insert(
const size_t index,
const char *s);
117 bool Insert(
const size_t index,
const std::string s);
126 Insert(
const size_t index,
const uint8_t *data,
const size_t datalen);
133 bool Insert(
const size_t index,
const uint8_t c);
140 bool Remove(
const size_t index,
const size_t count);
146 bool Remove(
size_t index);
156 void Resize(
size_t newCapacity);
167 { this->autoTrim =
false; }
172 { this->autoTrim =
true; }
178 {
return this->autoTrim; }
192 void HexDump(std::ostream &os);
210 size_t mustGrow(
size_t delta)
const;
212 bool shiftRight(
size_t offset,
size_t delta);
214 bool shiftLeft(
size_t offset,
size_t delta);
223std::ostream &
operator<<(std::ostream &os,
const Buffer &buf);
size_t Capacity() const
Capacity returns the amount of memory allocated to the Buffer.
Definition: Buffer.h:77
void HexDump(std::ostream &os)
Definition: Buffer.cc:260
uint8_t * Contents() const
Contents returns the Buffer's contents.
Definition: Buffer.h:68
Buffer()
A Buffer can be constructed empty, with no memory allocated (yet).
Definition: Buffer.cc:61
void EnableAutoTrim()
Definition: Buffer.h:171
size_t Length() const
Definition: Buffer.h:73
friend bool operator==(const Buffer &lhs, const Buffer &rhs)
Definition: Buffer.cc:358
~Buffer()
Definition: Buffer.h:64
void Clear()
Definition: Buffer.cc:221
uint8_t & operator[](size_t index)
Definition: Buffer.cc:344
size_t Trim()
Definition: Buffer.cc:206
void Resize(size_t newCapacity)
Definition: Buffer.cc:184
void DisableAutoTrim()
Definition: Buffer.h:166
bool Append(const char *s)
Definition: Buffer.cc:92
bool Remove(const size_t index, const size_t count)
Definition: Buffer.cc:167
bool AutoTrimIsEnabled()
Definition: Buffer.h:177
bool Insert(const size_t index, const char *s)
Definition: Buffer.cc:133
void Reclaim()
Definition: Buffer.cc:232
scsl is the top-level namespace containing all the code in this library.
Definition: scsl.h:43
std::ostream & operator<<(std::ostream &os, Arena &arena)
Definition: Arena.cc:299
bool operator!=(const Buffer &lhs, const Buffer &rhs)
Definition: Buffer.h:227