![]() |
CernVM-FS
2.10.0
|
#include <bigvector.h>
Public Member Functions | |
BigVector () | |
BigVector (const size_t num_items) | |
BigVector (const BigVector< Item > &other) | |
BigVector< Item > & | operator= (const BigVector< Item > &other) |
~BigVector () | |
Item | At (const size_t index) const |
const Item * | AtPtr (const size_t index) const |
void | PushBack (const Item &item) |
bool | IsEmpty () const |
void | Clear () |
void | ShareBuffer (Item **duplicate, bool *large_alloc) |
void | DoubleCapacity () |
void | SetSize (const size_t new_size) |
size_t | size () const |
size_t | capacity () const |
Private Member Functions | |
void | Alloc (const size_t num_elements) |
void | Dealloc () |
void | FreeBuffer (Item *buf, const size_t size, const bool large) |
void | CopyFrom (const BigVector< Item > &other) |
Private Attributes | |
Item * | buffer_ |
size_t | size_ |
size_t | capacity_ |
bool | large_alloc_ |
bool | shared_buffer_ |
Static Private Attributes | |
static const size_t | kNumInit = 16 |
static const size_t | kMmapThreshold = 128*1024 |
This file is part of the CernVM File System.
Dynamic array, allocate with mmap for large arrays.
Definition at line 16 of file bigvector.h.
Definition at line 18 of file bigvector.h.
Definition at line 24 of file bigvector.h.
Definition at line 31 of file bigvector.h.
Definition at line 45 of file bigvector.h.
|
inlineprivate |
Definition at line 107 of file bigvector.h.
Referenced by BigVector< uint64_t >::BigVector(), BigVector< uint64_t >::Clear(), BigVector< uint64_t >::CopyFrom(), and BigVector< uint64_t >::DoubleCapacity().
|
inline |
Definition at line 50 of file bigvector.h.
Referenced by glue::StringHeap::AddString(), swissknife::CommandCheck::Find(), FuseInvalidator::MainInvalidator(), ChunkListMagicXattr::PrepareValueFenced(), glue::StringHeap::~StringHeap(), and compat::inode_tracker_v3::StringHeap::~StringHeap().
|
inline |
Definition at line 55 of file bigvector.h.
Referenced by catalog::WritableCatalogManager::AddChunkedFile(), catalog::WritableCatalogManager::AddHardlinkGroup(), BigVector< uint64_t >::CopyFrom(), cvmfs::cvmfs_opendir(), cvmfs::cvmfs_read(), LibContext::ListDirectory(), LibContext::ListDirectoryStat(), compat::chunk_tables::Migrate(), compat::chunk_tables_v2::Migrate(), catalog::WritableCatalog::MoveFileChunksToNested(), cvmfs::Pin(), and LibContext::Pread().
|
inline |
Definition at line 101 of file bigvector.h.
Referenced by cvmfs::AddToDirListing().
|
inline |
Definition at line 71 of file bigvector.h.
Referenced by FuseInvalidator::MainInvalidator().
|
inlineprivate |
Definition at line 139 of file bigvector.h.
Referenced by BigVector< uint64_t >::BigVector(), and BigVector< uint64_t >::operator=().
|
inlineprivate |
Definition at line 119 of file bigvector.h.
Referenced by BigVector< uint64_t >::Clear(), BigVector< uint64_t >::operator=(), and BigVector< uint64_t >::~BigVector().
|
inline |
Definition at line 82 of file bigvector.h.
Referenced by cvmfs::AddToDirListing(), and BigVector< uint64_t >::PushBack().
|
inlineprivate |
Definition at line 126 of file bigvector.h.
Referenced by BigVector< uint64_t >::Dealloc(), and BigVector< uint64_t >::DoubleCapacity().
|
inline |
Definition at line 67 of file bigvector.h.
Referenced by catalog::WritableCatalogManager::AddHardlinkGroup(), cvmfs::cvmfs_open(), LibContext::GetExtAttr(), upload::SpoolerResult::IsChunked(), catalog::Catalog::ListMd5PathChunks(), ChunkListMagicXattr::PrepareValueFenced(), ChunksMagicXattr::PrepareValueFenced(), receiver::CatalogMergeTool< RwCatalogMgr, RoCatalogMgr >::ReportAddition(), and receiver::CatalogMergeTool< RwCatalogMgr, RoCatalogMgr >::ReportModification().
|
inline |
Definition at line 35 of file bigvector.h.
|
inline |
Definition at line 60 of file bigvector.h.
Referenced by glue::StringHeap::AddBin(), publish::SyncItem::CheckGraft(), catalog::Catalog::ListingMd5PathStat(), catalog::Catalog::ListMd5PathChunks(), FuseInvalidator::MainInvalidator(), compat::chunk_tables::Migrate(), compat::chunk_tables_v2::Migrate(), and FileItem::RegisterChunk().
|
inline |
Definition at line 95 of file bigvector.h.
Referenced by cvmfs::AddToDirListing().
|
inline |
Definition at line 76 of file bigvector.h.
Referenced by cvmfs::AddToDirListing().
|
inline |
Definition at line 100 of file bigvector.h.
Referenced by catalog::WritableCatalogManager::AddChunkedFile(), catalog::WritableCatalogManager::AddHardlinkGroup(), glue::StringHeap::AddString(), cvmfs::AddToDirListing(), cvmfs::cvmfs_opendir(), swissknife::CommandCheck::Find(), BigVector< uint64_t >::FreeBuffer(), LibContext::GetExtAttr(), FileItem::GetNumChunks(), glue::StringHeap::GetSizeAlloc(), LibContext::ListDirectory(), LibContext::ListDirectoryStat(), FuseInvalidator::MainInvalidator(), compat::chunk_tables::Migrate(), compat::chunk_tables_v2::Migrate(), catalog::WritableCatalog::MoveFileChunksToNested(), cvmfs::Pin(), LibContext::Pread(), ChunkListMagicXattr::PrepareValueFenced(), ChunksMagicXattr::PrepareValueFenced(), publish::SyncMediator::PublishFilesCallback(), swissknife::CommandMigrate::UploadCallback(), glue::StringHeap::~StringHeap(), and compat::inode_tracker_v3::StringHeap::~StringHeap().
|
private |
Definition at line 148 of file bigvector.h.
Referenced by BigVector< uint64_t >::Alloc(), BigVector< uint64_t >::At(), BigVector< uint64_t >::AtPtr(), BigVector< uint64_t >::CopyFrom(), BigVector< uint64_t >::Dealloc(), BigVector< uint64_t >::DoubleCapacity(), BigVector< uint64_t >::PushBack(), and BigVector< uint64_t >::ShareBuffer().
|
private |
Definition at line 150 of file bigvector.h.
Referenced by BigVector< uint64_t >::Alloc(), BigVector< uint64_t >::capacity(), BigVector< uint64_t >::CopyFrom(), BigVector< uint64_t >::Dealloc(), BigVector< uint64_t >::DoubleCapacity(), BigVector< uint64_t >::PushBack(), and BigVector< uint64_t >::SetSize().
|
staticprivate |
Definition at line 105 of file bigvector.h.
Referenced by BigVector< uint64_t >::Alloc().
|
staticprivate |
Definition at line 104 of file bigvector.h.
Referenced by BigVector< uint64_t >::BigVector(), and BigVector< uint64_t >::Clear().
|
private |
Definition at line 151 of file bigvector.h.
Referenced by BigVector< uint64_t >::Alloc(), BigVector< uint64_t >::Dealloc(), BigVector< uint64_t >::DoubleCapacity(), and BigVector< uint64_t >::ShareBuffer().
|
private |
Definition at line 152 of file bigvector.h.
Referenced by BigVector< uint64_t >::BigVector(), BigVector< uint64_t >::CopyFrom(), BigVector< uint64_t >::operator=(), BigVector< uint64_t >::ShareBuffer(), and BigVector< uint64_t >::~BigVector().
|
private |
Definition at line 149 of file bigvector.h.
Referenced by BigVector< uint64_t >::At(), BigVector< uint64_t >::AtPtr(), BigVector< uint64_t >::BigVector(), BigVector< uint64_t >::CopyFrom(), BigVector< uint64_t >::Dealloc(), BigVector< uint64_t >::DoubleCapacity(), BigVector< uint64_t >::IsEmpty(), BigVector< uint64_t >::PushBack(), BigVector< uint64_t >::SetSize(), and BigVector< uint64_t >::size().