OSVR-Core
Public Types | Public Member Functions | Static Public Member Functions | List of all members
osvr::common::detail::Bookkeeping Class Reference
Inheritance diagram for osvr::common::detail::Bookkeeping:
osvr::common::ipc::ObjectWithMutex

Public Types

typedef IPCRingBuffer::sequence_type sequence_type
 
typedef uint16_t raw_index_type
 

Public Member Functions

template<typename ManagedMemory >
 Bookkeeping (ManagedMemory &shm, IPCRingBuffer::Options const &opts)
 
template<typename ManagedMemory >
void freeBufs (ManagedMemory &shm)
 
raw_index_type getCapacity () const
 Get number of elements.
 
uint32_t getBufferLength () const
 Get capacity of elements.
 
template<typename LockType >
ElementDatagetByRawIndex (raw_index_type index, LockType &lock)
 
template<typename LockType >
ElementDatagetBySequenceNumber (sequence_type num, LockType &lock)
 
template<typename LockType >
bool empty (LockType &lock) const
 
template<typename LockType >
sequence_type backSequenceNumber (LockType &lock)
 
template<typename LockType >
ElementDataback (LockType &lock)
 
IPCPutResultPtr produceElement ()
 
- Public Member Functions inherited from osvr::common::ipc::ObjectWithMutex
sharable_lock_type getSharableLock ()
 
exclusive_lock_type getExclusiveLock ()
 
mutex_typegetMutex ()
 
void verifyWriterLock (exclusive_lock_type &lock) const
 Checks to make sure we have a writer (exclusive) lock.
 
template<typename LockType >
void verifyReaderLock (LockType &lock) const
 Checks to make sure we at least have a reader (sharable) lock. More...
 

Static Public Member Functions

template<typename ManagedMemory >
static Bookkeepingfind (ManagedMemory &shm)
 
template<typename ManagedMemory >
static Bookkeepingconstruct (ManagedMemory &shm, IPCRingBuffer::Options const &opts)
 
template<typename ManagedMemory >
static void destroy (ManagedMemory &shm)
 

Member Function Documentation

§ produceElement()

IPCPutResultPtr osvr::common::detail::Bookkeeping::produceElement ( )
inline

shared memory nullptr filled in by outer class


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