|  | // Copyright 2019 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. | 
|  |  | 
|  | // This file includes necessary methods for inspecting various on-disk structures | 
|  | // of a MinFS filesystem. | 
|  |  | 
|  | #ifndef SRC_STORAGE_MINFS_INSPECTOR_H_ | 
|  | #define SRC_STORAGE_MINFS_INSPECTOR_H_ | 
|  |  | 
|  | #include <block-client/cpp/block-device.h> | 
|  | #include <disk_inspector/common_types.h> | 
|  |  | 
|  | #include "src/storage/minfs/bcache.h" | 
|  |  | 
|  | namespace minfs { | 
|  |  | 
|  | class Inspector : public disk_inspector::DiskInspector { | 
|  | public: | 
|  | Inspector() = delete; | 
|  | Inspector(const Inspector&) = delete; | 
|  | Inspector(Inspector&&) = delete; | 
|  | Inspector& operator=(const Inspector&) = delete; | 
|  | Inspector& operator=(Inspector&&) = delete; | 
|  |  | 
|  | explicit Inspector(std::unique_ptr<block_client::BlockDevice> device) | 
|  | : device_(std::move(device)) {} | 
|  |  | 
|  | // DiskInspector interface: | 
|  | zx_status_t GetRoot(std::unique_ptr<disk_inspector::DiskObject>* out) final; | 
|  |  | 
|  | private: | 
|  | // Creates root DiskObject. | 
|  | zx_status_t CreateRoot(std::unique_ptr<Bcache> bc, | 
|  | std::unique_ptr<disk_inspector::DiskObject>* out); | 
|  |  | 
|  | // Device being inspected. | 
|  | std::unique_ptr<block_client::BlockDevice> device_; | 
|  | }; | 
|  |  | 
|  | }  // namespace minfs | 
|  |  | 
|  | #endif  // SRC_STORAGE_MINFS_INSPECTOR_H_ |