20 #ifndef __TLM_CORE_1_REQ_RSP_CHANNELS_FIFO_CIRCULAR_BUFFER_HH__ 21 #define __TLM_CORE_1_REQ_RSP_CHANNELS_FIFO_CIRCULAR_BUFFER_HH__ 39 void write(
const T &);
92 std::cout <<
"Buffer debug" << std::endl;
93 std::cout <<
"Size : " <<
size() << std::endl;
94 std::cout <<
"Free/Used " <<
free() <<
"/" <<
used() << std::endl;
95 std::cout <<
"Indices : r/w = " <<
m_ri <<
"/" <<
m_wi << std::endl;
98 std::cout <<
"empty" << std::endl;
102 std::cout <<
"full" << std::endl;
105 std::cout <<
"Data : " << std::endl;
106 for (
int i = 0;
i <
used();
i++) {
111 template <
typename T>
117 template <
typename T>
121 for (
int i = 0;
i <
used();
i++) {
128 template <
typename T>
135 template <
typename T>
142 for (i = 0; i < size && i <
used(); i++) {
159 template <
typename T>
173 template <
typename T>
185 template <
typename T>
193 template <
typename T>
202 template <
typename T>
211 template <
typename T>
215 return new unsigned char [size *
sizeof(T)];
218 template <
typename T>
222 delete []
static_cast<unsigned char *
>(buf);
226 template <
typename T>
230 T *
p =
static_cast<T *
>(buf) + n;
234 template <
typename T>
238 T *
p =
static_cast<T *
>(buf) + n;
242 template <
typename T>
246 T *
p =
static_cast<T *
>(buf) + n;
const T & read_data() const
void buf_write(void *buf, int n, const T &t)
circular_buffer< T > & operator=(const circular_buffer< T > &)
void increment_read_pos(int i=1)
void increment_write_pos(int i=1)
const T & peek_data(int i) const
void buf_free(void *&buf)
T & buf_read(void *buf, int n) const
void buf_clear(void *buf, int n)
circular_buffer(int size=0)
void * buf_alloc(int size)