Flex  0.17.9
Public Member Functions | Private Attributes | List of all members
gs::VersionManager Class Reference

#include <version_manager.h>

Public Member Functions

 VersionManager ()
 
 ~VersionManager ()
 
void init_ts (uint32_t ts, int thread_num)
 
void clear ()
 
uint32_t acquire_read_timestamp ()
 
void release_read_timestamp ()
 
uint32_t acquire_insert_timestamp ()
 
void release_insert_timestamp (uint32_t ts)
 
uint32_t acquire_update_timestamp ()
 
void release_update_timestamp (uint32_t ts)
 
bool revert_update_timestamp (uint32_t ts)
 

Private Attributes

std::atomic< uint32_t > write_ts_ {1}
 
std::atomic< uint32_t > read_ts_ {0}
 
std::atomic< int > pending_reqs_ {0}
 
std::atomic< int > pending_update_reqs_ {0}
 
grape::Bitset buf_
 
grape::SpinLock lock_
 
int thread_num_
 

Constructor & Destructor Documentation

◆ VersionManager()

gs::VersionManager::VersionManager ( )

◆ ~VersionManager()

gs::VersionManager::~VersionManager ( )

Member Function Documentation

◆ acquire_insert_timestamp()

uint32_t gs::VersionManager::acquire_insert_timestamp ( )

◆ acquire_read_timestamp()

uint32_t gs::VersionManager::acquire_read_timestamp ( )

◆ acquire_update_timestamp()

uint32_t gs::VersionManager::acquire_update_timestamp ( )

◆ clear()

void gs::VersionManager::clear ( )

◆ init_ts()

void gs::VersionManager::init_ts ( uint32_t  ts,
int  thread_num 
)

◆ release_insert_timestamp()

void gs::VersionManager::release_insert_timestamp ( uint32_t  ts)

◆ release_read_timestamp()

void gs::VersionManager::release_read_timestamp ( )

◆ release_update_timestamp()

void gs::VersionManager::release_update_timestamp ( uint32_t  ts)

◆ revert_update_timestamp()

bool gs::VersionManager::revert_update_timestamp ( uint32_t  ts)

Member Data Documentation

◆ buf_

grape::Bitset gs::VersionManager::buf_
private

◆ lock_

grape::SpinLock gs::VersionManager::lock_
private

◆ pending_reqs_

std::atomic<int> gs::VersionManager::pending_reqs_ {0}
private

◆ pending_update_reqs_

std::atomic<int> gs::VersionManager::pending_update_reqs_ {0}
private

◆ read_ts_

std::atomic<uint32_t> gs::VersionManager::read_ts_ {0}
private

◆ thread_num_

int gs::VersionManager::thread_num_
private

◆ write_ts_

std::atomic<uint32_t> gs::VersionManager::write_ts_ {1}
private

The documentation for this class was generated from the following files: