void CBufFIFO::front (vector<uint8> &buffer)
{
uint8 *tmpbuffer;
uint32 s;
buffer.clear ();
front (tmpbuffer, s);
buffer.resize (s);
CFastMem::memcpy (&(buffer[0]), tmpbuffer, s);
/* TTicks before = CTime::getPerformanceTime ();
uint8 *tail = _Tail;
buffer.clear ();
if (empty ())
{
nlwarning("Try to get the front of an empty fifo!");
return;
}
_Fronted++;
if (_Rewinder != NULL && tail == _Rewinder)
{
#if DEBUG_FIFO
nldebug("%p front rewind!", this);
#endif
// need to rewind
tail = _Buffer;
}
TFifoSize size = *(TFifoSize *)tail;
#if DEBUG_FIFO
nldebug("%p front(%d)", this, size);
#endif
tail += sizeof (TFifoSize);
buffer.resize (size);
CFastMem::memcpy (&(buffer[0]), tail, size);
// stat code
TTicks after = CTime::getPerformanceTime ();
_FrontedTime += after - before;
#if DEBUG_FIFO
display ();
#endif
*/}
void CBufFIFO::front (NLMISC::CMemStream &buffer)
{
uint8 *tmpbuffer;
uint32 s;
buffer.clear ();
front (tmpbuffer, s);
buffer.fill (tmpbuffer, s);
/*
TTicks before = CTime::getPerformanceTime ();
uint8 *tail = _Tail;
buffer.clear ();
if (empty ())
{
nlwarning("Try to get the front of an empty fifo!");
return;
}
_Fronted++;
if (_Rewinder != NULL && tail == _Rewinder)
{
#if DEBUG_FIFO
nldebug("%p front rewind!", this);
#endif
// need to rewind
tail = _Buffer;
}
TFifoSize size = *(TFifoSize *)tail;
#if DEBUG_FIFO
nldebug("%p front(%d)", this, size);
#endif
tail += sizeof (TFifoSize);
//buffer.resize (size);
//CFastMem::memcpy (&(buffer[0]), tail, size);
buffer.fill (tail, size);
// stat code
TTicks after = CTime::getPerformanceTime ();
_FrontedTime += after - before;
#if DEBUG_FIFO
display ();
#endif*/
}
void CBufFIFO::front (uint8 *&buffer, uint32 &s)
{
#if STAT_FIFO
TTicks before = CTime::getPerformanceTime ();
#endif
uint8 *tail = _Tail;
if (empty ())
{
nlwarning("BF: Try to get the front of an empty fifo!");
return;
}
_Fronted++;
if (_Rewinder != NULL && tail == _Rewinder)
{
#if DEBUG_FIFO
nldebug("%p front rewind!", this);
#endif
// need to rewind
tail = _Buffer;
}
s = *(TFifoSize *)tail;
#if DEBUG_FIFO
nldebug("%p front(%d)", this, s);
#endif
tail += sizeof (TFifoSize);
#if STAT_FIFO
// stat code
TTicks after = CTime::getPerformanceTime ();
_FrontedTime += after - before;
#endif
#if DEBUG_FIFO
display ();
#endif
buffer = tail;
}
{
uint8 *tmpbuffer;
uint32 s;
buffer.clear ();
front (tmpbuffer, s);
buffer.resize (s);
CFastMem::memcpy (&(buffer[0]), tmpbuffer, s);
/* TTicks before = CTime::getPerformanceTime ();
uint8 *tail = _Tail;
buffer.clear ();
if (empty ())
{
nlwarning("Try to get the front of an empty fifo!");
return;
}
_Fronted++;
if (_Rewinder != NULL && tail == _Rewinder)
{
#if DEBUG_FIFO
nldebug("%p front rewind!", this);
#endif
// need to rewind
tail = _Buffer;
}
TFifoSize size = *(TFifoSize *)tail;
#if DEBUG_FIFO
nldebug("%p front(%d)", this, size);
#endif
tail += sizeof (TFifoSize);
buffer.resize (size);
CFastMem::memcpy (&(buffer[0]), tail, size);
// stat code
TTicks after = CTime::getPerformanceTime ();
_FrontedTime += after - before;
#if DEBUG_FIFO
display ();
#endif
*/}
void CBufFIFO::front (NLMISC::CMemStream &buffer)
{
uint8 *tmpbuffer;
uint32 s;
buffer.clear ();
front (tmpbuffer, s);
buffer.fill (tmpbuffer, s);
/*
TTicks before = CTime::getPerformanceTime ();
uint8 *tail = _Tail;
buffer.clear ();
if (empty ())
{
nlwarning("Try to get the front of an empty fifo!");
return;
}
_Fronted++;
if (_Rewinder != NULL && tail == _Rewinder)
{
#if DEBUG_FIFO
nldebug("%p front rewind!", this);
#endif
// need to rewind
tail = _Buffer;
}
TFifoSize size = *(TFifoSize *)tail;
#if DEBUG_FIFO
nldebug("%p front(%d)", this, size);
#endif
tail += sizeof (TFifoSize);
//buffer.resize (size);
//CFastMem::memcpy (&(buffer[0]), tail, size);
buffer.fill (tail, size);
// stat code
TTicks after = CTime::getPerformanceTime ();
_FrontedTime += after - before;
#if DEBUG_FIFO
display ();
#endif*/
}
void CBufFIFO::front (uint8 *&buffer, uint32 &s)
{
#if STAT_FIFO
TTicks before = CTime::getPerformanceTime ();
#endif
uint8 *tail = _Tail;
if (empty ())
{
nlwarning("BF: Try to get the front of an empty fifo!");
return;
}
_Fronted++;
if (_Rewinder != NULL && tail == _Rewinder)
{
#if DEBUG_FIFO
nldebug("%p front rewind!", this);
#endif
// need to rewind
tail = _Buffer;
}
s = *(TFifoSize *)tail;
#if DEBUG_FIFO
nldebug("%p front(%d)", this, s);
#endif
tail += sizeof (TFifoSize);
#if STAT_FIFO
// stat code
TTicks after = CTime::getPerformanceTime ();
_FrontedTime += after - before;
#endif
#if DEBUG_FIFO
display ();
#endif
buffer = tail;
}