From: Jeff Layton Date: Tue, 4 May 2021 18:22:43 +0000 (-0400) Subject: common: add encode and decode routines for opaque vectors of bytes X-Git-Tag: v18.0.0~1381^2~17 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f0d2e1e372cd60ccdea4f6108822463a0cf71853;p=ceph.git common: add encode and decode routines for opaque vectors of bytes Signed-off-by: Jeff Layton --- diff --git a/src/include/encoding.h b/src/include/encoding.h index 49f2f77be30b..40ba9d39c76f 100644 --- a/src/include/encoding.h +++ b/src/include/encoding.h @@ -246,6 +246,23 @@ inline void encode(const char *s, bufferlist& bl) encode(std::string_view(s, strlen(s)), bl); } +// opaque byte vectors +inline void encode(std::vector& v, bufferlist& bl) +{ + uint32_t len = v.size(); + encode(len, bl); + if (len) + bl.append((char *)v.data(), len); +} + +inline void decode(std::vector& v, bufferlist::const_iterator& p) +{ + uint32_t len; + + decode(len, p); + v.resize(len); + p.copy(len, (char *)v.data()); +} // ----------------------------- // buffers