| 123456789101112131415161718192021222324252627282930313233343536373839404142 | //  Copyright (c) Meta Platforms, Inc. and affiliates.////  This source code is licensed under both the GPLv2 (found in the//  COPYING file in the root directory) and Apache 2.0 License//  (found in the LICENSE.Apache file in the root directory).//// Copyright (c) 2011 The LevelDB Authors. All rights reserved.// Use of this source code is governed by a BSD-style license that can be// found in the LICENSE file. See the AUTHORS file for names of contributors.#pragma once#include "db/compaction/compaction.h"#include "db/compaction/subcompaction_state.h"#include "db/internal_stats.h"// Data structures used for compaction_job and compaction_service_job which has// the list of sub_compact_states and the aggregated information for the// compaction.namespace ROCKSDB_NAMESPACE {// Maintains state for the entire compactionclass CompactionState { public:  Compaction* const compaction;  // REQUIRED: subcompaction states are stored in order of increasing key-range  std::vector<SubcompactionState> sub_compact_states;  Status status;  void AggregateCompactionStats(      InternalStats::CompactionStatsFull& internal_stats,      CompactionJobStats& job_stats);  explicit CompactionState(Compaction* c) : compaction(c) {}  Slice SmallestUserKey();  Slice LargestUserKey();};}  // namespace ROCKSDB_NAMESPACE
 |