From 5e8dce4dbfd6f3e3366948ec22b82b952ae2b108 Mon Sep 17 00:00:00 2001 From: Jason Molenda Date: Fri, 13 Dec 2013 00:29:16 +0000 Subject: Add new Queue, QueueItem, Queuelist, SBQueue, SBQueueItem classes to represent libdispatch aka Grand Central Dispatch (GCD) queues. Still fleshing out the documentation and testing of these but the overall API is settling down so it's a good time to check it in. llvm-svn: 197190 --- lldb/scripts/Python/interface/SBProcess.i | 9 +++++ lldb/scripts/Python/interface/SBQueue.i | 54 +++++++++++++++++++++++++++++ lldb/scripts/Python/interface/SBQueueItem.i | 46 ++++++++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 lldb/scripts/Python/interface/SBQueue.i create mode 100644 lldb/scripts/Python/interface/SBQueueItem.i (limited to 'lldb/scripts/Python/interface') diff --git a/lldb/scripts/Python/interface/SBProcess.i b/lldb/scripts/Python/interface/SBProcess.i index 9798f9aa4a4..7abbf919af2 100644 --- a/lldb/scripts/Python/interface/SBProcess.i +++ b/lldb/scripts/Python/interface/SBProcess.i @@ -179,6 +179,15 @@ public: bool SetSelectedThreadByIndexID (uint32_t index_id); + //------------------------------------------------------------------ + // Queue related functions + //------------------------------------------------------------------ + uint32_t + GetNumQueues (); + + lldb::SBQueue + GetQueueAtIndex (uint32_t index); + //------------------------------------------------------------------ // Stepping related functions //------------------------------------------------------------------ diff --git a/lldb/scripts/Python/interface/SBQueue.i b/lldb/scripts/Python/interface/SBQueue.i new file mode 100644 index 00000000000..09dbc190a6d --- /dev/null +++ b/lldb/scripts/Python/interface/SBQueue.i @@ -0,0 +1,54 @@ +//===-- SWIG Interface for SBQueue.h -----------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +namespace lldb { + +class SBQueue +{ +public: + SBQueue (); + + SBQueue (const lldb::QueueSP& queue_sp); + + ~SBQueue(); + + bool + IsValid() const; + + void + Clear (); + + lldb::SBProcess + GetProcess (); + + lldb::queue_id_t + GetQueueID () const; + + const char * + GetName () const; + + uint32_t + GetIndexID () const; + + uint32_t + GetNumThreads (); + + lldb::SBThread + GetThreadAtIndex (uint32_t); + + uint32_t + GetNumItems (); + + lldb::SBQueueItem + GetItemAtIndex (uint32_t); + +}; + +} // namespace lldb + diff --git a/lldb/scripts/Python/interface/SBQueueItem.i b/lldb/scripts/Python/interface/SBQueueItem.i new file mode 100644 index 00000000000..ffa24150b67 --- /dev/null +++ b/lldb/scripts/Python/interface/SBQueueItem.i @@ -0,0 +1,46 @@ +//===-- SWIG Interface for SBQueueItem.h ------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +namespace lldb { + +class SBQueueItem +{ +public: + SBQueueItem (); + + SBQueueItem (const lldb::QueueItemSP& queue_item_sp); + + ~SBQueueItem(); + + bool + IsValid() const; + + void + Clear (); + + lldb::QueueItemKind + GetKind () const; + + void + SetKind (lldb::QueueItemKind kind); + + lldb::SBAddress + GetAddress () const; + + void + SetAddress (lldb::SBAddress addr); + + void + SetQueueItem (const lldb::QueueItemSP& queue_item_sp); + + lldb::SBThread + GetExtendedBacktraceThread (const char *type); +}; + +} // namespace lldb -- cgit v1.2.3