From 6374d0645e6cc8e898776b7c4ddf09b7c4f17ec6 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Wed, 21 Mar 2012 17:27:09 -0700 Subject: [PATCH] buffer: implement a contents_equal function on bufferlists Signed-off-by: Greg Farnum --- src/common/buffer.cc | 15 +++++++++++++++ src/include/buffer.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/common/buffer.cc b/src/common/buffer.cc index 893d8a7382f79..a6ad8c0d736ab 100644 --- a/src/common/buffer.cc +++ b/src/common/buffer.cc @@ -611,6 +611,21 @@ bool buffer_track_alloc = get_env_bool("CEPH_BUFFER_TRACK"); other.last_p = other.begin(); } + bool buffer::list::contents_equal(ceph::buffer::list& other) + { + if (length() != other.length()) + return false; + bufferlist::iterator me = begin(); + bufferlist::iterator him = other.begin(); + while (!me.end()) { + if (*me != *him) + return false; + ++me; + ++him; + } + return true; + } + bool buffer::list::is_page_aligned() const { for (std::list::const_iterator it = _buffers.begin(); diff --git a/src/include/buffer.h b/src/include/buffer.h index 12dec986ea951..65c101f6f966f 100644 --- a/src/include/buffer.h +++ b/src/include/buffer.h @@ -325,6 +325,7 @@ public: #endif return _len; } + bool contents_equal(buffer::list& other); bool is_page_aligned() const; bool is_n_page_sized() const; -- 2.39.5