1 //===-- SBProcessInfo.h -----------------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLDB_API_SBPROCESSINFO_H 10 #define LLDB_API_SBPROCESSINFO_H 11 12 #include "lldb/API/SBDefines.h" 13 14 namespace lldb { 15 16 class LLDB_API SBProcessInfo { 17 public: 18 SBProcessInfo(); 19 SBProcessInfo(const SBProcessInfo &rhs); 20 21 ~SBProcessInfo(); 22 23 SBProcessInfo &operator=(const SBProcessInfo &rhs); 24 25 explicit operator bool() const; 26 27 bool IsValid() const; 28 29 const char *GetName(); 30 31 SBFileSpec GetExecutableFile(); 32 33 lldb::pid_t GetProcessID(); 34 35 uint32_t GetUserID(); 36 37 uint32_t GetGroupID(); 38 39 bool UserIDIsValid(); 40 41 bool GroupIDIsValid(); 42 43 uint32_t GetEffectiveUserID(); 44 45 uint32_t GetEffectiveGroupID(); 46 47 bool EffectiveUserIDIsValid(); 48 49 bool EffectiveGroupIDIsValid(); 50 51 lldb::pid_t GetParentProcessID(); 52 53 private: 54 friend class SBProcess; 55 56 lldb_private::ProcessInstanceInfo &ref(); 57 58 void SetProcessInfo(const lldb_private::ProcessInstanceInfo &proc_info_ref); 59 60 std::unique_ptr<lldb_private::ProcessInstanceInfo> m_opaque_up; 61 }; 62 63 } // namespace lldb 64 65 #endif // LLDB_API_SBPROCESSINFO_H 66