blob: e241e7e5e84aaabdd82fa1deb2711d056004254e [file] [log] [blame]
// Copyright 2017 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 GARNET_LIB_FAR_ARCHIVE_WRITER_H_
#define GARNET_LIB_FAR_ARCHIVE_WRITER_H_
#include <stdint.h>
#include <vector>
#include "garnet/lib/far/archive_entry.h"
namespace archive {
class ArchiveWriter {
public:
ArchiveWriter();
~ArchiveWriter();
ArchiveWriter(const ArchiveWriter& other) = delete;
bool Add(ArchiveEntry entry);
bool Write(int fd);
private:
bool HasDuplicateEntries();
std::vector<ArchiveEntry> entries_;
bool dirty_ = true;
uint64_t total_path_length_ = 0;
};
} // namespace archive
#endif // GARNET_LIB_FAR_ARCHIVE_WRITER_H_