13#ifndef _NETSIM_LTENR_BUFFER_H_
14#define _NETSIM_LTENR_BUFFER_H_
22#define INFINITE_BUFFER 0xFFFFFFFFFFFFFFFF
25#pragma region LTENR_BufferPacket
38#pragma region LTENR_BUFFER_AND_MACROS
49#define LTENR_BUFFER_ISEMPTY(buffer) (buffer != NULL && buffer->headPacket == NULL)
50#define LTENR_BUFFER_HASPACKET(buffer) (buffer != NULL && buffer->headPacket != NULL)
81#define LTENR_BUFFER_NEWITERATOR(buffer) (_LTENR_BUFFER_NEWITERATOR_((buffer),__LINE__,__FILE__))
NetSim_PACKET * LTENR_BUFFER_HEADPACKET(ptrLTENR_BUFFER buffer, UINT64 *size, double *time, void **optional)
struct stru_LTENR_BufferPacket * ptrLTENR_BUFFEREDPACKET
NetSim_PACKET * LTENR_BUFFER_ITERATOR_NEXT(ptrLTENR_BUFFERITERATOR it)
bool LTENR_BUFFER_ADDPACKET(ptrLTENR_BUFFER buffer, NetSim_PACKET *packet, UINT64 size, double time, void *optional)
struct stru_LTENR_BufferPacket LTENR_BUFFEREDPACKET
void LTENR_BUFFER_DELETEITERATOR(ptrLTENR_BUFFERITERATOR *it)
ptrLTENR_BUFFERITERATOR _LTENR_BUFFER_NEWITERATOR_(ptrLTENR_BUFFER buffer, int line, char *file)
ptrLTENR_BUFFER LTENR_BUFFER_INIT(UINT64 maxSize)
NetSim_PACKET * LTENR_BUFFER_GETPACKET(ptrLTENR_BUFFER buffer, UINT64 *size, double *time, void **optional)
void * ptrLTENR_BUFFERITERATOR
bool LTENR_BUFFER_ADDPACKET_SORTED(ptrLTENR_BUFFER buffer, NetSim_PACKET *packet, UINT64 size, double time, void *optional, bool(*fnSort)(ptrLTENR_BUFFEREDPACKET currBuffered, ptrLTENR_BUFFEREDPACKET newBuffered))
void LTENR_BUFFER_ITERATOR_REMOVE(ptrLTENR_BUFFERITERATOR it)
struct stru_LTENR_BUFFER * ptrLTENR_BUFFER
void LTENR_BUFFER_DELETE(ptrLTENR_BUFFER buffer)
NetSim_PACKET * LTENR_BUFFER_ITERATOR_CURRENT(ptrLTENR_BUFFERITERATOR it)
struct stru_LTENR_BUFFER LTENR_BUFFER
ptrLTENR_BUFFEREDPACKET tailPacket
ptrLTENR_BUFFEREDPACKET headPacket
struct stru_LTENR_BufferPacket * next