Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

inetsocket.h

Go to the documentation of this file.
00001 /*************************************************************************** 00002 $RCSfile: inetsocket.h,v $ 00003 ------------------- 00004 cvs : $Id: inetsocket.h,v 1.3 2003/04/21 23:58:35 aquamaniac Exp $ 00005 begin : Tue Oct 02 2002 00006 copyright : (C) 2002 by Martin Preuss 00007 email : martin@libchipcard.de 00008 00009 *************************************************************************** 00010 * * 00011 * This library is free software; you can redistribute it and/or * 00012 * modify it under the terms of the GNU Lesser General Public * 00013 * License as published by the Free Software Foundation; either * 00014 * version 2.1 of the License, or (at your option) any later version. * 00015 * * 00016 * This library is distributed in the hope that it will be useful, * 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00019 * Lesser General Public License for more details. * 00020 * * 00021 * You should have received a copy of the GNU Lesser General Public * 00022 * License along with this library; if not, write to the Free Software * 00023 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * 00024 * MA 02111-1307 USA * 00025 * * 00026 ***************************************************************************/ 00027 00033 #ifndef MOD_SOCKET_H 00034 #define MOD_SOCKET_H 00035 00036 #include <windows.h> 00037 #include "chameleon/error.h" 00038 #include "chameleon/inetaddr.h" 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00044 00052 #define SOCKET_ERROR_TYPE "Socket" 00053 #define SOCKET_ERROR_BAD_SOCKETTYPE (-1) 00054 #define SOCKET_ERROR_NOT_OPEN (-2) 00055 #define SOCKET_ERROR_TIMEOUT (-3) 00056 #define SOCKET_ERROR_IN_PROGRESS (-4) 00057 #define SOCKET_ERROR_STARTUP (-5) 00058 #define SOCKET_ERROR_INTERRUPTED (-6) 00059 #define SOCKET_ERROR_UNSUPPORTED (-7) 00060 00061 00065 CHIPCARD_API typedef enum { 00066 SocketTypeTCP=1, 00067 SocketTypeUDP, 00068 SocketTypeRAW, 00069 SocketTypeUnix 00070 } SOCKETTYPE; 00071 00072 00073 CHIPCARD_API struct SOCKETSTRUCT { 00074 int socket; 00075 int type; 00076 }; 00077 00078 CHIPCARD_API typedef struct SOCKETSTRUCT* SOCKETPTR; 00079 00080 CHIPCARD_API struct SOCKETSETSTRUCT { 00081 fd_set set; 00082 int highest; 00083 }; 00084 00085 CHIPCARD_API typedef struct SOCKETSETSTRUCT SOCKETSET; 00086 CHIPCARD_API typedef SOCKETSET* SOCKETSETPTR; 00087 00088 00089 CHIPCARD_API ERRORCODE Socket_ModuleInit(); 00090 CHIPCARD_API ERRORCODE Socket_ModuleFini(); 00091 00107 CHIPCARD_API ERRORCODE SocketSet_Create(SOCKETSETPTR ssp); 00108 CHIPCARD_API ERRORCODE SocketSet_Destroy(SOCKETSETPTR ssp); 00109 CHIPCARD_API ERRORCODE SocketSet_Clear(SOCKETSETPTR ssp); 00111 00119 CHIPCARD_API ERRORCODE SocketSet_AddSocket(SOCKETSETPTR ssp, 00120 const struct SOCKETSTRUCT *sp); 00121 CHIPCARD_API ERRORCODE SocketSet_RemoveSocket(SOCKETSETPTR ssp, 00122 const struct SOCKETSTRUCT *sp); 00123 CHIPCARD_API int SocketSet_HasSocket(SOCKETSETPTR ssp, 00124 const struct SOCKETSTRUCT *sp); 00126 //end of group socketset 00128 00129 00141 CHIPCARD_API SOCKETPTR Socket_new(); 00142 CHIPCARD_API void Socket_free(SOCKETPTR sp); 00143 CHIPCARD_API ERRORCODE Socket_Open(SOCKETPTR sp, SOCKETTYPE socketType); 00144 CHIPCARD_API ERRORCODE Socket_Close(SOCKETPTR sp); 00146 00153 CHIPCARD_API ERRORCODE Socket_Connect(SOCKETPTR sp, const INETADDRESS *addr); 00154 CHIPCARD_API ERRORCODE Socket_Bind(SOCKETPTR sp, const INETADDRESS *addr); 00155 CHIPCARD_API ERRORCODE Socket_Listen(SOCKETPTR sp, int backlog); 00156 CHIPCARD_API ERRORCODE Socket_Accept(SOCKETPTR sp, INETADDRESSPTR addr, SOCKETPTR newsock); 00158 00166 CHIPCARD_API ERRORCODE Socket_GetPeerAddr(SOCKETPTR sp, INETADDRESSPTR addr); 00167 00168 CHIPCARD_API ERRORCODE Socket_Select( SOCKETSETPTR rs, 00169 SOCKETSETPTR ws, 00170 SOCKETSETPTR xs, 00171 int timeout); 00172 CHIPCARD_API ERRORCODE Socket_WaitForRead(SOCKETPTR sp,int timeout); 00173 CHIPCARD_API ERRORCODE Socket_WaitForWrite(SOCKETPTR sp,int timeout); 00175 00183 CHIPCARD_API ERRORCODE Socket_Read(SOCKETPTR sp, 00184 char *buffer, 00185 int *bsize); 00186 CHIPCARD_API ERRORCODE Socket_Write(SOCKETPTR sp, 00187 const char *buffer, 00188 int *bsize); 00189 CHIPCARD_API ERRORCODE Socket_ReadFrom(SOCKETPTR sp, 00190 INETADDRESSPTR addr, 00191 char *buffer, 00192 int *bsize); 00193 CHIPCARD_API ERRORCODE Socket_WriteTo(SOCKETPTR sp, 00194 const INETADDRESS *addr, 00195 const char *buffer, 00196 int *bsize); 00198 00205 CHIPCARD_API ERRORCODE Socket_SetBlocking(SOCKETPTR sp, 00206 int fl); 00207 CHIPCARD_API ERRORCODE Socket_SetBroadcast(SOCKETPTR sp, 00208 int fl); 00209 CHIPCARD_API ERRORCODE Socket_GetSocketError(SOCKETPTR sp); 00210 00211 CHIPCARD_API ERRORCODE Socket_SetReuseAddress(SOCKETPTR sp, int fl); 00213 00214 // end of group socket 00216 00217 // end of group socketsandsets 00219 00220 #ifdef __cplusplus 00221 } 00222 #endif 00223 00224 #endif // MOD_SOCKET_H 00225 00226 00227

Generated on Wed Jul 28 14:56:49 2004 for libchipcard by doxygen 1.3.7