}
// bluestore_blob_use_tracker_t
+bluestore_blob_use_tracker_t::bluestore_blob_use_tracker_t(
+ const bluestore_blob_use_tracker_t& tracker)
+ : au_size{tracker.au_size},
+ num_au{tracker.num_au},
+ bytes_per_au{nullptr}
+{
+ if (num_au > 0) {
+ allocate();
+ std::copy(tracker.bytes_per_au, tracker.bytes_per_au + num_au, bytes_per_au);
+ } else {
+ total_bytes = tracker.total_bytes;
+ }
+}
+
+bluestore_blob_use_tracker_t&
+bluestore_blob_use_tracker_t::operator=(const bluestore_blob_use_tracker_t& rhs)
+{
+ if (this == &rhs) {
+ return *this;
+ }
+ clear();
+ au_size = rhs.au_size;
+ num_au = rhs.num_au;
+ if (rhs.num_au > 0) {
+ allocate();
+ std::copy(rhs.bytes_per_au, rhs.bytes_per_au + num_au, bytes_per_au);
+ } else {
+ total_bytes = rhs.total_bytes;
+ }
+ return *this;
+}
void bluestore_blob_use_tracker_t::allocate()
{
bluestore_blob_use_tracker_t()
: au_size(0), num_au(0), bytes_per_au(nullptr) {
}
+ bluestore_blob_use_tracker_t(const bluestore_blob_use_tracker_t& tracker);
+ bluestore_blob_use_tracker_t& operator=(const bluestore_blob_use_tracker_t& rhs);
~bluestore_blob_use_tracker_t() {
clear();
}