libgrape-lite
A C++ library for parallel graph processing
Public Member Functions | Private Types | Private Attributes | List of all members
grape::SyncBuffer< VERTEX_SET_T, T > Class Template Reference

SyncBuffer manages status on each vertex during the evaluation in auto parallization. More...

#include <sync_buffer.h>

Inheritance diagram for grape::SyncBuffer< VERTEX_SET_T, T >:
grape::ISyncBuffer

Public Member Functions

 SyncBuffer (VertexArray< VERTEX_SET_T, T > &data)
 
bool updated (size_t begin, size_t length) const override
 
void * data () override
 
const std::type_info & GetTypeId () const override
 
void Init (const VERTEX_SET_T &range, const T &value, const std::function< bool(T *, T &&)> &aggregator)
 
void SetValue (const vertex_t &v, const T &value)
 
T & GetValue (const vertex_t &v)
 
bool IsUpdated (const vertex_t &v)
 
void SetUpdated (const vertex_t &v)
 
void Reset (const vertex_t &v)
 
void Reset (const VERTEX_SET_T &range)
 
T & operator[] (const vertex_t &v)
 
const T & operator[] (const vertex_t &v) const
 
void Swap (SyncBuffer &rhs)
 
void Aggregate (const vertex_t v, T &&rhs)
 
- Public Member Functions inherited from grape::ISyncBuffer
template<typename T >
T * base ()
 

Private Types

using vertex_t = typename VERTEX_SET_T::vertex_t
 

Private Attributes

VertexArray< VERTEX_SET_T, T > internal_data_
 
VertexArray< VERTEX_SET_T, T > & data_
 
VertexArray< VERTEX_SET_T, bool > updated_
 
VERTEX_SET_T range_
 
std::function< bool(T *, T &&)> aggregator_
 

Detailed Description

template<typename VERTEX_SET_T, typename T>
class grape::SyncBuffer< VERTEX_SET_T, T >

SyncBuffer manages status on each vertex during the evaluation in auto parallization.

Template Parameters
VERTEX_SET_T
T