1 //===-- SBUnixSignals.h -----------------------------------------------*- C++ 2 //-*-===// 3 // 4 // The LLVM Compiler Infrastructure 5 // 6 // This file is distributed under the University of Illinois Open Source 7 // License. See LICENSE.TXT for details. 8 // 9 //===----------------------------------------------------------------------===// 10 11 #ifndef LLDB_SBUnixSignals_h_ 12 #define LLDB_SBUnixSignals_h_ 13 14 #include "lldb/API/SBDefines.h" 15 16 namespace lldb { 17 18 class LLDB_API SBUnixSignals { 19 public: 20 SBUnixSignals(); 21 22 SBUnixSignals(const lldb::SBUnixSignals &rhs); 23 24 ~SBUnixSignals(); 25 26 const SBUnixSignals &operator=(const lldb::SBUnixSignals &rhs); 27 28 void Clear(); 29 30 bool IsValid() const; 31 32 const char *GetSignalAsCString(int32_t signo) const; 33 34 int32_t GetSignalNumberFromName(const char *name) const; 35 36 bool GetShouldSuppress(int32_t signo) const; 37 38 bool SetShouldSuppress(int32_t signo, bool value); 39 40 bool GetShouldStop(int32_t signo) const; 41 42 bool SetShouldStop(int32_t signo, bool value); 43 44 bool GetShouldNotify(int32_t signo) const; 45 46 bool SetShouldNotify(int32_t signo, bool value); 47 48 int32_t GetNumSignals() const; 49 50 int32_t GetSignalAtIndex(int32_t index) const; 51 52 protected: 53 friend class SBProcess; 54 friend class SBPlatform; 55 56 SBUnixSignals(lldb::ProcessSP &process_sp); 57 58 SBUnixSignals(lldb::PlatformSP &platform_sp); 59 60 lldb::UnixSignalsSP GetSP() const; 61 62 void SetSP(const lldb::UnixSignalsSP &signals_sp); 63 64 private: 65 lldb::UnixSignalsWP m_opaque_wp; 66 }; 67 68 } // namespace lldb 69 70 #endif // LLDB_SBUnixSignals_h_ 71