1 //===-- SBProcessInfo.cpp ---------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "lldb/API/SBProcessInfo.h"
12 #include "lldb/API/SBFileSpec.h"
13 #include "lldb/Target/Process.h"
16 using namespace lldb_private;
18 SBProcessInfo::SBProcessInfo() : m_opaque_ap() {}
20 SBProcessInfo::SBProcessInfo(const SBProcessInfo &rhs) : m_opaque_ap() {
22 ref() = *rhs.m_opaque_ap;
26 SBProcessInfo::~SBProcessInfo() {}
28 SBProcessInfo &SBProcessInfo::operator=(const SBProcessInfo &rhs) {
31 ref() = *rhs.m_opaque_ap;
38 ProcessInstanceInfo &SBProcessInfo::ref() {
39 if (m_opaque_ap == nullptr) {
40 m_opaque_ap.reset(new ProcessInstanceInfo());
45 void SBProcessInfo::SetProcessInfo(const ProcessInstanceInfo &proc_info_ref) {
46 ref() = proc_info_ref;
49 bool SBProcessInfo::IsValid() const { return m_opaque_ap != nullptr; }
51 const char *SBProcessInfo::GetName() {
52 const char *name = nullptr;
54 name = m_opaque_ap->GetName();
59 SBFileSpec SBProcessInfo::GetExecutableFile() {
62 file_spec.SetFileSpec(m_opaque_ap->GetExecutableFile());
67 lldb::pid_t SBProcessInfo::GetProcessID() {
68 lldb::pid_t proc_id = LLDB_INVALID_PROCESS_ID;
70 proc_id = m_opaque_ap->GetProcessID();
75 uint32_t SBProcessInfo::GetUserID() {
76 uint32_t user_id = UINT32_MAX;
78 user_id = m_opaque_ap->GetUserID();
83 uint32_t SBProcessInfo::GetGroupID() {
84 uint32_t group_id = UINT32_MAX;
86 group_id = m_opaque_ap->GetGroupID();
91 bool SBProcessInfo::UserIDIsValid() {
92 bool is_valid = false;
94 is_valid = m_opaque_ap->UserIDIsValid();
99 bool SBProcessInfo::GroupIDIsValid() {
100 bool is_valid = false;
102 is_valid = m_opaque_ap->GroupIDIsValid();
107 uint32_t SBProcessInfo::GetEffectiveUserID() {
108 uint32_t user_id = UINT32_MAX;
110 user_id = m_opaque_ap->GetEffectiveUserID();
115 uint32_t SBProcessInfo::GetEffectiveGroupID() {
116 uint32_t group_id = UINT32_MAX;
118 group_id = m_opaque_ap->GetEffectiveGroupID();
123 bool SBProcessInfo::EffectiveUserIDIsValid() {
124 bool is_valid = false;
126 is_valid = m_opaque_ap->EffectiveUserIDIsValid();
131 bool SBProcessInfo::EffectiveGroupIDIsValid() {
132 bool is_valid = false;
134 is_valid = m_opaque_ap->EffectiveGroupIDIsValid();
139 lldb::pid_t SBProcessInfo::GetParentProcessID() {
140 lldb::pid_t proc_id = LLDB_INVALID_PROCESS_ID;
142 proc_id = m_opaque_ap->GetParentProcessID();