Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef GWENHYWFAR_SYNCIO_H
00027 #define GWENHYWFAR_SYNCIO_H
00028
00029 #include <gwenhywfar/gwenhywfarapi.h>
00030 #include <gwenhywfar/inherit.h>
00031 #include <gwenhywfar/list1.h>
00032 #include <gwenhywfar/stringlist.h>
00033
00034
00035 #ifdef __cplusplus
00036 extern "C" {
00037 #endif
00038
00039
00040
00041 typedef struct GWEN_SYNCIO GWEN_SYNCIO;
00042 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_SYNCIO, GWENHYWFAR_API)
00043 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_SYNCIO, GWEN_SyncIo, GWENHYWFAR_API)
00044
00045
00046 typedef enum {
00047 GWEN_SyncIo_Status_Unknown=-1,
00048 GWEN_SyncIo_Status_Unconnected=0,
00049 GWEN_SyncIo_Status_Disconnected,
00050 GWEN_SyncIo_Status_Connected,
00051 GWEN_SyncIo_Status_Disabled
00052 } GWEN_SYNCIO_STATUS;
00053
00054
00055
00056 #define GWEN_SYNCIO_FLAGS_TRANSPARENT 0x80000000
00057 #define GWEN_SYNCIO_FLAGS_DONTCLOSE 0x40000000
00058 #define GWEN_SYNCIO_FLAGS_PASSIVE 0x20000000
00059 #define GWEN_SYNCIO_FLAGS_PACKET_END 0x10000000
00060 #define GWEN_SYNCIO_FLAGS_DOSMODE 0x08000000
00061
00062
00063
00064
00065
00066 GWENHYWFAR_API
00067 GWEN_SYNCIO *GWEN_SyncIo_new(const char *typeName, GWEN_SYNCIO *baseIo);
00068
00069 GWENHYWFAR_API
00070 void GWEN_SyncIo_Attach(GWEN_SYNCIO *sio);
00071
00072 GWENHYWFAR_API
00073 void GWEN_SyncIo_free(GWEN_SYNCIO *sio);
00074
00075
00076 GWENHYWFAR_API
00077 int GWEN_SyncIo_Connect(GWEN_SYNCIO *sio);
00078
00079 GWENHYWFAR_API
00080 int GWEN_SyncIo_Disconnect(GWEN_SYNCIO *sio);
00081
00082 GWENHYWFAR_API
00083 int GWEN_SyncIo_Flush(GWEN_SYNCIO *sio);
00084
00085
00086 GWENHYWFAR_API
00087 int GWEN_SyncIo_Read(GWEN_SYNCIO *sio,
00088 uint8_t *buffer,
00089 uint32_t size);
00090
00091
00092
00093 GWENHYWFAR_API
00094 int GWEN_SyncIo_Write(GWEN_SYNCIO *sio,
00095 const uint8_t *buffer,
00096 uint32_t size);
00097
00098 GWENHYWFAR_API
00099 uint32_t GWEN_SyncIo_GetFlags(const GWEN_SYNCIO *sio);
00100
00101 GWENHYWFAR_API
00102 void GWEN_SyncIo_SetFlags(GWEN_SYNCIO *sio, uint32_t fl);
00103
00104 GWENHYWFAR_API
00105 void GWEN_SyncIo_AddFlags(GWEN_SYNCIO *sio, uint32_t fl);
00106
00107 GWENHYWFAR_API
00108 void GWEN_SyncIo_SubFlags(GWEN_SYNCIO *sio, uint32_t fl);
00109
00110
00111 GWENHYWFAR_API
00112 GWEN_SYNCIO_STATUS GWEN_SyncIo_GetStatus(const GWEN_SYNCIO *sio);
00113
00114 GWENHYWFAR_API
00115 void GWEN_SyncIo_SetStatus(GWEN_SYNCIO *sio, GWEN_SYNCIO_STATUS st);
00116
00117
00118 GWENHYWFAR_API
00119 const char *GWEN_SyncIo_GetTypeName(const GWEN_SYNCIO *sio);
00120
00121
00122 GWENHYWFAR_API
00123 GWEN_SYNCIO *GWEN_SyncIo_GetBaseIo(const GWEN_SYNCIO *sio);
00124
00125 GWENHYWFAR_API
00126 GWEN_SYNCIO *GWEN_SyncIo_GetBaseIoByTypeName(const GWEN_SYNCIO *sio, const char *typeName);
00127
00128
00129
00130 GWENHYWFAR_API
00131 int GWEN_SyncIo_WriteForced(GWEN_SYNCIO *sio,
00132 const uint8_t *buffer,
00133 uint32_t size);
00134
00135
00136 GWENHYWFAR_API
00137 int GWEN_SyncIo_ReadForced(GWEN_SYNCIO *sio,
00138 uint8_t *buffer,
00139 uint32_t size);
00140
00141
00142
00147 GWENHYWFAR_API
00148 int GWEN_SyncIo_WriteString(GWEN_SYNCIO *sio, const char *s);
00149
00150 GWENHYWFAR_API
00151 int GWEN_SyncIo_WriteLine(GWEN_SYNCIO *sio, const char *s);
00152
00153 GWENHYWFAR_API
00154 int GWEN_SyncIo_WriteChar(GWEN_SYNCIO *sio, char s);
00155
00156
00157 GWENHYWFAR_API
00158 int GWEN_SyncIo_Helper_ReadFileToStringList(const char *fname,
00159 int maxLines,
00160 GWEN_STRINGLIST *sl);
00161
00162
00163
00164
00169 typedef GWENHYWFAR_CB int (*GWEN_SYNCIO_CONNECT_FN)(GWEN_SYNCIO *sio);
00170 typedef GWENHYWFAR_CB int (*GWEN_SYNCIO_DISCONNECT_FN)(GWEN_SYNCIO *sio);
00171 typedef GWENHYWFAR_CB int (*GWEN_SYNCIO_FLUSH_FN)(GWEN_SYNCIO *sio);
00172
00173
00174 typedef GWENHYWFAR_CB int (*GWEN_SYNCIO_READ_FN)(GWEN_SYNCIO *sio,
00175 uint8_t *buffer,
00176 uint32_t size);
00177
00178
00179
00180 typedef GWENHYWFAR_CB int (*GWEN_SYNCIO_WRITE_FN)(GWEN_SYNCIO *sio,
00181 const uint8_t *buffer,
00182 uint32_t size);
00191 GWENHYWFAR_API
00192 GWEN_SYNCIO_CONNECT_FN GWEN_SyncIo_SetConnectFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_CONNECT_FN fn);
00193
00194 GWENHYWFAR_API
00195 GWEN_SYNCIO_DISCONNECT_FN GWEN_SyncIo_SetDisconnectFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_DISCONNECT_FN fn);
00196
00197 GWENHYWFAR_API
00198 GWEN_SYNCIO_FLUSH_FN GWEN_SyncIo_SetFlushFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_FLUSH_FN fn);
00199
00200 GWENHYWFAR_API
00201 GWEN_SYNCIO_READ_FN GWEN_SyncIo_SetReadFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_READ_FN fn);
00202
00203 GWENHYWFAR_API
00204 GWEN_SYNCIO_WRITE_FN GWEN_SyncIo_SetWriteFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_WRITE_FN fn);
00208 #ifdef __cplusplus
00209 }
00210 #endif
00211
00212
00213
00214 #endif
00215
00216