return _len + _off;
}
- void buffer::ptr::copy_in(unsigned o, unsigned l, const char *src)
- {
- copy_in(o, l, src, true);
- }
-
void buffer::ptr::copy_in(unsigned o, unsigned l, const char *src, bool crc_reset)
{
ceph_assert(_raw);
maybe_inline_memcpy(dest, src, l, 64);
}
- void buffer::ptr::zero()
- {
- zero(true);
- }
-
void buffer::ptr::zero(bool crc_reset)
{
if (crc_reset)
memset(c_str(), 0, _len);
}
- void buffer::ptr::zero(unsigned o, unsigned l)
- {
- zero(o, l, true);
- }
-
void buffer::ptr::zero(unsigned o, unsigned l, bool crc_reset)
{
ceph_assert(o+l <= _len);
: iterator_impl(l, o, ip, po)
{}
- void buffer::list::iterator::advance(unsigned o)
- {
- buffer::list::iterator_impl<false>::advance(o);
- }
-
- void buffer::list::iterator::seek(unsigned o)
- {
- buffer::list::iterator_impl<false>::seek(o);
- }
-
- char buffer::list::iterator::operator*()
- {
- if (p == ls->end()) {
- throw end_of_buffer();
- }
- return (*p)[p_off];
- }
-
- buffer::list::iterator& buffer::list::iterator::operator++()
- {
- buffer::list::iterator_impl<false>::operator++();
- return *this;
- }
-
- buffer::ptr buffer::list::iterator::get_current_ptr()
- {
- if (p == ls->end()) {
- throw end_of_buffer();
- }
- return ptr(*p, p_off, p->length() - p_off);
- }
-
- void buffer::list::iterator::copy(unsigned len, char *dest)
- {
- return buffer::list::iterator_impl<false>::copy(len, dest);
- }
-
- void buffer::list::iterator::copy(unsigned len, ptr &dest)
- {
- return buffer::list::iterator_impl<false>::copy_deep(len, dest);
- }
-
- void buffer::list::iterator::copy_deep(unsigned len, ptr &dest)
- {
- buffer::list::iterator_impl<false>::copy_deep(len, dest);
- }
-
- void buffer::list::iterator::copy_shallow(unsigned len, ptr &dest)
- {
- buffer::list::iterator_impl<false>::copy_shallow(len, dest);
- }
-
- void buffer::list::iterator::copy(unsigned len, list &dest)
- {
- buffer::list::iterator_impl<false>::copy(len, dest);
- }
-
- void buffer::list::iterator::copy(unsigned len, std::string &dest)
- {
- buffer::list::iterator_impl<false>::copy(len, dest);
- }
-
- void buffer::list::iterator::copy_all(list &dest)
- {
- buffer::list::iterator_impl<false>::copy_all(dest);
- }
-
- void buffer::list::iterator::copy_in(unsigned len, const char *src)
- {
- copy_in(len, src, true);
- }
-
// copy data in
void buffer::list::iterator::copy_in(unsigned len, const char *src, bool crc_reset)
{
other.last_p = other.begin();
}
- bool buffer::list::contents_equal(buffer::list& other)
- {
- return static_cast<const buffer::list*>(this)->contents_equal(other);
- }
-
bool buffer::list::contents_equal(const ceph::buffer::list& other) const
{
if (length() != other.length())
return last_p.copy(len, dest);
}
- void buffer::list::copy_in(unsigned off, unsigned len, const char *src)
- {
- copy_in(off, len, src, true);
- }
-
void buffer::list::copy_in(unsigned off, unsigned len, const char *src, bool crc_reset)
{
if (off + len > length())
return append(s.data(), s.length());
}
#endif // __cplusplus >= 201703L
- void copy_in(unsigned o, unsigned l, const char *src);
- void copy_in(unsigned o, unsigned l, const char *src, bool crc_reset);
- void zero();
- void zero(bool crc_reset);
- void zero(unsigned o, unsigned l);
- void zero(unsigned o, unsigned l, bool crc_reset);
+ void copy_in(unsigned o, unsigned l, const char *src, bool crc_reset = true);
+ void zero(bool crc_reset = true);
+ void zero(unsigned o, unsigned l, bool crc_reset = true);
unsigned append_zeros(unsigned l);
#ifdef HAVE_SEASTAR
iterator() = default;
iterator(bl_t *l, unsigned o=0);
iterator(bl_t *l, unsigned o, list_iter_t ip, unsigned po);
-
- void advance(int o) = delete;
- void advance(unsigned o);
- void advance(size_t o) { advance(static_cast<unsigned>(o)); }
-
- void seek(unsigned o);
- using iterator_impl<false>::operator*;
- char operator*();
- iterator& operator++();
- ptr get_current_ptr();
-
- // copy data out
- void copy(unsigned len, char *dest);
- // deprecated, use copy_deep()
- void copy(unsigned len, ptr &dest) __attribute__((deprecated));
- void copy_deep(unsigned len, ptr &dest);
- void copy_shallow(unsigned len, ptr &dest);
- void copy(unsigned len, list &dest);
- void copy(unsigned len, std::string &dest);
- void copy_all(list &dest);
-
// copy data in
- void copy_in(unsigned len, const char *src);
- void copy_in(unsigned len, const char *src, bool crc_reset);
+ void copy_in(unsigned len, const char *src, bool crc_reset = true);
void copy_in(unsigned len, const list& otherl);
-
- bool operator==(const iterator& rhs) const {
- return bl == rhs.bl && off == rhs.off;
- }
- bool operator!=(const iterator& rhs) const {
- return bl != rhs.bl || off != rhs.off;
- }
};
class contiguous_appender {
return _len;
}
- bool contents_equal(buffer::list& other);
bool contents_equal(const buffer::list& other) const;
bool is_provided_buffer(const char *dst) const;
void copy(unsigned off, unsigned len, char *dest) const;
void copy(unsigned off, unsigned len, list &dest) const;
void copy(unsigned off, unsigned len, std::string& dest) const;
- void copy_in(unsigned off, unsigned len, const char *src);
- void copy_in(unsigned off, unsigned len, const char *src, bool crc_reset);
+ void copy_in(unsigned off, unsigned len, const char *src, bool crc_reset = true);
void copy_in(unsigned off, unsigned len, const list& src);
void append(char c);