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.6 2003/04/21 23:33:33 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 "chameleon/error.h" 00037 #include "chameleon/inetaddr.h" 00038 #include <sys/types.h> 00039 #include <sys/socket.h> 00040 #include <netinet/in.h> 00041 #ifdef HAVE_ARPA_INET_H 00042 # include <arpa/inet.h> 00043 #endif 00044 00045 00046 #ifdef __cplusplus 00047 extern "C" { 00048 #endif 00049 00050 00058 #define SOCKET_ERROR_TYPE "Socket" 00059 #define SOCKET_ERROR_BAD_SOCKETTYPE (-1) 00060 #define SOCKET_ERROR_NOT_OPEN (-2) 00061 #define SOCKET_ERROR_TIMEOUT (-3) 00062 #define SOCKET_ERROR_IN_PROGRESS (-4) 00063 #define SOCKET_ERROR_STARTUP (-5) 00064 #define SOCKET_ERROR_INTERRUPTED (-6) 00065 #define SOCKET_ERROR_UNSUPPORTED (-7) 00066 00067 00071 CHIPCARD_API typedef enum { 00072 SocketTypeTCP=1, 00073 SocketTypeUDP, 00074 SocketTypeRAW, 00075 SocketTypeUnix 00076 } SOCKETTYPE; 00077 00078 00079 CHIPCARD_API struct SOCKETSTRUCT { 00080 int socket; 00081 int type; 00082 }; 00083 00084 CHIPCARD_API typedef struct SOCKETSTRUCT* SOCKETPTR; 00085 00086 CHIPCARD_API struct SOCKETSETSTRUCT { 00087 fd_set set; 00088 int highest; 00089 }; 00090 00091 CHIPCARD_API typedef struct SOCKETSETSTRUCT SOCKETSET; 00092 CHIPCARD_API typedef SOCKETSET* SOCKETSETPTR; 00093 00094 00098 CHIPCARD_API ERRORCODE Socket_ModuleInit(); 00099 00103 CHIPCARD_API ERRORCODE Socket_ModuleFini(); 00104 00122 CHIPCARD_API ERRORCODE SocketSet_Create(SOCKETSETPTR ssp); 00123 CHIPCARD_API ERRORCODE SocketSet_Destroy(SOCKETSETPTR ssp); 00124 CHIPCARD_API ERRORCODE SocketSet_Clear(SOCKETSETPTR ssp); 00126 00134 CHIPCARD_API ERRORCODE SocketSet_AddSocket(SOCKETSETPTR ssp, 00135 const struct SOCKETSTRUCT *sp); 00136 CHIPCARD_API ERRORCODE SocketSet_RemoveSocket(SOCKETSETPTR ssp, 00137 const struct SOCKETSTRUCT *sp); 00138 CHIPCARD_API int SocketSet_HasSocket(SOCKETSETPTR ssp, 00139 const struct SOCKETSTRUCT *sp); 00141 //end of group socketset 00143 00144 00156 00160 CHIPCARD_API SOCKETPTR Socket_new(); 00161 00165 CHIPCARD_API void Socket_free(SOCKETPTR sp); 00166 00171 CHIPCARD_API ERRORCODE Socket_Open(SOCKETPTR sp, SOCKETTYPE socketType); 00172 00176 CHIPCARD_API ERRORCODE Socket_Close(SOCKETPTR sp); 00178 00185 CHIPCARD_API ERRORCODE Socket_Connect(SOCKETPTR sp, const INETADDRESS *addr); 00186 CHIPCARD_API ERRORCODE Socket_Bind(SOCKETPTR sp, const INETADDRESS *addr); 00187 CHIPCARD_API ERRORCODE Socket_Listen(SOCKETPTR sp, int backlog); 00188 CHIPCARD_API ERRORCODE Socket_Accept(SOCKETPTR sp, INETADDRESSPTR addr, SOCKETPTR newsock); 00190 00198 00199 CHIPCARD_API SOCKETTYPE Socket_GetSocketType(SOCKETPTR sp); 00200 00201 CHIPCARD_API ERRORCODE Socket_GetPeerAddr(SOCKETPTR sp, INETADDRESSPTR addr); 00202 00211 CHIPCARD_API ERRORCODE Socket_Select(SOCKETSETPTR rs, 00212 SOCKETSETPTR ws, 00213 SOCKETSETPTR xs, 00214 int timeout); 00215 00220 CHIPCARD_API ERRORCODE Socket_WaitForRead(SOCKETPTR sp,int timeout); 00221 00226 CHIPCARD_API ERRORCODE Socket_WaitForWrite(SOCKETPTR sp,int timeout); 00228 00236 00244 CHIPCARD_API ERRORCODE Socket_Read(SOCKETPTR sp, 00245 char *buffer, 00246 int *bsize); 00247 00255 CHIPCARD_API ERRORCODE Socket_Write(SOCKETPTR sp, 00256 const char *buffer, 00257 int *bsize); 00258 00268 CHIPCARD_API ERRORCODE Socket_ReadFrom(SOCKETPTR sp, 00269 INETADDRESSPTR addr, 00270 char *buffer, 00271 int *bsize); 00280 CHIPCARD_API ERRORCODE Socket_WriteTo(SOCKETPTR sp, 00281 const INETADDRESS *addr, 00282 const char *buffer, 00283 int *bsize); 00285 00292 CHIPCARD_API ERRORCODE Socket_SetBlocking(SOCKETPTR sp, 00293 int fl); 00294 CHIPCARD_API ERRORCODE Socket_SetBroadcast(SOCKETPTR sp, 00295 int fl); 00296 CHIPCARD_API ERRORCODE Socket_GetSocketError(SOCKETPTR sp); 00297 00298 CHIPCARD_API ERRORCODE Socket_SetReuseAddress(SOCKETPTR sp, int fl); 00300 00301 // end of group socket 00303 00304 // end of group socketsandsets 00306 00307 #ifdef __cplusplus 00308 } 00309 #endif 00310 00311 #endif // MOD_SOCKET_H 00312 00313 00314

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