7 #ifndef RETDEC_AR_EXTRACTOR_ARCHIVE_WRAPPER_H
8 #define RETDEC_AR_EXTRACTOR_ARCHIVE_WRAPPER_H
14 #include <llvm/Object/Archive.h>
15 #include <llvm/Support/Error.h>
20 namespace ar_extractor {
29 std::string &errorMessage);
45 bool niceNames =
false,
bool numbers =
true)
const;
46 bool getJsonList(std::string &result, std::string &errorMessage,
47 bool niceNames =
false,
bool numbers =
true)
const;
52 bool extract(std::string &errorMessage,
53 const std::string &directory =
"")
const;
54 bool extractByName(
const std::string &name, std::string &errorMessage,
55 const std::string &outputPath =
"")
const;
56 bool extractByIndex(
const std::size_t index, std::string &errorMessage,
57 const std::string &outputPath =
"")
const;
62 std::unique_ptr<llvm::object::Archive>
archive;
64 llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>>
buffer;
68 bool getNames(std::vector<std::string> &result,
69 std::string &errorMessage)
const;
70 bool getCount(std::size_t &count, std::string &errorMessage)
const;
A mixin to make classes non-copyable.
Definition: non_copyable.h:27
Definition: archive_wrapper.h:19
A mixin to make classes non-copyable.