15 using namespace llvm::pdb;
18 : StreamData(DiaStreamData) {}
22 return (S_OK == StreamData->get_Count(&Count)) ? Count : 0;
27 if (S_OK != StreamData->get_name(&Name16))
42 StreamData->Item(Index, 0, &RecordSize,
nullptr);
47 if (S_OK != StreamData->Item(Index, RecordSize, &RecordSize, &Record[0]))
55 ULONG CountFetched = 0;
56 StreamData->Next(1, 0, &RecordSize,
nullptr, &CountFetched);
62 StreamData->Next(1, RecordSize, &RecordSize, &Record[0], &CountFetched))
70 CComPtr<IDiaEnumDebugStreamData> EnumeratorClone;
71 if (S_OK != StreamData->Clone(&EnumeratorClone))
DIADataStream(CComPtr< IDiaEnumDebugStreamData > DiaStreamData)
bool getNext(RecordType &Record) override
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
DIADataStream * clone() const override
std::string getName() const override
bool convertUTF16ToUTF8String(ArrayRef< char > SrcBytes, std::string &Out)
Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string.
llvm::Optional< RecordType > getItemAtIndex(uint32_t Index) const override
uint32_t getRecordCount() const override