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

windows/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 Sat Feb 11 15:20:28 2006 for libchipcard by  doxygen 1.4.2