1*8f378ff7SJonas Devlieghere //===-- SBProcessInfoList.cpp ---------------------------------------------===// 2*8f378ff7SJonas Devlieghere // 3*8f378ff7SJonas Devlieghere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*8f378ff7SJonas Devlieghere // See https://llvm.org/LICENSE.txt for license information. 5*8f378ff7SJonas Devlieghere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*8f378ff7SJonas Devlieghere // 7*8f378ff7SJonas Devlieghere //===----------------------------------------------------------------------===// 8*8f378ff7SJonas Devlieghere 9*8f378ff7SJonas Devlieghere #include "lldb/API/SBProcessInfoList.h" 10*8f378ff7SJonas Devlieghere #include "lldb/API/SBProcessInfo.h" 11*8f378ff7SJonas Devlieghere #include "lldb/Utility/Instrumentation.h" 12*8f378ff7SJonas Devlieghere #include "lldb/Utility/ProcessInfo.h" 13*8f378ff7SJonas Devlieghere 14*8f378ff7SJonas Devlieghere #include "Utils.h" 15*8f378ff7SJonas Devlieghere 16*8f378ff7SJonas Devlieghere using namespace lldb; 17*8f378ff7SJonas Devlieghere using namespace lldb_private; 18*8f378ff7SJonas Devlieghere 19*8f378ff7SJonas Devlieghere SBProcessInfoList::SBProcessInfoList() = default; 20*8f378ff7SJonas Devlieghere 21*8f378ff7SJonas Devlieghere SBProcessInfoList::~SBProcessInfoList() = default; 22*8f378ff7SJonas Devlieghere SBProcessInfoList(const ProcessInfoList & impl)23*8f378ff7SJonas DevlieghereSBProcessInfoList::SBProcessInfoList(const ProcessInfoList &impl) 24*8f378ff7SJonas Devlieghere : m_opaque_up(std::make_unique<ProcessInfoList>(impl)) { 25*8f378ff7SJonas Devlieghere LLDB_INSTRUMENT_VA(this, impl); 26*8f378ff7SJonas Devlieghere } 27*8f378ff7SJonas Devlieghere SBProcessInfoList(const lldb::SBProcessInfoList & rhs)28*8f378ff7SJonas DevlieghereSBProcessInfoList::SBProcessInfoList(const lldb::SBProcessInfoList &rhs) { 29*8f378ff7SJonas Devlieghere 30*8f378ff7SJonas Devlieghere LLDB_INSTRUMENT_VA(this, rhs); 31*8f378ff7SJonas Devlieghere 32*8f378ff7SJonas Devlieghere m_opaque_up = clone(rhs.m_opaque_up); 33*8f378ff7SJonas Devlieghere } 34*8f378ff7SJonas Devlieghere 35*8f378ff7SJonas Devlieghere const lldb::SBProcessInfoList & operator =(const lldb::SBProcessInfoList & rhs)36*8f378ff7SJonas DevlieghereSBProcessInfoList::operator=(const lldb::SBProcessInfoList &rhs) { 37*8f378ff7SJonas Devlieghere 38*8f378ff7SJonas Devlieghere LLDB_INSTRUMENT_VA(this, rhs); 39*8f378ff7SJonas Devlieghere 40*8f378ff7SJonas Devlieghere if (this != &rhs) 41*8f378ff7SJonas Devlieghere m_opaque_up = clone(rhs.m_opaque_up); 42*8f378ff7SJonas Devlieghere return *this; 43*8f378ff7SJonas Devlieghere } 44*8f378ff7SJonas Devlieghere GetSize() const45*8f378ff7SJonas Devlieghereuint32_t SBProcessInfoList::GetSize() const { 46*8f378ff7SJonas Devlieghere LLDB_INSTRUMENT_VA(this); 47*8f378ff7SJonas Devlieghere 48*8f378ff7SJonas Devlieghere if (m_opaque_up) 49*8f378ff7SJonas Devlieghere return m_opaque_up->GetSize(); 50*8f378ff7SJonas Devlieghere 51*8f378ff7SJonas Devlieghere return 0; 52*8f378ff7SJonas Devlieghere } 53*8f378ff7SJonas Devlieghere Clear()54*8f378ff7SJonas Devliegherevoid SBProcessInfoList::Clear() { 55*8f378ff7SJonas Devlieghere LLDB_INSTRUMENT_VA(this); 56*8f378ff7SJonas Devlieghere 57*8f378ff7SJonas Devlieghere if (m_opaque_up) 58*8f378ff7SJonas Devlieghere m_opaque_up->Clear(); 59*8f378ff7SJonas Devlieghere } 60*8f378ff7SJonas Devlieghere GetProcessInfoAtIndex(uint32_t idx,SBProcessInfo & info)61*8f378ff7SJonas Devliegherebool SBProcessInfoList::GetProcessInfoAtIndex(uint32_t idx, 62*8f378ff7SJonas Devlieghere SBProcessInfo &info) { 63*8f378ff7SJonas Devlieghere LLDB_INSTRUMENT_VA(this, idx, info); 64*8f378ff7SJonas Devlieghere 65*8f378ff7SJonas Devlieghere if (m_opaque_up) { 66*8f378ff7SJonas Devlieghere lldb_private::ProcessInstanceInfo process_instance_info; 67*8f378ff7SJonas Devlieghere if (m_opaque_up->GetProcessInfoAtIndex(idx, process_instance_info)) { 68*8f378ff7SJonas Devlieghere info.SetProcessInfo(process_instance_info); 69*8f378ff7SJonas Devlieghere return true; 70*8f378ff7SJonas Devlieghere } 71*8f378ff7SJonas Devlieghere } 72*8f378ff7SJonas Devlieghere 73*8f378ff7SJonas Devlieghere return false; 74*8f378ff7SJonas Devlieghere } 75