146 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			146 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===-- 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;
 | |
| }
 |