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>
52 GWEN_SYNCIO_BUFFERED *xio;
72 GWEN_SYNCIO_BUFFERED *xio;
74 xio=(GWEN_SYNCIO_BUFFERED*) p;
127 GWEN_SYNCIO_BUFFERED *xio;
136 if (xio->readBuffer==
NULL) {
144 uint32_t bytesInBuffer;
152 if (size>bytesInBuffer)
185 uint32_t bytesRead=0;
187 while(bytesRead==0) {
188 uint32_t bytesInBuffer;
190 uint32_t bytesSkipped=0;
193 if (bytesInBuffer==0) {
225 if (bytesInBuffer==0) {
233 while(bytesSkipped<bytesInBuffer && bytesRead<(size-1)) {
259 const uint8_t *buffer,
261 GWEN_SYNCIO_BUFFERED *xio;
379 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
void GWENHYWFAR_CB GWEN_SyncIo_Buffered_FreeData(void *bp, void *p)
#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 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)