1139823Simp//==- DIAEnumSourceFiles.cpp - DIA Source File Enumerator impl ---*- C++ -*-==// 21541Srgrimes// 31541Srgrimes// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 41541Srgrimes// See https://llvm.org/LICENSE.txt for license information. 51541Srgrimes// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 61541Srgrimes// 71541Srgrimes//===----------------------------------------------------------------------===// 81541Srgrimes 91541Srgrimes#include "llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h" 101541Srgrimes#include "llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h" 111541Srgrimes#include "llvm/DebugInfo/PDB/PDBSymbol.h" 121541Srgrimes 131541Srgrimesusing namespace llvm; 141541Srgrimesusing namespace llvm::pdb; 151541Srgrimes 161541SrgrimesDIAEnumInjectedSources::DIAEnumInjectedSources( 171541Srgrimes CComPtr<IDiaEnumInjectedSources> DiaEnumerator) 181541Srgrimes : Enumerator(DiaEnumerator) {} 191541Srgrimes 201541Srgrimesuint32_t DIAEnumInjectedSources::getChildCount() const { 211541Srgrimes LONG Count = 0; 221541Srgrimes return (S_OK == Enumerator->get_Count(&Count)) ? Count : 0; 231541Srgrimes} 241541Srgrimes 251541Srgrimesstd::unique_ptr<IPDBInjectedSource> 261541SrgrimesDIAEnumInjectedSources::getChildAtIndex(uint32_t Index) const { 271541Srgrimes CComPtr<IDiaInjectedSource> Item; 281541Srgrimes if (S_OK != Enumerator->Item(Index, &Item)) 291541Srgrimes return nullptr; 301541Srgrimes 311541Srgrimes return std::unique_ptr<IPDBInjectedSource>(new DIAInjectedSource(Item)); 32172467Ssilby} 33172467Ssilby 34172467Ssilbystd::unique_ptr<IPDBInjectedSource> DIAEnumInjectedSources::getNext() { 35262743Sglebius CComPtr<IDiaInjectedSource> Item; 3637413Sjulian ULONG NumFetched = 0; 3755009Sshin if (S_OK != Enumerator->Next(1, &Item, &NumFetched)) 38254889Smarkj return nullptr; 39113384Ssilby 40178167Sqingli return std::unique_ptr<IPDBInjectedSource>(new DIAInjectedSource(Item)); 41254889Smarkj} 42188066Srrs 4330966Sjoergvoid DIAEnumInjectedSources::reset() { Enumerator->Reset(); } 441541Srgrimes