50 static Result<std::unique_ptr<PuffinWriter>> Make(
51 std::unique_ptr<OutputFile> output_file,
52 std::unordered_map<std::string, std::string> properties = {},
54 bool compress_footer =
false);
59 Result<BlobMetadata> Write(
const Blob& blob);
68 const std::vector<BlobMetadata>& written_blobs_metadata()
const;
71 Result<int64_t> FooterSize()
const;
74 Result<int64_t> FileSize()
const;
77 PuffinWriter(std::unique_ptr<PositionOutputStream> stream,
78 std::unordered_map<std::string, std::string> properties,
81 Status WriteBytes(std::span<const std::byte> data);
86 std::unique_ptr<PositionOutputStream> stream_;
88 std::unordered_map<std::string, std::string> properties_;
92 const bool compress_footer_;
94 std::vector<BlobMetadata> written_blobs_metadata_;
96 bool header_written_ =
false;
98 bool footer_written_ =
false;
100 bool finished_ =
false;
102 int64_t footer_size_ = -1;
104 int64_t file_size_ = -1;