blob: 5158dc6d2618f89601b3167c7d0ee3c20a8aaa28 [file] [log] [blame] [edit]
// 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 "src/storage/minfs/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