LLDB mainline
lldb_private::ScriptedInstanceRegistry Class Reference

Entries are snapshots taken when the object is created, so listing them never calls back into an interface that might be mid-destruction on another thread. More...

#include <ScriptedInstanceRegistry.h>

Public Member Functions

uint64_t Add (ScriptedInstanceInfo info)
void Remove (uint64_t id)
std::vector< ScriptedInstanceInfo > GetInstances () const
std::vector< ScriptedInstanceGroup > GetInstanceGroups (llvm::ArrayRef< lldb::ScriptedExtension > extensions={}) const

Private Member Functions

std::vector< ScriptedInstanceInfo > CopyInstances () const

Private Attributes

std::mutex m_mutex
uint64_t m_next_id = 1
llvm::DenseMap< uint64_t, ScriptedInstanceInfo > m_instances

Detailed Description

Entries are snapshots taken when the object is created, so listing them never calls back into an interface that might be mid-destruction on another thread.

Definition at line 61 of file ScriptedInstanceRegistry.h.

Member Function Documentation

◆ Add()

◆ CopyInstances()

std::vector< ScriptedInstanceInfo > ScriptedInstanceRegistry::CopyInstances ( ) const
private

Definition at line 45 of file ScriptedInstanceRegistry.cpp.

References m_instances, and m_mutex.

Referenced by GetInstanceGroups(), and GetInstances().

◆ GetInstanceGroups()

◆ GetInstances()

std::vector< ScriptedInstanceInfo > ScriptedInstanceRegistry::GetInstances ( ) const

Definition at line 55 of file ScriptedInstanceRegistry.cpp.

References CopyInstances(), and CreatedBefore().

◆ Remove()

void ScriptedInstanceRegistry::Remove ( uint64_t id)

Definition at line 39 of file ScriptedInstanceRegistry.cpp.

References m_instances, and m_mutex.

Member Data Documentation

◆ m_instances

llvm::DenseMap<uint64_t, ScriptedInstanceInfo> lldb_private::ScriptedInstanceRegistry::m_instances
private

Definition at line 77 of file ScriptedInstanceRegistry.h.

Referenced by Add(), CopyInstances(), and Remove().

◆ m_mutex

std::mutex lldb_private::ScriptedInstanceRegistry::m_mutex
mutableprivate

Definition at line 75 of file ScriptedInstanceRegistry.h.

Referenced by Add(), CopyInstances(), and Remove().

◆ m_next_id

uint64_t lldb_private::ScriptedInstanceRegistry::m_next_id = 1
private

Definition at line 76 of file ScriptedInstanceRegistry.h.

Referenced by Add().


The documentation for this class was generated from the following files: