|
XRootD
|
#include <XrdPfcStableChunkVector.hh>
Inheritance diagram for XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >:
Collaboration diagram for XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >:Public Member Functions | |
| StableChunkVector () | |
| int | add () |
| Append a default-constructed T; return its index, or -1 if full. More... | |
| std::size_t | capacity () const |
| bool | full () const |
| T & | operator[] (std::size_t i) |
| const T & | operator[] (std::size_t i) const |
| std::size_t | size () const |
Static Public Attributes | |
| static constexpr std::size_t | s_capacity = std::size_t(MaxChunks) * s_chunk_size |
| static constexpr std::size_t | s_chunk_mask = s_chunk_size - 1 |
| static constexpr std::size_t | s_chunk_size = std::size_t(1) << InnerShift |
Append-only container whose element addresses never change: an outer vector reserved once to MaxChunks, of chunks reserved to 2^InnerShift and never grown. operator[] needs no lock, provided the index reached the reader through a release/acquire, as a queue under a mutex provides. The price is a hard capacity: add() returns -1 when full.
Definition at line 21 of file XrdPfcStableChunkVector.hh.
|
inline |
Definition at line 32 of file XrdPfcStableChunkVector.hh.
|
inline |
Append a default-constructed T; return its index, or -1 if full.
Definition at line 42 of file XrdPfcStableChunkVector.hh.
References XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::full(), and XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::s_chunk_size.
Referenced by XrdPfc::StableChunkPool< T, InnerShift, MaxChunks >::acquire().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Definition at line 35 of file XrdPfcStableChunkVector.hh.
References XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::s_capacity.
|
inline |
Definition at line 36 of file XrdPfcStableChunkVector.hh.
References XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::s_capacity.
Referenced by XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::add().
Here is the caller graph for this function:
|
inline |
Definition at line 38 of file XrdPfcStableChunkVector.hh.
References XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::s_chunk_mask.
|
inline |
Definition at line 39 of file XrdPfcStableChunkVector.hh.
References XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::s_chunk_mask.
|
inline |
Definition at line 34 of file XrdPfcStableChunkVector.hh.
Referenced by XrdPfc::StableChunkPool< T, InnerShift, MaxChunks >::n_in_use().
Here is the caller graph for this function:
|
staticconstexpr |
Definition at line 26 of file XrdPfcStableChunkVector.hh.
Referenced by XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::capacity(), and XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::full().
|
staticconstexpr |
Definition at line 25 of file XrdPfcStableChunkVector.hh.
Referenced by XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::operator[]().
|
staticconstexpr |
Definition at line 24 of file XrdPfcStableChunkVector.hh.
Referenced by XrdPfc::StableChunkVector< T, InnerShift, MaxChunks >::add().