iolayer.h File Reference

#include <gwenhywfar/list2.h>
#include <gwenhywfar/iorequest.h>
#include <gwenhywfar/buffer.h>

Go to the source code of this file.

Defines

Flags For IO Layers
You can set these flags using GWEN_Io_Layer_SetFlags() or GWEN_Io_Layer_AddFlags().

#define GWEN_IO_LAYER_FLAGS_DONTCLOSE   0x40000000
#define GWEN_IO_LAYER_FLAGS_PASSIVE   0x10000000
#define GWEN_IO_LAYER_FLAGS_PKG_BASED   0x20000000
#define GWEN_IO_LAYER_FLAGS_REGISTERED   0x80000000
#define GWEN_IO_LAYER_FLAGS_TAKEOVER   0x01000000

Typedefs

typedef struct GWEN_IO_LAYER GWEN_IO_LAYER

Enumerations

enum  GWEN_IO_LAYER_STATUS {
  GWEN_Io_Layer_StatusUnknown = -1, GWEN_Io_Layer_StatusUnconnected = 0, GWEN_Io_Layer_StatusConnecting, GWEN_Io_Layer_StatusConnected,
  GWEN_Io_Layer_StatusDisconnecting, GWEN_Io_Layer_StatusDisconnected, GWEN_Io_Layer_StatusListening, GWEN_Io_Layer_StatusDisabled
}
enum  GWEN_IO_LAYER_WORKRESULT { GWEN_Io_Layer_WorkResultError = -1, GWEN_Io_Layer_WorkResultOk = 0, GWEN_Io_Layer_WorkResultBlocking }

Functions

Informational Functions
GWENHYWFAR_API void GWEN_Io_Layer_AddFlags (GWEN_IO_LAYER *io, uint32_t f)
GWENHYWFAR_API void GWEN_Io_Layer_ClearIncomingLayers (GWEN_IO_LAYER *io)
GWENHYWFAR_API GWEN_IO_LAYERGWEN_Io_Layer_FindBaseLayerByType (GWEN_IO_LAYER *io, const char *tname)
GWENHYWFAR_API GWEN_IO_LAYERGWEN_Io_Layer_GetBaseLayer (GWEN_IO_LAYER *io)
GWENHYWFAR_API uint32_t GWEN_Io_Layer_GetFlags (const GWEN_IO_LAYER *io)
GWENHYWFAR_API GWEN_IO_LAYERGWEN_Io_Layer_GetNextIncomingLayer (GWEN_IO_LAYER *io)
GWENHYWFAR_API GWEN_IO_LAYER_STATUS GWEN_Io_Layer_GetStatus (const GWEN_IO_LAYER *io)
GWENHYWFAR_API void GWEN_Io_Layer_SetFlags (GWEN_IO_LAYER *io, uint32_t f)
GWENHYWFAR_API void GWEN_Io_Layer_SubFlags (GWEN_IO_LAYER *io, uint32_t f)
Request Handling
GWENHYWFAR_API int GWEN_Io_Layer_AddRequest (GWEN_IO_LAYER *io, GWEN_IO_REQUEST *r)
GWENHYWFAR_API int GWEN_Io_Layer_DelRequest (GWEN_IO_LAYER *io, GWEN_IO_REQUEST *r)
GWENHYWFAR_API int GWEN_Io_Layer_HasWaitingRequests (GWEN_IO_LAYER *io)
Object Management
GWENHYWFAR_API void GWEN_Io_Layer_Attach (GWEN_IO_LAYER *io)
GWENHYWFAR_API void GWEN_Io_Layer_free (GWEN_IO_LAYER *io)
Convenience Functions
Internally all IO layers work with IO requests. However, some users don't want to handle requests by themselves. Those users can use the functions of this group which internally again setup and dispatch IO requests.

GWENHYWFAR_API int GWEN_Io_Layer_Connect (GWEN_IO_LAYER *io, uint32_t flags, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_ConnectRecursively (GWEN_IO_LAYER *io, GWEN_IO_LAYER *stopAtLayer, uint32_t flags, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_Disconnect (GWEN_IO_LAYER *io, uint32_t flags, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_DisconnectRecursively (GWEN_IO_LAYER *io, GWEN_IO_LAYER *stopAtLayer, uint32_t flags, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_FlushRecursively (GWEN_IO_LAYER *io, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_Listen (GWEN_IO_LAYER *io)
GWENHYWFAR_API int GWEN_Io_Layer_ListenRecursively (GWEN_IO_LAYER *io, GWEN_IO_LAYER *stopAtLayer)
GWENHYWFAR_API int GWEN_Io_Layer_ReadBytes (GWEN_IO_LAYER *io, uint8_t *buffer, uint32_t size, uint32_t flags, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_ReadPacket (GWEN_IO_LAYER *io, uint8_t *buffer, uint32_t size, uint32_t flags, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_ReadPacketToBuffer (GWEN_IO_LAYER *io, GWEN_BUFFER *buf, uint32_t flags, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_ReadToBufferUntilEof (GWEN_IO_LAYER *io, GWEN_BUFFER *buf, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_WriteBytes (GWEN_IO_LAYER *io, const uint8_t *buffer, uint32_t size, uint32_t flags, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_WriteChar (GWEN_IO_LAYER *io, char c, uint32_t flags, uint32_t guiid, int msecs)
GWENHYWFAR_API int GWEN_Io_Layer_WriteString (GWEN_IO_LAYER *io, const char *buffer, uint32_t flags, uint32_t guiid, int msecs)


Generated on Thu Aug 20 13:54:40 2009 for gwenhywfar by  doxygen 1.5.9