LLDB  mainline
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | List of all members
ObjectContainerBSDArchive::Archive Class Reference

#include <ObjectContainerBSDArchive.h>

Collaboration diagram for ObjectContainerBSDArchive::Archive:
Collaboration graph
[legend]

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)
 
 ~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 ()
 

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)
 

Protected Types

typedef lldb_private::UniqueCStringMap< uint32_tObjectNameToIndexMap
 

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. More...
 

Detailed Description

Definition at line 108 of file ObjectContainerBSDArchive.h.

Member Typedef Documentation

◆ Map

Definition at line 111 of file ObjectContainerBSDArchive.h.

◆ ObjectNameToIndexMap

Definition at line 160 of file ObjectContainerBSDArchive.h.

◆ 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 
)

Definition at line 136 of file ObjectContainerBSDArchive.cpp.

◆ ~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 171 of file ObjectContainerBSDArchive.cpp.

◆ 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

◆ 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 
)
static

◆ ParseObjects()

size_t ObjectContainerBSDArchive::Archive::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 162 of file ObjectContainerBSDArchive.h.

Referenced by GetArchitecture(), and SetArchitecture().

◆ 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 167 of file ObjectContainerBSDArchive.h.

Referenced by GetData().

◆ m_file_offset

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

Definition at line 164 of file ObjectContainerBSDArchive.h.

Referenced by GetFileOffset().

◆ m_modification_time

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

Definition at line 163 of file ObjectContainerBSDArchive.h.

Referenced by GetModificationTime().

◆ m_object_name_to_index_map

ObjectNameToIndexMap ObjectContainerBSDArchive::Archive::m_object_name_to_index_map
protected

Definition at line 166 of file ObjectContainerBSDArchive.h.

◆ m_objects

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

Definition at line 165 of file ObjectContainerBSDArchive.h.

Referenced by GetNumObjects(), and GetObjectAtIndex().


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