29 #define DISABLE_DEBUGLOG 33 #include "syncio_buffered_p.h" 36 #include <gwenhywfar/misc.h> 37 #include <gwenhywfar/debug.h> 38 #include <gwenhywfar/gui.h> 53 GWEN_SYNCIO_BUFFERED *xio;
74 GWEN_SYNCIO_BUFFERED *xio;
76 xio=(GWEN_SYNCIO_BUFFERED *) p;
132 GWEN_SYNCIO_BUFFERED *xio;
141 if (xio->readBuffer==
NULL) {
149 uint32_t bytesInBuffer;
157 if (size>bytesInBuffer)
190 uint32_t bytesRead=0;
192 while (bytesRead==0) {
193 uint32_t bytesInBuffer;
195 uint32_t bytesSkipped=0;
198 if (bytesInBuffer==0) {
230 if (bytesInBuffer==0) {
238 while (bytesSkipped<bytesInBuffer && bytesRead<(size-1)) {
264 const uint8_t *buffer,
267 GWEN_SYNCIO_BUFFERED *xio;
387 while ((maxLines==-1) || (lineCount<maxLines)) {
int GWEN_SyncIo_WriteForced(GWEN_SYNCIO *sio, const uint8_t *buffer, uint32_t size)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
int GWEN_SyncIo_Connect(GWEN_SYNCIO *sio)
void GWEN_SyncIo_SubFlags(GWEN_SYNCIO *sio, uint32_t fl)
int GWEN_Buffer_AllocRoom(GWEN_BUFFER *bf, uint32_t size)
uint32_t GWEN_Buffer_GetMaxUnsegmentedWrite(GWEN_BUFFER *bf)
#define GWEN_ERROR_INVALID
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
int GWEN_SyncIo_Read(GWEN_SYNCIO *sio, uint8_t *buffer, uint32_t size)
const char * GWEN_RingBuffer_GetReadPointer(const GWEN_RINGBUFFER *rb)
uint32_t GWEN_RingBuffer_GetMaxUnsegmentedWrite(GWEN_RINGBUFFER *rb)
int GWEN_SyncIo_Buffered_ReadLineToBuffer(GWEN_SYNCIO *sio, GWEN_BUFFER *tbuf)
#define GWEN_SYNCIO_BUFFERED_TYPE
GWEN_SYNCIO_WRITE_FN GWEN_SyncIo_SetWriteFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_WRITE_FN fn)
#define GWEN_FREE_OBJECT(varname)
GWEN_SYNCIO_CONNECT_FN GWEN_SyncIo_SetConnectFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_CONNECT_FN fn)
#define GWEN_SYNCIO_FLAGS_TRANSPARENT
uint32_t GWEN_SyncIo_GetFlags(const GWEN_SYNCIO *sio)
int GWEN_RingBuffer_ReadBytes(GWEN_RINGBUFFER *rb, char *buffer, uint32_t *size)
int GWEN_Buffer_AdjustUsedBytes(GWEN_BUFFER *bf)
int GWEN_SyncIo_Buffered_ReadLinesToStringList(GWEN_SYNCIO *sio, int maxLines, GWEN_STRINGLIST *sl)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
GWEN_SYNCIO * GWEN_SyncIo_GetBaseIo(const GWEN_SYNCIO *sio)
char * GWEN_Buffer_GetPosPointer(const GWEN_BUFFER *bf)
char * GWEN_RingBuffer_GetWritePointer(const GWEN_RINGBUFFER *rb)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
int GWEN_Buffer_IncrementPos(GWEN_BUFFER *bf, uint32_t i)
#define GWEN_ERROR_INTERRUPTED
#define GWEN_NEW_OBJECT(typ, varname)
struct GWEN_SYNCIO GWEN_SYNCIO
GWEN_SYNCIO * GWEN_SyncIo_Buffered_new(GWEN_SYNCIO *baseIo)
int GWEN_StringList_AppendString(GWEN_STRINGLIST *sl, const char *s, int take, int checkDouble)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
void GWENHYWFAR_CB GWEN_SyncIo_Buffered_FreeData(GWEN_UNUSED void *bp, void *p)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
void GWEN_SyncIo_AddFlags(GWEN_SYNCIO *sio, uint32_t fl)
int GWENHYWFAR_CB GWEN_SyncIo_Buffered_Connect(GWEN_SYNCIO *sio)
#define DBG_ERROR(dbg_logger, format, args...)
uint32_t GWEN_RingBuffer_GetUsedBytes(const GWEN_RINGBUFFER *rb)
int GWEN_SyncIo_Disconnect(GWEN_SYNCIO *sio)
int GWENHYWFAR_CB GWEN_SyncIo_Buffered_Read(GWEN_SYNCIO *sio, uint8_t *buffer, uint32_t size)
GWEN_SYNCIO * GWEN_SyncIo_new(const char *typeName, GWEN_SYNCIO *baseIo)
void GWEN_RingBuffer_SkipBytesRead(GWEN_RINGBUFFER *rb, uint32_t psize)
void GWEN_RingBuffer_free(GWEN_RINGBUFFER *rb)
uint32_t GWEN_RingBuffer_GetMaxUnsegmentedRead(GWEN_RINGBUFFER *rb)
int GWENHYWFAR_CB GWEN_SyncIo_Buffered_Write(GWEN_SYNCIO *sio, const uint8_t *buffer, uint32_t size)
GWEN_SYNCIO_DISCONNECT_FN GWEN_SyncIo_SetDisconnectFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_DISCONNECT_FN fn)
#define DBG_INFO(dbg_logger, format, args...)
#define GWEN_SYNCIO_FLAGS_DOSMODE
GWEN_RINGBUFFER * GWEN_RingBuffer_new(unsigned int size)
int GWEN_SyncIo_Write(GWEN_SYNCIO *sio, const uint8_t *buffer, uint32_t size)
#define GWEN_SYNCIO_FLAGS_PACKET_END
#define GWEN_INHERIT(bt, t)
GWEN_SYNCIO_READ_FN GWEN_SyncIo_SetReadFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_READ_FN fn)
#define GWEN_ERROR_INTERNAL
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
void GWEN_RingBuffer_SkipBytesWrite(GWEN_RINGBUFFER *rb, uint32_t psize)
int GWENHYWFAR_CB GWEN_SyncIo_Buffered_Disconnect(GWEN_SYNCIO *sio)
#define GWEN_INHERIT_GETDATA(bt, t, element)