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, 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_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...
 
ArchiveType m_archive_type
 

Detailed Description

Definition at line 115 of file ObjectContainerBSDArchive.h.

Member Typedef Documentation

◆ Map

Definition at line 118 of file ObjectContainerBSDArchive.h.

◆ ObjectNameToIndexMap

Definition at line 169 of file ObjectContainerBSDArchive.h.

◆ shared_ptr

Definition at line 117 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 
)

Definition at line 206 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 284 of file ObjectContainerBSDArchive.cpp.

◆ GetArchitecture()

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

Definition at line 158 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 166 of file ObjectContainerBSDArchive.h.

References m_archive_type.

◆ GetData()

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

Definition at line 164 of file ObjectContainerBSDArchive.h.

References m_data.

◆ GetFileOffset()

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

Definition at line 152 of file ObjectContainerBSDArchive.h.

References m_file_offset.

◆ GetModificationTime()

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

Definition at line 154 of file ObjectContainerBSDArchive.h.

References m_modification_time.

◆ GetNumObjects()

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

Definition at line 139 of file ObjectContainerBSDArchive.h.

References m_objects.

◆ GetObjectAtIndex()

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

Definition at line 141 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()

size_t ObjectContainerBSDArchive::Archive::ParseObjects ( )

◆ SetArchitecture()

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

Definition at line 160 of file ObjectContainerBSDArchive.h.

References m_arch.

Member Data Documentation

◆ m_arch

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

Definition at line 171 of file ObjectContainerBSDArchive.h.

Referenced by GetArchitecture(), and SetArchitecture().

◆ m_archive_type

ArchiveType ObjectContainerBSDArchive::Archive::m_archive_type
protected

Definition at line 179 of file ObjectContainerBSDArchive.h.

Referenced by 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 176 of file ObjectContainerBSDArchive.h.

Referenced by GetData().

◆ m_file_offset

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

Definition at line 173 of file ObjectContainerBSDArchive.h.

Referenced by GetFileOffset().

◆ m_modification_time

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

Definition at line 172 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 175 of file ObjectContainerBSDArchive.h.

◆ m_objects

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

Definition at line 174 of file ObjectContainerBSDArchive.h.

Referenced by GetNumObjects(), and GetObjectAtIndex().


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