]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
buffer: restored pre-infernalis API compatibility
authorJason Dillaman <dillaman@redhat.com>
Fri, 9 Oct 2015 16:58:54 +0000 (12:58 -0400)
committerJason Dillaman <dillaman@redhat.com>
Fri, 9 Oct 2015 16:58:54 +0000 (12:58 -0400)
Fixes: #13429
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/common/buffer.cc
src/include/buffer.h

index a7ed8883f0e58c6bd1243d009ed12e0da1b55f0b..bca14d19317799bd3286de0ce98a36d8c934afcc 100644 (file)
@@ -843,7 +843,12 @@ static simple_spinlock_t buffer_debug_lock = SIMPLE_SPINLOCK_INITIALIZER;
     _len += l;
     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)
   {
     assert(_raw);
@@ -855,6 +860,11 @@ static simple_spinlock_t buffer_debug_lock = SIMPLE_SPINLOCK_INITIALIZER;
     maybe_inline_memcpy(dest, src, l, 64);
   }
 
+  void buffer::ptr::zero()
+  {
+    zero(true);
+  }
+
   void buffer::ptr::zero(bool crc_reset)
   {
     if (crc_reset)
@@ -862,6 +872,11 @@ static simple_spinlock_t buffer_debug_lock = SIMPLE_SPINLOCK_INITIALIZER;
     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)
   {
     assert(o+l <= _len);
@@ -1063,6 +1078,68 @@ static simple_spinlock_t buffer_debug_lock = SIMPLE_SPINLOCK_INITIALIZER;
   template class buffer::list::iterator_impl<true>;
   template class buffer::list::iterator_impl<false>;
 
+  void buffer::list::iterator::advance(int 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)
+  {
+    buffer::list::iterator_impl<false>::copy(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)
   {
@@ -1125,6 +1202,11 @@ static simple_spinlock_t buffer_debug_lock = SIMPLE_SPINLOCK_INITIALIZER;
     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())
@@ -1403,6 +1485,11 @@ static simple_spinlock_t buffer_debug_lock = SIMPLE_SPINLOCK_INITIALIZER;
     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())
index 854a286358128ae29e6804dc4cf01795e554d0ba..f28bc5e86a7787b982259607ebacd07cf27d5cfd 100644 (file)
@@ -238,9 +238,12 @@ public:
 
     unsigned append(char c);
     unsigned append(const char *p, unsigned l);
-    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);
+    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);
 
   };
 
@@ -258,7 +261,7 @@ public:
     ptr append_buffer;  // where i put small appends.
 
     template <bool is_const>
-      class iterator_impl: public std::iterator<std::forward_iterator_tag, char> {
+    class iterator_impl: public std::iterator<std::forward_iterator_tag, char> {
     protected:
       typedef typename std::conditional<is_const,
                                        const list,
@@ -326,8 +329,23 @@ public:
        iterator_impl(l, o) {}
       iterator(bl_t *l, unsigned o, list_iter_t ip, unsigned po) :
        iterator_impl(l, o, ip, po) {}
+
+      void advance(int o);
+      void seek(unsigned o);
+      char operator*();
+      iterator& operator++();
+      ptr get_current_ptr();
+
+      // copy data out
+      void copy(unsigned len, char *dest);
+      void copy(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, bool crc_reset = true);
+      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 list& otherl);
     };
 
@@ -373,6 +391,8 @@ public:
 #endif
       return _len;
     }
+
+    bool contents_equal(buffer::list& other);
     bool contents_equal(const buffer::list& other) const;
 
     bool can_zero_copy() const;
@@ -469,7 +489,8 @@ public:
     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, bool crc_reset = true);
+    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 list& src);
 
     void append(char c);