blob: 2514ed4422a649d3e0721c199bf156d52893973f [file] [log] [blame]
// 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.
#ifndef SRC_STORAGE_FSHOST_METRICS_H_
#define SRC_STORAGE_FSHOST_METRICS_H_
#include <memory>
namespace fshost {
class FsHostMetrics {
public:
FsHostMetrics() = default;
FsHostMetrics(const FsHostMetrics&) = delete;
FsHostMetrics(FsHostMetrics&&) = delete;
FsHostMetrics& operator=(const FsHostMetrics&) = delete;
FsHostMetrics& operator=(FsHostMetrics&&) = delete;
virtual ~FsHostMetrics() = default;
// This method logs an event describing a corrupted MinFs filesystem, detected on mount or fsck.
virtual void LogMinfsCorruption() = 0;
// Repeatedly attempt to flush to cobalt until success.
//
// Retries every 10 seconds.
// The retry is done async.
virtual void Flush() = 0;
// Detach the underlying flush thread.
virtual void Detach() = 0;
};
std::unique_ptr<FsHostMetrics> DefaultMetrics();
} // namespace fshost
#endif // SRC_STORAGE_FSHOST_METRICS_H_