1 //===-- SBQueue.h -----------------------------------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_SBQueue_h_
10 #define LLDB_SBQueue_h_
14 #include "lldb/API/SBDefines.h"
15 #include "lldb/lldb-forward.h"
19 class LLDB_API SBQueue {
23 SBQueue(const QueueSP &queue_sp);
25 SBQueue(const SBQueue &rhs);
27 const SBQueue &operator=(const lldb::SBQueue &rhs);
31 explicit operator bool() const;
37 lldb::SBProcess GetProcess();
39 lldb::queue_id_t GetQueueID() const;
41 const char *GetName() const;
43 uint32_t GetIndexID() const;
45 uint32_t GetNumThreads();
47 lldb::SBThread GetThreadAtIndex(uint32_t);
49 uint32_t GetNumPendingItems();
51 lldb::SBQueueItem GetPendingItemAtIndex(uint32_t);
53 uint32_t GetNumRunningItems();
55 lldb::QueueKind GetKind();
58 friend class SBProcess;
59 friend class SBThread;
61 void SetQueue(const lldb::QueueSP &queue_sp);
64 std::shared_ptr<lldb_private::QueueImpl> m_opaque_sp;
69 #endif // LLDB_SBQueue_h_