1 //===-- SBQueueItem.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_SBQUEUEITEM_H 10 #define LLDB_API_SBQUEUEITEM_H 11 12 #include "lldb/API/SBAddress.h" 13 #include "lldb/API/SBDefines.h" 14 15 namespace lldb_private { 16 class QueueImpl; 17 } 18 19 namespace lldb { 20 21 class LLDB_API SBQueueItem { 22 public: 23 SBQueueItem(); 24 25 ~SBQueueItem(); 26 27 explicit operator bool() const; 28 29 bool IsValid() const; 30 31 void Clear(); 32 33 lldb::QueueItemKind GetKind() const; 34 35 void SetKind(lldb::QueueItemKind kind); 36 37 lldb::SBAddress GetAddress() const; 38 39 void SetAddress(lldb::SBAddress addr); 40 41 SBThread GetExtendedBacktraceThread(const char *type); 42 43 protected: 44 friend class lldb_private::QueueImpl; 45 46 SBQueueItem(const lldb::QueueItemSP &queue_item_sp); 47 48 void SetQueueItem(const lldb::QueueItemSP &queue_item_sp); 49 50 private: 51 lldb::QueueItemSP m_queue_item_sp; 52 }; 53 54 } // namespace lldb 55 56 #endif // LLDB_API_SBQUEUEITEM_H 57