10b57cec5SDimitry Andric //===-- SBQueueItem.h -------------------------------------------*- C++ -*-===// 20b57cec5SDimitry Andric // 30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 60b57cec5SDimitry Andric // 70b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 80b57cec5SDimitry Andric 95ffd83dbSDimitry Andric #ifndef LLDB_API_SBQUEUEITEM_H 105ffd83dbSDimitry Andric #define LLDB_API_SBQUEUEITEM_H 110b57cec5SDimitry Andric 120b57cec5SDimitry Andric #include "lldb/API/SBAddress.h" 130b57cec5SDimitry Andric #include "lldb/API/SBDefines.h" 140b57cec5SDimitry Andric 1506c3fb27SDimitry Andric namespace lldb_private { 1606c3fb27SDimitry Andric class QueueImpl; 1706c3fb27SDimitry Andric } 1806c3fb27SDimitry Andric 190b57cec5SDimitry Andric namespace lldb { 200b57cec5SDimitry Andric 210b57cec5SDimitry Andric class LLDB_API SBQueueItem { 220b57cec5SDimitry Andric public: 230b57cec5SDimitry Andric SBQueueItem(); 240b57cec5SDimitry Andric 250b57cec5SDimitry Andric ~SBQueueItem(); 260b57cec5SDimitry Andric 270b57cec5SDimitry Andric explicit operator bool() const; 280b57cec5SDimitry Andric 290b57cec5SDimitry Andric bool IsValid() const; 300b57cec5SDimitry Andric 310b57cec5SDimitry Andric void Clear(); 320b57cec5SDimitry Andric 330b57cec5SDimitry Andric lldb::QueueItemKind GetKind() const; 340b57cec5SDimitry Andric 350b57cec5SDimitry Andric void SetKind(lldb::QueueItemKind kind); 360b57cec5SDimitry Andric 370b57cec5SDimitry Andric lldb::SBAddress GetAddress() const; 380b57cec5SDimitry Andric 390b57cec5SDimitry Andric void SetAddress(lldb::SBAddress addr); 400b57cec5SDimitry Andric 410b57cec5SDimitry Andric SBThread GetExtendedBacktraceThread(const char *type); 420b57cec5SDimitry Andric 4306c3fb27SDimitry Andric protected: 4406c3fb27SDimitry Andric friend class lldb_private::QueueImpl; 4506c3fb27SDimitry Andric 4606c3fb27SDimitry Andric SBQueueItem(const lldb::QueueItemSP &queue_item_sp); 4706c3fb27SDimitry Andric 4806c3fb27SDimitry Andric void SetQueueItem(const lldb::QueueItemSP &queue_item_sp); 4906c3fb27SDimitry Andric 500b57cec5SDimitry Andric private: 510b57cec5SDimitry Andric lldb::QueueItemSP m_queue_item_sp; 520b57cec5SDimitry Andric }; 530b57cec5SDimitry Andric 540b57cec5SDimitry Andric } // namespace lldb 550b57cec5SDimitry Andric 565ffd83dbSDimitry Andric #endif // LLDB_API_SBQUEUEITEM_H 57