blob: 52ed6ec80b59b043152dd724f0f27b65281ee713 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "buffer_view.h"
namespace minfs {
BaseBufferView::~BaseBufferView() {
ZX_ASSERT_MSG(!dirty_, "Flush not called on dirty buffer.");
}
BaseBufferView& BaseBufferView::operator=(BaseBufferView&& other) {
ZX_ASSERT_MSG(!dirty_, "Flush not called on dirty buffer.");
buffer_ = other.buffer_;
length_ = other.length_;
offset_ = other.offset_;
dirty_ = other.dirty_;
flusher_ = std::move(other.flusher_);
other.buffer_ = BufferPtr();
other.dirty_ = false;
return *this;
}
zx_status_t BaseBufferView::Flush() {
if (!dirty_)
return ZX_OK;
dirty_ = false;
return flusher_(this);
}
} // namespace minfs