LLDB mainline
|
#include <ObjectContainerBSDArchive.h>
Public Types | |
typedef std::shared_ptr< Archive > | shared_ptr |
typedef std::multimap< lldb_private::FileSpec, shared_ptr > | Map |
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 Object * | GetObjectAtIndex (size_t idx) |
size_t | ParseObjects () |
Object * | FindObject (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::ArchSpec & | GetArchitecture () const |
void | SetArchitecture (const lldb_private::ArchSpec &arch) |
bool | HasNoExternalReferences () const |
lldb_private::DataExtractor & | GetData () |
ArchiveType | GetArchiveType () |
Static Public Member Functions | |
static Map & | GetArchiveCache () |
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< Object > | m_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 |
Definition at line 108 of file ObjectContainerBSDArchive.h.
typedef std::multimap<lldb_private::FileSpec, shared_ptr> ObjectContainerBSDArchive::Archive::Map |
Definition at line 111 of file ObjectContainerBSDArchive.h.
|
protected |
Definition at line 162 of file ObjectContainerBSDArchive.h.
typedef std::shared_ptr<Archive> ObjectContainerBSDArchive::Archive::shared_ptr |
Definition at line 110 of file ObjectContainerBSDArchive.h.
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 68 of file ObjectContainerBSDArchive.cpp.
|
default |
|
static |
Definition at line 179 of file ObjectContainerBSDArchive.cpp.
References GetArchiveCache(), GetArchiveCacheMutex(), lldb_private::ArchSpec::IsValid(), and LLDB_INVALID_OFFSET.
Referenced by ObjectContainerBSDArchive::CreateInstance(), and ObjectContainerBSDArchive::GetModuleSpecifications().
ObjectContainerBSDArchive::Object * ObjectContainerBSDArchive::Archive::FindObject | ( | lldb_private::ConstString | object_name, |
const llvm::sys::TimePoint<> & | object_mod_time | ||
) |
Definition at line 153 of file ObjectContainerBSDArchive.cpp.
|
inline |
Definition at line 151 of file ObjectContainerBSDArchive.h.
References m_arch.
|
static |
Definition at line 239 of file ObjectContainerBSDArchive.cpp.
Referenced by FindCachedArchive(), and ParseAndCacheArchiveForFile().
|
static |
Definition at line 245 of file ObjectContainerBSDArchive.cpp.
Referenced by FindCachedArchive(), and ParseAndCacheArchiveForFile().
|
inline |
Definition at line 159 of file ObjectContainerBSDArchive.h.
References m_archive_type.
|
inline |
Definition at line 157 of file ObjectContainerBSDArchive.h.
References m_data.
|
inline |
Definition at line 145 of file ObjectContainerBSDArchive.h.
References m_file_offset.
|
inline |
Definition at line 147 of file ObjectContainerBSDArchive.h.
References m_modification_time.
|
inline |
Definition at line 132 of file ObjectContainerBSDArchive.h.
References m_objects.
|
inline |
Definition at line 134 of file ObjectContainerBSDArchive.h.
References m_objects.
bool ObjectContainerBSDArchive::Archive::HasNoExternalReferences | ( | ) | const |
|
static |
Definition at line 219 of file ObjectContainerBSDArchive.cpp.
References GetArchiveCache(), and GetArchiveCacheMutex().
Referenced by ObjectContainerBSDArchive::GetModuleSpecifications(), and ObjectContainerBSDArchive::ParseHeader().
size_t ObjectContainerBSDArchive::Archive::ParseObjects | ( | ) |
Definition at line 79 of file ObjectContainerBSDArchive.cpp.
References ObjectContainerBSDArchive::Object::ar_name, ObjectContainerBSDArchive::Object::Clear(), ObjectContainerBSDArchive::Object::file_offset, ObjectContainerBSDArchive::Object::file_size, lldb_private::DataExtractor::GetByteSize(), lldb_private::DataExtractor::GetDataStart(), l, LLDB_LOG_ERROR, lldb_private::ObjectContainer::m_data, ObjectContainerBSDArchive::Object::modification_time, and ObjectContainerBSDArchive::Object::size.
|
inline |
Definition at line 153 of file ObjectContainerBSDArchive.h.
References m_arch.
|
protected |
Definition at line 164 of file ObjectContainerBSDArchive.h.
Referenced by GetArchitecture(), and SetArchitecture().
|
protected |
Definition at line 172 of file ObjectContainerBSDArchive.h.
Referenced by GetArchiveType().
|
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 GetData().
|
protected |
Definition at line 166 of file ObjectContainerBSDArchive.h.
Referenced by GetFileOffset().
|
protected |
Definition at line 165 of file ObjectContainerBSDArchive.h.
Referenced by GetModificationTime().
|
protected |
Definition at line 168 of file ObjectContainerBSDArchive.h.
|
protected |
Definition at line 167 of file ObjectContainerBSDArchive.h.
Referenced by GetNumObjects(), and GetObjectAtIndex().