From f0d2e1e372cd60ccdea4f6108822463a0cf71853 Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Tue, 4 May 2021 14:22:43 -0400 Subject: [PATCH] common: add encode and decode routines for opaque vectors of bytes Signed-off-by: Jeff Layton --- src/include/encoding.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/include/encoding.h b/src/include/encoding.h index 49f2f77be30..40ba9d39c76 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 -- 2.39.5