| //===- Binary.h - A generic binary file -------------------------*- C++ -*-===// | |
| // | |
| // The LLVM Compiler Infrastructure | |
| // | |
| // This file is distributed under the University of Illinois Open Source | |
| // License. See LICENSE.TXT for details. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // | |
| // This file declares the Binary class. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #ifndef LLVM_OBJECT_BINARY_H | |
| #define LLVM_OBJECT_BINARY_H | |
| #include "llvm/ADT/OwningPtr.h" | |
| #include "llvm/Object/Error.h" | |
| namespace llvm { | |
| class MemoryBuffer; | |
| class StringRef; | |
| namespace object { | |
| class Binary { | |
| private: | |
| Binary(); // = delete | |
| Binary(const Binary &other); // = delete | |
| unsigned int TypeID; | |
| protected: | |
| MemoryBuffer *Data; | |
| Binary(unsigned int Type, MemoryBuffer *Source); | |
| enum { | |
| isArchive, | |
| // Object and children. | |
| isObject, | |
| isCOFF, | |
| isELF, | |
| isMachO, | |
| lastObject | |
| }; | |
| public: | |
| virtual ~Binary(); | |
| StringRef getData() const; | |
| StringRef getFileName() const; | |
| // Cast methods. | |
| unsigned int getType() const { return TypeID; } | |
| static inline bool classof(const Binary *v) { return true; } | |
| }; | |
| error_code createBinary(MemoryBuffer *Source, OwningPtr<Binary> &Result); | |
| error_code createBinary(StringRef Path, OwningPtr<Binary> &Result); | |
| } | |
| } | |
| #endif |