Template Class DefaultEdgeIndexStorage

Class Documentation

template <typename SrcT, typename DestT, typename NeighborsStorageT = LocalSet<DestT>>
class DefaultEdgeIndexStorage

Public Types

template<>
using SrcAttributesT = EmptyAttr
template<>
using NeighborListStorageT = NeighborsStorageT
template<>
using EdgeListStorageT = LocalHashmap<SrcT, NeighborsStorageT, IDCmp<SrcT>, ElementInserter>

Public Functions

DefaultEdgeIndexStorage(const size_t numVertices)
DefaultEdgeIndexStorage(const size_t numVertices, const SrcAttributesT&)
template <typename ApplyFunT, typename... Args>
void ForEachAttributedVertexNeighbor(const SrcT &src, ApplyFunT &&function, Args... args)
template <typename ApplyFunT, typename... Args>
void AsyncForEachAttributedVertexNeighbor(rt::Handle &handle, const SrcT &src, ApplyFunT &&function, Args... args)
template <typename ApplyFunT, typename... Args>
void ForEachAttributedVertex(ApplyFunT &&function, Args... args)
template <typename ApplyFunT, typename... Args>
void AsyncForEachAttributedVertex(rt::Handle &handle, ApplyFunT &&function, Args... args)
SrcAttributesT *GetVertexAttributes(const SrcT &src)
bool GetVertexAttributes(const SrcT &src, SrcAttributesT *attr)
template <typename ApplyFunT, typename... Args>
void VertexAttributesApply(const SrcT &src, ApplyFunT &&function, Args... args)

Public Members

EdgeListStorageT edgeList_

Public Static Functions

template <typename ApplyFunT, typename... Args, std::size_t... is>
static void CallVertexAttributesApplyFun(DefaultEdgeIndexStorage<SrcT, DestT, NeighborListStorageT> *stPtr, const SrcT &key, ApplyFunT function, std::tuple<Args...> &args, std::index_sequence<is...>)

Public Static Attributes

constexpr size_t kEdgeListChunkSize_ = 3072 / sizeof(DestT)
struct ElementInserter

Public Functions

template<>
void operator()(NeighborsStorageT *const lhs, const NeighborsStorageT&)

Public Static Functions

template<>
static bool Insert(NeighborsStorageT *const lhs, const DestT value, bool)
template<>
static bool Insert(NeighborsStorageT *const lhs, const FlatEdgeList values, bool)
template<>
static bool Insert(NeighborsStorageT *const lhs, const LocalEdgeListChunk &chunk, bool)
struct FlatEdgeList

Public Members

template<>
const DestT *values
template<>
size_t numValues
template<>
bool overwrite
struct LocalEdgeListChunk

Public Functions

template<>
LocalEdgeListChunk(size_t _numDest, bool _ow, DestT *_dest)

Public Members

template<>
size_t numDest
template<>
size_t chunkSize
template<>
bool overwrite
template<>
std::array<DestT, kEdgeListChunkSize_> destinations