//===-- SBProcessInfo.cpp ---------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "lldb/API/SBProcessInfo.h" #include "lldb/API/SBFileSpec.h" #include "lldb/Target/Process.h" using namespace lldb; using namespace lldb_private; SBProcessInfo::SBProcessInfo() : m_opaque_ap() {} SBProcessInfo::SBProcessInfo(const SBProcessInfo &rhs) : m_opaque_ap() { if (rhs.IsValid()) { ref() = *rhs.m_opaque_ap; } } SBProcessInfo::~SBProcessInfo() {} SBProcessInfo &SBProcessInfo::operator=(const SBProcessInfo &rhs) { if (this != &rhs) { if (rhs.IsValid()) ref() = *rhs.m_opaque_ap; else m_opaque_ap.reset(); } return *this; } ProcessInstanceInfo &SBProcessInfo::ref() { if (m_opaque_ap.get() == nullptr) { m_opaque_ap.reset(new ProcessInstanceInfo()); } return *m_opaque_ap; } void SBProcessInfo::SetProcessInfo(const ProcessInstanceInfo &proc_info_ref) { ref() = proc_info_ref; } bool SBProcessInfo::IsValid() const { return m_opaque_ap.get() != nullptr; } const char *SBProcessInfo::GetName() { const char *name = nullptr; if (m_opaque_ap) { name = m_opaque_ap->GetName(); } return name; } SBFileSpec SBProcessInfo::GetExecutableFile() { SBFileSpec file_spec; if (m_opaque_ap) { file_spec.SetFileSpec(m_opaque_ap->GetExecutableFile()); } return file_spec; } lldb::pid_t SBProcessInfo::GetProcessID() { lldb::pid_t proc_id = LLDB_INVALID_PROCESS_ID; if (m_opaque_ap) { proc_id = m_opaque_ap->GetProcessID(); } return proc_id; } uint32_t SBProcessInfo::GetUserID() { uint32_t user_id = UINT32_MAX; if (m_opaque_ap) { user_id = m_opaque_ap->GetUserID(); } return user_id; } uint32_t SBProcessInfo::GetGroupID() { uint32_t group_id = UINT32_MAX; if (m_opaque_ap) { group_id = m_opaque_ap->GetGroupID(); } return group_id; } bool SBProcessInfo::UserIDIsValid() { bool is_valid = false; if (m_opaque_ap) { is_valid = m_opaque_ap->UserIDIsValid(); } return is_valid; } bool SBProcessInfo::GroupIDIsValid() { bool is_valid = false; if (m_opaque_ap) { is_valid = m_opaque_ap->GroupIDIsValid(); } return is_valid; } uint32_t SBProcessInfo::GetEffectiveUserID() { uint32_t user_id = UINT32_MAX; if (m_opaque_ap) { user_id = m_opaque_ap->GetEffectiveUserID(); } return user_id; } uint32_t SBProcessInfo::GetEffectiveGroupID() { uint32_t group_id = UINT32_MAX; if (m_opaque_ap) { group_id = m_opaque_ap->GetEffectiveGroupID(); } return group_id; } bool SBProcessInfo::EffectiveUserIDIsValid() { bool is_valid = false; if (m_opaque_ap) { is_valid = m_opaque_ap->EffectiveUserIDIsValid(); } return is_valid; } bool SBProcessInfo::EffectiveGroupIDIsValid() { bool is_valid = false; if (m_opaque_ap) { is_valid = m_opaque_ap->EffectiveGroupIDIsValid(); } return is_valid; } lldb::pid_t SBProcessInfo::GetParentProcessID() { lldb::pid_t proc_id = LLDB_INVALID_PROCESS_ID; if (m_opaque_ap) { proc_id = m_opaque_ap->GetParentProcessID(); } return proc_id; }