00001 /*************************************************************************** 00002 copyright : (C) 2007 by Martin Preuss 00003 email : martin@libchipcard.de 00004 00005 *************************************************************************** 00006 * Please see toplevel file COPYING for license details * 00007 ***************************************************************************/ 00008 00009 00010 #ifndef GWEN_IOLAYER_CODEC_BE_H 00011 #define GWEN_IOLAYER_CODEC_BE_H 00012 00013 #include <gwenhywfar/iolayer.h> 00014 #include <gwenhywfar/ringbuffer.h> 00015 00016 00017 typedef int (*GWEN_IO_LAYER_CODE_ENCODE_FN)(GWEN_IO_LAYER *io, 00018 const uint8_t *pBuffer, 00019 uint32_t lBuffer); 00020 00021 typedef int (*GWEN_IO_LAYER_CODE_DECODE_FN)(GWEN_IO_LAYER *io, 00022 uint8_t *pBuffer, 00023 uint32_t lBuffer); 00024 00025 00026 GWENHYWFAR_API GWEN_IO_LAYER *GWEN_Io_LayerCodec_new(const char *typeName, GWEN_IO_LAYER *baseLayer); 00027 00028 GWENHYWFAR_API int GWEN_Io_LayerCodec_CheckWriteOut(const GWEN_IO_LAYER *io); 00029 00030 GWENHYWFAR_API GWEN_RINGBUFFER *GWEN_Io_LayerCodec_GetReadBuffer(const GWEN_IO_LAYER *io); 00031 GWENHYWFAR_API GWEN_RINGBUFFER *GWEN_Io_LayerCodec_GetWriteBuffer(const GWEN_IO_LAYER *io); 00032 00033 GWENHYWFAR_API int GWEN_Io_LayerCodec_EnsureReadOk(GWEN_IO_LAYER *io); 00034 00035 00036 GWENHYWFAR_API GWEN_IO_LAYER_CODE_ENCODE_FN GWEN_Io_LayerCodec_SetEncodeFn(GWEN_IO_LAYER *io, 00037 GWEN_IO_LAYER_CODE_ENCODE_FN f); 00038 00039 GWENHYWFAR_API GWEN_IO_LAYER_CODE_DECODE_FN GWEN_Io_LayerCodec_SetDecodeFn(GWEN_IO_LAYER *io, 00040 GWEN_IO_LAYER_CODE_DECODE_FN f); 00041 00042 00043 GWENHYWFAR_API void GWEN_Io_LayerCodec_AbortRequests(GWEN_IO_LAYER *io, int errorCode); 00044 GWENHYWFAR_API void GWEN_Io_LayerCodec_Reset(GWEN_IO_LAYER *io); 00045 00046 GWENHYWFAR_API uint32_t GWEN_Io_LayerCodec_GetCurrentGuiId(const GWEN_IO_LAYER *io); 00047 GWENHYWFAR_API void GWEN_Io_LayerCodec_SetCurrentGuiId(GWEN_IO_LAYER *io, uint32_t guiid); 00048 00049 #endif 00050 00051 00052 00053