1311532Sdim//===-- llvm/Support/TarWriter.h - Tar archive file creator -----*- C++ -*-===// 2311532Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6311532Sdim// 7311532Sdim//===----------------------------------------------------------------------===// 8311532Sdim 9311532Sdim#ifndef LLVM_SUPPORT_TAR_WRITER_H 10311532Sdim#define LLVM_SUPPORT_TAR_WRITER_H 11311532Sdim 12311532Sdim#include "llvm/ADT/StringRef.h" 13327952Sdim#include "llvm/ADT/StringSet.h" 14311532Sdim#include "llvm/Support/Error.h" 15311532Sdim#include "llvm/Support/raw_ostream.h" 16311532Sdim 17311532Sdimnamespace llvm { 18311532Sdimclass TarWriter { 19311532Sdimpublic: 20311532Sdim static Expected<std::unique_ptr<TarWriter>> create(StringRef OutputPath, 21311532Sdim StringRef BaseDir); 22311532Sdim 23311532Sdim void append(StringRef Path, StringRef Data); 24311532Sdim 25311532Sdimprivate: 26311532Sdim TarWriter(int FD, StringRef BaseDir); 27311532Sdim raw_fd_ostream OS; 28311532Sdim std::string BaseDir; 29327952Sdim StringSet<> Files; 30311532Sdim}; 31311532Sdim} 32311532Sdim 33311532Sdim#endif 34