diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/osdc/StriperTypes.h | |
parent | Initial commit. (diff) | |
download | ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.tar.xz ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | src/osdc/StriperTypes.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/osdc/StriperTypes.h b/src/osdc/StriperTypes.h new file mode 100644 index 000000000..2ce8466a8 --- /dev/null +++ b/src/osdc/StriperTypes.h @@ -0,0 +1,48 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab + +#ifndef CEPH_OSDC_STRIPER_TYPES_H +#define CEPH_OSDC_STRIPER_TYPES_H + +#include "include/types.h" +#include <boost/container/small_vector.hpp> +#include <ios> +#include <utility> + +namespace striper { + +// off -> len extents in (striped) buffer being mapped +typedef std::pair<uint64_t,uint64_t> BufferExtent; +typedef boost::container::small_vector< + BufferExtent, 4> LightweightBufferExtents; + +struct LightweightObjectExtent { + LightweightObjectExtent() = delete; + LightweightObjectExtent(uint64_t object_no, uint64_t offset, + uint64_t length, uint64_t truncate_size) + : object_no(object_no), offset(offset), length(length), + truncate_size(truncate_size) { + } + + uint64_t object_no; + uint64_t offset; // in-object + uint64_t length; // in-object + uint64_t truncate_size; // in-object + LightweightBufferExtents buffer_extents; +}; + +typedef boost::container::small_vector< + LightweightObjectExtent, 4> LightweightObjectExtents; + +inline std::ostream& operator<<(std::ostream& os, + const LightweightObjectExtent& ex) { + return os << "extent(" + << ex.object_no << " " + << ex.offset << "~" << ex.length + << " -> " << ex.buffer_extents + << ")"; +} + +} // namespace striper + +#endif // CEPH_OSDC_STRIPER_TYPES_H |