nmpp
Открытые члены | Поля данных
Шаблон класса C_RingBuffer< T >

Открытые члены

void Sleep (clock_t msec)
 
 C_RingBuffer (T *buffer, size_t count, t_bytecpy pushmemcpy, t_bytecpy popmemcpy)
 
bool Init (T *buffer, size_t count, t_bytecpy pushmemcpy, t_bytecpy popmemcpy)
 
__INLINE__ bool IsFull ()
 
__INLINE__ bool IsEmpty ()
 
__INLINE__ size_t PushAvail ()
 
__INLINE__ size_t PopAvail ()
 
T * Head ()
 
T * Tail ()
 
bool MoveHead (int numElements)
 
bool MoveTail (int numElements)
 
size_t Push (T *pSrcElements, size_t numElements, int ExitMode=EXIT_ON_COMPLETED)
 
size_t Push (T pSrcElement)
 
void PushRequest (T *pSrcElements, size_t numElements)
 
bool isPushCompleted ()
 
size_t Pop (T *pDstElements, size_t numElements, int ExitMode=EXIT_ON_COMPLETED)
 

Поля данных

T * data
 физический адрес кольцевого буфера входных данных
 
size_t size
 размер кольцевого буфера входных данных (в элементах; гарантируется что это степень двойки)
 
size_t head
 сколько элементов ОТ НАЧАЛА ПОТОКА код MASTER уже записал в буфер входных данных [заполняется MASTER]
 
size_t tail
 сколько элементов ОТ НАЧАЛА ПОТОКА код SLAVE уже прочитал (обработал) [заполняется SLAVE]
 
size_t * head_addr
 
size_t * tail_addr
 
size_t id
 
t_bytecpy push_memcpy
 
t_bytecpy pop_memcpy
 
memcpy_ptr dma_init
 
size_t(* dma_check )()
 
T * dma_ptr
 
size_t dma_left
 
size_t dma_size
 
unsigned timeout
 
unsigned time2sleep
 
int pad [16-3-5 *sizeof(memcpy_ptr)/sizeof(int)]
 резервные поля
 

Методы

◆ PushRequest()

template<class T >
void C_RingBuffer< T >::PushRequest ( T *  pSrcElements,
size_t  numElements 
)
inline

!!! Head or head ??


Объявления и описания членов класса находятся в файле: