28#ifndef LLVM_OBJECT_WINDOWSRESOURCE_H 
   29#define LLVM_OBJECT_WINDOWSRESOURCE_H 
   99class ResourceEntryRef {
 
 
  159                       std::vector<std::string> &Duplicates);
 
  161                       std::vector<std::string> &Duplicates);
 
  170    template <
typename T>
 
  171    using Children = std::map<T, std::unique_ptr<TreeNode>>;
 
  183      return StringChildren;
 
 
  190    static std::unique_ptr<TreeNode> createStringNode(
uint32_t Index);
 
  191    static std::unique_ptr<TreeNode> createIDNode();
 
  193    static std::unique_ptr<TreeNode> createDataNode(
uint16_t MajorVersion,
 
  199    explicit TreeNode(
uint32_t StringIndex);
 
  204                  std::vector<std::vector<uint8_t>> &Data,
 
  205                  std::vector<std::vector<UTF16>> &StringTable,
 
  208                          std::vector<std::vector<UTF16>> &StringTable);
 
  210                          std::vector<std::vector<UTF16>> &StringTable);
 
  212                         std::vector<std::vector<uint8_t>> &Data,
 
  216                      uint32_t DataIndex, TreeNode *&Result);
 
  219                           std::vector<std::vector<UTF16>> &StringTable);
 
  220    void shiftDataIndexDown(
uint32_t Index);
 
  222    bool IsDataNode = 
false;
 
 
  248                    std::vector<StringOrID> &Context,
 
  249                    std::vector<std::string> &Duplicates);
 
  251  bool shouldIgnoreDuplicate(
const std::vector<StringOrID> &Context) 
const;
 
  254  std::vector<std::vector<uint8_t>> 
Data;
 
  257  std::vector<std::string> InputFilenames;
 
 
  264                         const WindowsResourceParser &Parser,
 
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
 
An implementation of BinaryStream which holds its entire data set in a single contiguous buffer.
 
Provides read only access to a subclass of BinaryStream.
 
BinaryStreamRef is to BinaryStream what ArrayRef is to an Array.
 
Lightweight error class with error context and mandatory checking.
 
Tagged union holding either a T or a Error.
 
StringRef - Represent a constant reference to a string, i.e.
 
A table of densely packed, null-terminated strings indexed by offset.
 
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
 
Binary(unsigned int Type, MemoryBufferRef Source)
 
EmptyResError(Twine Msg, object_error ECOverride)
 
GenericBinaryError(const Twine &Msg)
 
uint16_t getDataVersion() const
 
friend class WindowsResource
 
uint16_t getMajorVersion() const
 
uint16_t getLanguage() const
 
LLVM_ABI Error moveNext(bool &End)
 
ArrayRef< UTF16 > getTypeString() const
 
uint16_t getNameID() const
 
uint16_t getTypeID() const
 
uint16_t getMemoryFlags() const
 
bool checkNameString() const
 
uint16_t getMinorVersion() const
 
uint32_t getCharacteristics() const
 
bool checkTypeString() const
 
ArrayRef< UTF16 > getNameString() const
 
ArrayRef< uint8_t > getData() const
 
const Children< std::string > & getStringChildren() const
 
uint16_t getMinorVersion() const
 
LLVM_ABI uint32_t getTreeSize() const
 
const Children< uint32_t > & getIDChildren() const
 
LLVM_ABI void print(ScopedPrinter &Writer, StringRef Name) const
 
std::map< T, std::unique_ptr< TreeNode > > Children
 
uint32_t getCharacteristics() const
 
uint32_t getDataIndex() const
 
uint32_t getStringIndex() const
 
friend class WindowsResourceParser
 
uint16_t getMajorVersion() const
 
bool checkIsDataNode() const
 
LLVM_ABI void cleanUpManifests(std::vector< std::string > &Duplicates)
 
const TreeNode & getTree() const
 
LLVM_ABI void printTree(raw_ostream &OS) const
 
ArrayRef< std::vector< uint8_t > > getData() const
 
LLVM_ABI WindowsResourceParser(bool MinGW=false)
 
ArrayRef< std::vector< UTF16 > > getStringTable() const
 
LLVM_ABI Error parse(WindowsResource *WR, std::vector< std::string > &Duplicates)
 
LLVM_ABI Expected< ResourceEntryRef > getHeadEntry()
 
static bool classof(const Binary *V)
 
friend class ResourceEntryRef
 
static LLVM_ABI Expected< std::unique_ptr< WindowsResource > > createWindowsResource(MemoryBufferRef Source)
 
This class implements an extremely fast bulk output stream that can only output to a stream.
 
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
 
LLVM_ABI Expected< std::unique_ptr< MemoryBuffer > > writeWindowsResourceCOFF(llvm::COFF::MachineTypes MachineType, const WindowsResourceParser &Parser, uint32_t TimeDateStamp)
 
const size_t WIN_RES_NULL_ENTRY_SIZE
 
const uint32_t WIN_RES_DATA_ALIGNMENT
 
LLVM_ABI void printResourceTypeName(uint16_t TypeID, raw_ostream &OS)
 
const uint32_t WIN_RES_HEADER_ALIGNMENT
 
const size_t WIN_RES_MAGIC_SIZE
 
const uint16_t WIN_RES_PURE_MOVEABLE
 
detail::packed_endian_specific_integral< uint32_t, llvm::endianness::little, unaligned > ulittle32_t
 
detail::packed_endian_specific_integral< uint16_t, llvm::endianness::little, unaligned > ulittle16_t
 
This is an optimization pass for GlobalISel generic memory operations.
 
@ Ref
The access may reference the value stored in memory.
 
FunctionAddr VTableAddr uintptr_t uintptr_t Data
 
support::ulittle16_t TypeID
 
support::ulittle16_t NameID
 
void setType(uint16_t ID)
 
void setName(uint16_t ID)
 
StringOrID(ArrayRef< UTF16 > String)