LLDB mainline
ObjectContainerBSDArchive::Archive Class Reference

#include <ObjectContainerBSDArchive.h>

Public Types

typedef std::shared_ptr< Archiveshared_ptr
typedef std::multimap< lldb_private::FileSpec, shared_ptrMap

Public Member Functions

 Archive (const lldb_private::ArchSpec &arch, const llvm::sys::TimePoint<> &mod_time, lldb::offset_t file_offset, lldb_private::DataExtractor &data, ArchiveType archive_type)
 ~Archive ()
size_t GetNumObjects () const
const ObjectGetObjectAtIndex (size_t idx)
size_t ParseObjects ()
ObjectFindObject (lldb_private::ConstString object_name, const llvm::sys::TimePoint<> &object_mod_time)
lldb::offset_t GetFileOffset () const
const llvm::sys::TimePoint & GetModificationTime ()
const lldb_private::ArchSpecGetArchitecture () const
void SetArchitecture (const lldb_private::ArchSpec &arch)
bool HasNoExternalReferences () const
lldb_private::DataExtractorGetData ()
ArchiveType GetArchiveType ()

Static Public Member Functions

static MapGetArchiveCache ()
static std::recursive_mutex & GetArchiveCacheMutex ()
static Archive::shared_ptr FindCachedArchive (const lldb_private::FileSpec &file, const lldb_private::ArchSpec &arch, const llvm::sys::TimePoint<> &mod_time, lldb::offset_t file_offset)
static Archive::shared_ptr ParseAndCacheArchiveForFile (const lldb_private::FileSpec &file, const lldb_private::ArchSpec &arch, const llvm::sys::TimePoint<> &mod_time, lldb::offset_t file_offset, lldb_private::DataExtractor &data, ArchiveType archive_type)

Protected Types

typedef lldb_private::UniqueCStringMap< uint32_t > ObjectNameToIndexMap

Protected Attributes

lldb_private::ArchSpec m_arch
llvm::sys::TimePoint m_modification_time
lldb::offset_t m_file_offset
std::vector< Objectm_objects
ObjectNameToIndexMap m_object_name_to_index_map
lldb_private::DataExtractor m_data
 The data for this object container so we don't lose data if the .a files gets modified.
ArchiveType m_archive_type

Detailed Description

Definition at line 108 of file ObjectContainerBSDArchive.h.

Member Typedef Documentation

◆ Map

◆ ObjectNameToIndexMap

◆ shared_ptr

Definition at line 110 of file ObjectContainerBSDArchive.h.

Constructor & Destructor Documentation

◆ Archive()

ObjectContainerBSDArchive::Archive::Archive ( const lldb_private::ArchSpec & arch,
const llvm::sys::TimePoint<> & mod_time,
lldb::offset_t file_offset,
lldb_private::DataExtractor & data,
ArchiveType archive_type )

◆ ~Archive()

ObjectContainerBSDArchive::Archive::~Archive ( )
default

Member Function Documentation

◆ FindCachedArchive()

ObjectContainerBSDArchive::Archive::shared_ptr ObjectContainerBSDArchive::Archive::FindCachedArchive ( const lldb_private::FileSpec & file,
const lldb_private::ArchSpec & arch,
const llvm::sys::TimePoint<> & mod_time,
lldb::offset_t file_offset )
static

◆ FindObject()

ObjectContainerBSDArchive::Object * ObjectContainerBSDArchive::Archive::FindObject ( lldb_private::ConstString object_name,
const llvm::sys::TimePoint<> & object_mod_time )

Definition at line 155 of file ObjectContainerBSDArchive.cpp.

References m_object_name_to_index_map, and m_objects.

◆ GetArchitecture()

const lldb_private::ArchSpec & ObjectContainerBSDArchive::Archive::GetArchitecture ( ) const
inline

Definition at line 151 of file ObjectContainerBSDArchive.h.

References m_arch.

◆ GetArchiveCache()

ObjectContainerBSDArchive::Archive::Map & ObjectContainerBSDArchive::Archive::GetArchiveCache ( )
static

◆ GetArchiveCacheMutex()

std::recursive_mutex & ObjectContainerBSDArchive::Archive::GetArchiveCacheMutex ( )
static

◆ GetArchiveType()

ArchiveType ObjectContainerBSDArchive::Archive::GetArchiveType ( )
inline

Definition at line 159 of file ObjectContainerBSDArchive.h.

References m_archive_type.

◆ GetData()

lldb_private::DataExtractor & ObjectContainerBSDArchive::Archive::GetData ( )
inline

Definition at line 157 of file ObjectContainerBSDArchive.h.

References m_data.

◆ GetFileOffset()

lldb::offset_t ObjectContainerBSDArchive::Archive::GetFileOffset ( ) const
inline

Definition at line 145 of file ObjectContainerBSDArchive.h.

References m_file_offset.

◆ GetModificationTime()

const llvm::sys::TimePoint & ObjectContainerBSDArchive::Archive::GetModificationTime ( )
inline

Definition at line 147 of file ObjectContainerBSDArchive.h.

References m_modification_time.

◆ GetNumObjects()

size_t ObjectContainerBSDArchive::Archive::GetNumObjects ( ) const
inline

Definition at line 132 of file ObjectContainerBSDArchive.h.

References m_objects.

◆ GetObjectAtIndex()

const Object * ObjectContainerBSDArchive::Archive::GetObjectAtIndex ( size_t idx)
inline

Definition at line 134 of file ObjectContainerBSDArchive.h.

References m_objects.

◆ HasNoExternalReferences()

bool ObjectContainerBSDArchive::Archive::HasNoExternalReferences ( ) const

◆ ParseAndCacheArchiveForFile()

ObjectContainerBSDArchive::Archive::shared_ptr ObjectContainerBSDArchive::Archive::ParseAndCacheArchiveForFile ( const lldb_private::FileSpec & file,
const lldb_private::ArchSpec & arch,
const llvm::sys::TimePoint<> & mod_time,
lldb::offset_t file_offset,
lldb_private::DataExtractor & data,
ArchiveType archive_type )
static

◆ ParseObjects()

◆ SetArchitecture()

void ObjectContainerBSDArchive::Archive::SetArchitecture ( const lldb_private::ArchSpec & arch)
inline

Definition at line 153 of file ObjectContainerBSDArchive.h.

References m_arch.

Member Data Documentation

◆ m_arch

lldb_private::ArchSpec ObjectContainerBSDArchive::Archive::m_arch
protected

Definition at line 164 of file ObjectContainerBSDArchive.h.

Referenced by Archive(), GetArchitecture(), and SetArchitecture().

◆ m_archive_type

ArchiveType ObjectContainerBSDArchive::Archive::m_archive_type
protected

Definition at line 172 of file ObjectContainerBSDArchive.h.

Referenced by Archive(), and GetArchiveType().

◆ m_data

lldb_private::DataExtractor ObjectContainerBSDArchive::Archive::m_data
protected

The data for this object container so we don't lose data if the .a files gets modified.

Definition at line 169 of file ObjectContainerBSDArchive.h.

Referenced by Archive(), GetData(), and ParseObjects().

◆ m_file_offset

lldb::offset_t ObjectContainerBSDArchive::Archive::m_file_offset
protected

Definition at line 166 of file ObjectContainerBSDArchive.h.

Referenced by Archive(), and GetFileOffset().

◆ m_modification_time

llvm::sys::TimePoint ObjectContainerBSDArchive::Archive::m_modification_time
protected

Definition at line 165 of file ObjectContainerBSDArchive.h.

Referenced by Archive(), and GetModificationTime().

◆ m_object_name_to_index_map

ObjectNameToIndexMap ObjectContainerBSDArchive::Archive::m_object_name_to_index_map
protected

Definition at line 168 of file ObjectContainerBSDArchive.h.

Referenced by FindObject(), and ParseObjects().

◆ m_objects

std::vector<Object> ObjectContainerBSDArchive::Archive::m_objects
protected

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