souffle
2.0.2-371-g6315b36
|
#include <PiggyList.h>
Data Structures | |
class | iterator |
Public Member Functions | |
size_t | append (T element) |
iterator | begin () |
void | clear () |
Clear all elements from the PiggyList. More... | |
size_t | createNode () |
iterator | end () |
void | freeList () |
Free the arrays allocated within the linked list nodes. More... | |
T & | get (size_t index) const |
Retrieve a reference to the stored value at index. More... | |
T * | getBlock (size_t blocknum) const |
PiggyList & | operator= (const PiggyList &other)=delete |
copy assign ctor More... | |
PiggyList () | |
PiggyList (const PiggyList &other) | |
copy constructor More... | |
PiggyList (PiggyList &&other)=delete | |
move constructor More... | |
PiggyList (size_t initialbitsize) | |
size_t | size () const |
Well, returns the number of nodes exist within the list + number of nodes queued to be inserted The reason for this, is that there may be many nodes queued up that haven't had time to had containers created and updated. More... | |
~PiggyList () | |
Data Fields | |
size_t | allocsize = BLOCKSIZE |
const size_t | BLOCKBITS = 16ul |
std::array< T *, max_conts > | blockLookupTable = {} |
const size_t | BLOCKSIZE = (1ul << BLOCKBITS) |
std::atomic< size_t > | container_size = 0 |
std::atomic< size_t > | m_size = 0 |
std::atomic< size_t > | num_containers = 0 |
SpinLock | sl |
Static Public Attributes | |
static constexpr size_t | max_conts = 64 |
Definition at line 143 of file PiggyList.h.
|
inline |
Definition at line 145 of file PiggyList.h.
|
inline |
Definition at line 146 of file PiggyList.h.
|
inline |
|
delete |
move constructor
|
inline |
Definition at line 171 of file PiggyList.h.
|
inline |
|
inline |
Definition at line 295 of file PiggyList.h.
|
inline |
|
inline |
Definition at line 210 of file PiggyList.h.
|
inline |
Definition at line 298 of file PiggyList.h.
|
inline |
Free the arrays allocated within the linked list nodes.
Definition at line 320 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::clear(), and souffle::PiggyList< std::atomic< block_t > >::~PiggyList().
|
inline |
Retrieve a reference to the stored value at index.
index | position to search |
Definition at line 235 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::append(), souffle::EquivalenceRelation< Arity >::insert(), souffle::EquivalenceRelation< TupleType >::iterator::iterator(), souffle::PiggyList< T >::iterator::operator*(), and souffle::DisjointSet::size().
|
inline |
Definition at line 185 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::get().
|
delete |
copy assign ctor
|
inline |
Well, returns the number of nodes exist within the list + number of nodes queued to be inserted The reason for this, is that there may be many nodes queued up that haven't had time to had containers created and updated.
Definition at line 181 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::end(), souffle::EquivalenceRelation< Arity >::insert(), and souffle::EquivalenceRelation< TupleType >::iterator::iterator().
size_t souffle::PiggyList< T >::allocsize = BLOCKSIZE |
Definition at line 306 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::append(), souffle::PiggyList< std::atomic< block_t > >::clear(), and souffle::PiggyList< std::atomic< block_t > >::createNode().
const size_t souffle::PiggyList< T >::BLOCKBITS = 16ul |
Definition at line 301 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::get().
std::array<T*, max_conts> souffle::PiggyList< T >::blockLookupTable = {} |
Definition at line 312 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::append(), souffle::PiggyList< std::atomic< block_t > >::createNode(), souffle::PiggyList< std::atomic< block_t > >::freeList(), souffle::PiggyList< std::atomic< block_t > >::getBlock(), and souffle::PiggyList< std::atomic< block_t > >::PiggyList().
const size_t souffle::PiggyList< T >::BLOCKSIZE = (1ul << BLOCKBITS) |
Definition at line 302 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::clear(), souffle::PiggyList< std::atomic< block_t > >::get(), and souffle::PiggyList< std::atomic< block_t > >::PiggyList().
std::atomic<size_t> souffle::PiggyList< T >::container_size = 0 |
std::atomic<size_t> souffle::PiggyList< T >::m_size = 0 |
Definition at line 308 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::append(), souffle::PiggyList< std::atomic< block_t > >::clear(), souffle::PiggyList< std::atomic< block_t > >::createNode(), souffle::PiggyList< std::atomic< block_t > >::PiggyList(), and souffle::PiggyList< std::atomic< block_t > >::size().
|
staticconstexpr |
Definition at line 311 of file PiggyList.h.
std::atomic<size_t> souffle::PiggyList< T >::num_containers = 0 |
Definition at line 305 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::append(), souffle::PiggyList< std::atomic< block_t > >::clear(), souffle::PiggyList< std::atomic< block_t > >::createNode(), souffle::PiggyList< std::atomic< block_t > >::freeList(), and souffle::PiggyList< std::atomic< block_t > >::PiggyList().
|
mutable |
Definition at line 315 of file PiggyList.h.
Referenced by souffle::PiggyList< std::atomic< block_t > >::append(), souffle::PiggyList< std::atomic< block_t > >::createNode(), and souffle::PiggyList< std::atomic< block_t > >::freeList().