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)) {
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
int GWEN_Buffer_IncrementPos(GWEN_BUFFER *bf, uint32_t i)
uint32_t GWEN_Buffer_GetMaxUnsegmentedWrite(GWEN_BUFFER *bf)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
int GWEN_Buffer_AdjustUsedBytes(GWEN_BUFFER *bf)
char * GWEN_Buffer_GetPosPointer(const GWEN_BUFFER *bf)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
int GWEN_Buffer_AllocRoom(GWEN_BUFFER *bf, uint32_t size)
#define DBG_INFO(dbg_logger, format, args...)
#define DBG_ERROR(dbg_logger, format, args...)
#define GWEN_ERROR_INTERNAL
#define GWEN_ERROR_INVALID
#define GWEN_ERROR_INTERRUPTED
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
#define GWEN_INHERIT(bt, t)
#define GWEN_INHERIT_GETDATA(bt, t, element)
#define GWEN_FREE_OBJECT(varname)
#define GWEN_NEW_OBJECT(typ, varname)
void GWEN_RingBuffer_SkipBytesWrite(GWEN_RINGBUFFER *rb, uint32_t psize)
void GWEN_RingBuffer_SkipBytesRead(GWEN_RINGBUFFER *rb, uint32_t psize)
int GWEN_RingBuffer_ReadBytes(GWEN_RINGBUFFER *rb, char *buffer, uint32_t *size)
GWEN_RINGBUFFER * GWEN_RingBuffer_new(unsigned int size)
uint32_t GWEN_RingBuffer_GetMaxUnsegmentedRead(GWEN_RINGBUFFER *rb)
uint32_t GWEN_RingBuffer_GetUsedBytes(const GWEN_RINGBUFFER *rb)
void GWEN_RingBuffer_free(GWEN_RINGBUFFER *rb)
const char * GWEN_RingBuffer_GetReadPointer(const GWEN_RINGBUFFER *rb)
char * GWEN_RingBuffer_GetWritePointer(const GWEN_RINGBUFFER *rb)
uint32_t GWEN_RingBuffer_GetMaxUnsegmentedWrite(GWEN_RINGBUFFER *rb)
int GWEN_StringList_AppendString(GWEN_STRINGLIST *sl, const char *s, int take, int checkDouble)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
uint32_t GWEN_SyncIo_GetFlags(const GWEN_SYNCIO *sio)
int GWEN_SyncIo_Connect(GWEN_SYNCIO *sio)
void GWEN_SyncIo_AddFlags(GWEN_SYNCIO *sio, uint32_t fl)
GWEN_SYNCIO * GWEN_SyncIo_new(const char *typeName, GWEN_SYNCIO *baseIo)
int GWEN_SyncIo_Write(GWEN_SYNCIO *sio, const uint8_t *buffer, uint32_t size)
GWEN_SYNCIO_READ_FN GWEN_SyncIo_SetReadFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_READ_FN fn)
GWEN_SYNCIO * GWEN_SyncIo_GetBaseIo(const GWEN_SYNCIO *sio)
GWEN_SYNCIO_DISCONNECT_FN GWEN_SyncIo_SetDisconnectFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_DISCONNECT_FN fn)
void GWEN_SyncIo_SubFlags(GWEN_SYNCIO *sio, uint32_t fl)
GWEN_SYNCIO_WRITE_FN GWEN_SyncIo_SetWriteFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_WRITE_FN fn)
int GWEN_SyncIo_WriteForced(GWEN_SYNCIO *sio, const uint8_t *buffer, uint32_t size)
int GWEN_SyncIo_Read(GWEN_SYNCIO *sio, uint8_t *buffer, uint32_t size)
GWEN_SYNCIO_CONNECT_FN GWEN_SyncIo_SetConnectFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_CONNECT_FN fn)
int GWEN_SyncIo_Disconnect(GWEN_SYNCIO *sio)
#define GWEN_SYNCIO_FLAGS_DOSMODE
struct GWEN_SYNCIO GWEN_SYNCIO
#define GWEN_SYNCIO_FLAGS_TRANSPARENT
#define GWEN_SYNCIO_FLAGS_PACKET_END
int GWENHYWFAR_CB GWEN_SyncIo_Buffered_Connect(GWEN_SYNCIO *sio)
int GWENHYWFAR_CB GWEN_SyncIo_Buffered_Write(GWEN_SYNCIO *sio, const uint8_t *buffer, uint32_t size)
int GWEN_SyncIo_Buffered_ReadLineToBuffer(GWEN_SYNCIO *sio, GWEN_BUFFER *tbuf)
int GWENHYWFAR_CB GWEN_SyncIo_Buffered_Disconnect(GWEN_SYNCIO *sio)
void GWENHYWFAR_CB GWEN_SyncIo_Buffered_FreeData(GWEN_UNUSED void *bp, void *p)
GWEN_SYNCIO * GWEN_SyncIo_Buffered_new(GWEN_SYNCIO *baseIo)
int GWEN_SyncIo_Buffered_ReadLinesToStringList(GWEN_SYNCIO *sio, int maxLines, GWEN_STRINGLIST *sl)
int GWENHYWFAR_CB GWEN_SyncIo_Buffered_Read(GWEN_SYNCIO *sio, uint8_t *buffer, uint32_t size)
#define GWEN_SYNCIO_BUFFERED_TYPE