summaryrefslogtreecommitdiffstats
path: root/lldb/source/API
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/API')
-rw-r--r--lldb/source/API/SBBroadcaster.cpp2
-rw-r--r--lldb/source/API/SBCommandInterpreter.cpp6
-rw-r--r--lldb/source/API/SBCommunication.cpp5
-rw-r--r--lldb/source/API/SBEvent.cpp10
-rw-r--r--lldb/source/API/SBListener.cpp36
-rw-r--r--lldb/source/API/SBProcess.cpp14
-rw-r--r--lldb/source/API/SBTarget.cpp7
7 files changed, 77 insertions, 3 deletions
diff --git a/lldb/source/API/SBBroadcaster.cpp b/lldb/source/API/SBBroadcaster.cpp
index a33f784e30a..9ede891868b 100644
--- a/lldb/source/API/SBBroadcaster.cpp
+++ b/lldb/source/API/SBBroadcaster.cpp
@@ -25,7 +25,7 @@ SBBroadcaster::SBBroadcaster () :
}
SBBroadcaster::SBBroadcaster (const char *name) :
- m_opaque_sp (new Broadcaster (name)),
+ m_opaque_sp (new Broadcaster (NULL, name)),
m_opaque_ptr (NULL)
{
m_opaque_ptr = m_opaque_sp.get();
diff --git a/lldb/source/API/SBCommandInterpreter.cpp b/lldb/source/API/SBCommandInterpreter.cpp
index e6054789090..cbf2f914089 100644
--- a/lldb/source/API/SBCommandInterpreter.cpp
+++ b/lldb/source/API/SBCommandInterpreter.cpp
@@ -292,6 +292,12 @@ SBCommandInterpreter::GetBroadcaster ()
return broadcaster;
}
+const char *
+SBCommandInterpreter::GetBroadcasterClass ()
+{
+ return Communication::GetStaticBroadcasterClass().AsCString();
+}
+
const char *
SBCommandInterpreter::GetArgumentTypeAsCString (const lldb::CommandArgumentType arg_type)
{
diff --git a/lldb/source/API/SBCommunication.cpp b/lldb/source/API/SBCommunication.cpp
index 6b5ddb37cd6..bf3a49e719e 100644
--- a/lldb/source/API/SBCommunication.cpp
+++ b/lldb/source/API/SBCommunication.cpp
@@ -255,6 +255,11 @@ SBCommunication::GetBroadcaster ()
return broadcaster;
}
+const char *
+SBCommunication::GetBroadcasterClass ()
+{
+ return Communication::GetStaticBroadcasterClass().AsCString();
+}
//
//void
diff --git a/lldb/source/API/SBEvent.cpp b/lldb/source/API/SBEvent.cpp
index f9d0e0cc3a8..5ba71b0aa30 100644
--- a/lldb/source/API/SBEvent.cpp
+++ b/lldb/source/API/SBEvent.cpp
@@ -109,6 +109,16 @@ SBEvent::GetBroadcaster () const
return broadcaster;
}
+const char *
+SBEvent::GetBroadcasterClass () const
+{
+ const Event *lldb_event = get();
+ if (lldb_event)
+ return lldb_event->GetBroadcaster()->GetBroadcasterClass().AsCString();
+ else
+ return "unknown class";
+}
+
bool
SBEvent::BroadcasterMatchesPtr (const SBBroadcaster *broadcaster)
{
diff --git a/lldb/source/API/SBListener.cpp b/lldb/source/API/SBListener.cpp
index f9816347d11..b1942be36fe 100644
--- a/lldb/source/API/SBListener.cpp
+++ b/lldb/source/API/SBListener.cpp
@@ -9,9 +9,11 @@
#include "lldb/API/SBListener.h"
#include "lldb/API/SBBroadcaster.h"
+#include "lldb/API/SBDebugger.h"
#include "lldb/API/SBEvent.h"
#include "lldb/API/SBStream.h"
#include "lldb/Core/Broadcaster.h"
+#include "lldb/Core/Debugger.h"
#include "lldb/Core/Listener.h"
#include "lldb/Core/Log.h"
#include "lldb/Core/StreamString.h"
@@ -90,6 +92,40 @@ SBListener::Clear ()
m_opaque_ptr->Clear ();
}
+ uint32_t
+ SBListener::StartListeningForEventClass (SBDebugger &debugger,
+ const char *broadcaster_class,
+ uint32_t event_mask)
+ {
+ if (m_opaque_ptr)
+ {
+ Debugger *lldb_debugger = debugger.get();
+ if (!lldb_debugger)
+ return 0;
+ BroadcastEventSpec event_spec (ConstString (broadcaster_class), event_mask);
+ return m_opaque_ptr->StartListeningForEventSpec (*lldb_debugger, event_spec);
+ }
+ else
+ return 0;
+ }
+
+ bool
+ SBListener::StopListeningForEventClass (SBDebugger &debugger,
+ const char *broadcaster_class,
+ uint32_t event_mask)
+ {
+ if (m_opaque_ptr)
+ {
+ Debugger *lldb_debugger = debugger.get();
+ if (!lldb_debugger)
+ return false;
+ BroadcastEventSpec event_spec (ConstString (broadcaster_class), event_mask);
+ return m_opaque_ptr->StopListeningForEventSpec (*lldb_debugger, event_spec);
+ }
+ else
+ return false;
+ }
+
uint32_t
SBListener::StartListeningForEvents (const SBBroadcaster& broadcaster, uint32_t event_mask)
{
diff --git a/lldb/source/API/SBProcess.cpp b/lldb/source/API/SBProcess.cpp
index 5fc71966078..9e32f91c107 100644
--- a/lldb/source/API/SBProcess.cpp
+++ b/lldb/source/API/SBProcess.cpp
@@ -74,6 +74,12 @@ SBProcess::~SBProcess()
{
}
+const char *
+SBProcess::GetBroadcasterClassName ()
+{
+ return Process::GetStaticBroadcasterClass().AsCString();
+}
+
lldb::ProcessSP
SBProcess::GetSP() const
{
@@ -743,7 +749,7 @@ SBProcess::GetProcessFromEvent (const SBEvent &event)
bool
SBProcess::EventIsProcessEvent (const SBEvent &event)
{
- return Process::ProcessEventData::GetEventDataFromEvent(event.get()) != NULL;
+ return strcmp (event.GetBroadcasterClass(), SBProcess::GetBroadcasterClass()) == 0;
}
SBBroadcaster
@@ -762,6 +768,12 @@ SBProcess::GetBroadcaster () const
return broadcaster;
}
+const char *
+SBProcess::GetBroadcasterClass ()
+{
+ return Process::GetStaticBroadcasterClass().AsCString();
+}
+
size_t
SBProcess::ReadMemory (addr_t addr, void *dst, size_t dst_len, SBError &sb_error)
{
diff --git a/lldb/source/API/SBTarget.cpp b/lldb/source/API/SBTarget.cpp
index 687c44e01f2..7fdfb347429 100644
--- a/lldb/source/API/SBTarget.cpp
+++ b/lldb/source/API/SBTarget.cpp
@@ -87,6 +87,12 @@ SBTarget::~SBTarget()
{
}
+const char *
+SBTarget::GetBroadcasterClassName ()
+{
+ return Target::GetStaticBroadcasterClass().AsCString();
+}
+
bool
SBTarget::IsValid () const
{
@@ -1235,7 +1241,6 @@ SBTarget::GetBroadcaster () const
return broadcaster;
}
-
bool
SBTarget::GetDescription (SBStream &description, lldb::DescriptionLevel description_level)
{
OpenPOWER on IntegriCloud