chromium/third_party/lzma_sdk/google/seven_zip_reader.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef THIRD_PARTY_LZMA_SDK_GOOGLE_SEVEN_ZIP_READER_H_
#define THIRD_PARTY_LZMA_SDK_GOOGLE_SEVEN_ZIP_READER_H_

#include <stddef.h>
#include <stdint.h>
#include <memory>

#include "base/containers/span.h"
#include "base/files/file.h"
#include "base/files/file_path.h"
#include "base/sequence_checker.h"

namespace seven_zip {

namespace internal {
class SevenZipReaderImpl;
}  // namespace internal

struct EntryInfo {};

enum class Result {};

class Delegate {};

// Encapsulates the state of the 7z unpacker. This class supports asynchronous
// unpacking. `delegate` can stop unpacking at any time and resume it with later
// calls to `Extract`.
class SevenZipReader {};

// Ensures that the one-time initialization of the LZMA SDK has been performed.
// This is usually called by `Extract` when needed, but is exposed here for
// fuzzer support.
void EnsureLzmaSdkInitialized();

} // namespace seven_zip

#endif // THIRD_PARTY_LZMA_SDK_GOOGLE_SEVEN_ZIP_READER_H_