SHM
Shared-memorybasedHandy-communicationManager
Public Member Functions | Static Public Member Functions | List of all members
irlab::shm::RingBuffer Class Reference

Class that is described ring-buffer used for shared memory. More...

#include <shm_base.hpp>

Public Member Functions

 RingBuffer (unsigned char *first_ptr, size_t size=0, int buffer_num=0)
 コンストラクタ More...
 
const uint64_t getTimestamp_us () const
 タイムスタンプ取得 More...
 
void setTimestamp_us (uint64_t input_time_us, int buffer_num)
 タイムスタンプ取得 More...
 
int getNewestBufferNum ()
 
int getOldestBufferNum ()
 
size_t getElementSize () const
 
unsigned char * getDataList ()
 
void signal ()
 
bool waitFor (uint64_t timeout_usec)
 トピックの更新待ち More...
 
bool isUpdated () const
 共有メモリの更新確認 More...
 
void setDataExpiryTime_us (uint64_t time_us)
 

Static Public Member Functions

static size_t getSize (size_t element_size, int buffer_num)
 

Detailed Description

Class that is described ring-buffer used for shared memory.

Definition at line 135 of file shm_base.hpp.

Constructor & Destructor Documentation

◆ RingBuffer()

irlab::shm::RingBuffer::RingBuffer ( unsigned char *  first_ptr,
size_t  size = 0,
int  buffer_num = 0 
)

コンストラクタ

Parameters
[in]共有メモリ名
Returns
なし

共有メモリへのアクセスを行う.

Definition at line 20 of file ring_buffer.cpp.

Member Function Documentation

◆ getTimestamp_us()

const uint64_t irlab::shm::RingBuffer::getTimestamp_us ( ) const

タイムスタンプ取得

Parameters
なし
Returns
なし

直近で読み込んだトピックのタイムスタンプを返す.

Definition at line 91 of file ring_buffer.cpp.

◆ isUpdated()

bool irlab::shm::RingBuffer::isUpdated ( ) const

共有メモリの更新確認

Parameters
なし
Returns
bool

直近で読み込んだタイムスタンプより新しいタイムスタンプが書き込まれたか確認する. 更新があった場合には真を、ない場合には偽を返す.

Definition at line 205 of file ring_buffer.cpp.

◆ setTimestamp_us()

void irlab::shm::RingBuffer::setTimestamp_us ( uint64_t  input_time_us,
int  buffer_num 
)

タイムスタンプ取得

Parameters
なし
Returns
なし

直近で読み込んだトピックのタイムスタンプを返す.

Definition at line 102 of file ring_buffer.cpp.

◆ waitFor()

bool irlab::shm::RingBuffer::waitFor ( uint64_t  timeout_usec)

トピックの更新待ち

Parameters
timeout_usec待ち時間[usec]
Returns
bool トピックが更新されたかどうか

待ち時間の間、トピックの更新を待ち続ける.更新された場合または待ち時間が経過した場合、関数を終了する.

Note
単純なループによる待ち方に比べて動作が軽量となるはずであるが、未確認

Definition at line 169 of file ring_buffer.cpp.


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