| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | //  Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.//  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).#pragma once#include <cassert>#include <cstdint>#include <iosfwd>#include <string>#include "db/blob/blob_constants.h"#include "rocksdb/rocksdb_namespace.h"namespace ROCKSDB_NAMESPACE {class JSONWriter;class Slice;class Status;class BlobFileAddition { public:  BlobFileAddition() = default;  BlobFileAddition(uint64_t blob_file_number, uint64_t total_blob_count,                   uint64_t total_blob_bytes, std::string checksum_method,                   std::string checksum_value)      : blob_file_number_(blob_file_number),        total_blob_count_(total_blob_count),        total_blob_bytes_(total_blob_bytes),        checksum_method_(std::move(checksum_method)),        checksum_value_(std::move(checksum_value)) {    assert(checksum_method_.empty() == checksum_value_.empty());  }  uint64_t GetBlobFileNumber() const { return blob_file_number_; }  uint64_t GetTotalBlobCount() const { return total_blob_count_; }  uint64_t GetTotalBlobBytes() const { return total_blob_bytes_; }  const std::string& GetChecksumMethod() const { return checksum_method_; }  const std::string& GetChecksumValue() const { return checksum_value_; }  void EncodeTo(std::string* output) const;  Status DecodeFrom(Slice* input);  std::string DebugString() const;  std::string DebugJSON() const; private:  enum CustomFieldTags : uint32_t;  uint64_t blob_file_number_ = kInvalidBlobFileNumber;  uint64_t total_blob_count_ = 0;  uint64_t total_blob_bytes_ = 0;  std::string checksum_method_;  std::string checksum_value_;};bool operator==(const BlobFileAddition& lhs, const BlobFileAddition& rhs);bool operator!=(const BlobFileAddition& lhs, const BlobFileAddition& rhs);std::ostream& operator<<(std::ostream& os,                         const BlobFileAddition& blob_file_addition);JSONWriter& operator<<(JSONWriter& jw,                       const BlobFileAddition& blob_file_addition);}  // namespace ROCKSDB_NAMESPACE
 |