summaryrefslogtreecommitdiffstats
path: root/src/H5FDstream.h
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r2746] Thomas Radke2000-10-281-4/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: Port to Windows platform Bug fix Description: The Stream VFD is ported to Windows now. Also fixed a bug where an application terminated when it got a SIGPIPE due to sending/receiving on a closed socket. Solution: The socket stuff is treated different under Windows when using the MS compilers to build HDF5. They define their own socket datatype and have closesocket() instead of close(2) to close sockets. Also there are different header files for all the socket stuff. So I introduced my own socket decriptor datatype in H5FDstream.h which should be used to pass in external sockets. This datatype is mapped to either 'int' (UNIX-type sockets) or 'SOCKET' (Windows). In the code the error code checking was adapted according to the socket datatype used. Also, for Windows you have to call a routine to initialize the Socket layer before using it. As a kind of bug fix, the process signal mask is now set to ignore SIGPIPE signals which otherwise cause the application to terminate. The driver read/write routines catch this and return an error code. Platforms tested: Windows NT, both with MS Visual C++ compiler and with GNU cc It is interesting that when compiling with GNU cc under Windows it is possible to use both Windows and UNIX-type sockets (either one or the other). So I check for GNU cc and go for UNIX sockets if possible.
* [svn-r2555] Purpose:Thomas Radke2000-09-151-0/+53
Added source files for the Stream Virtual File Driver. Description: The Stream VFD allows users to stream complete HDF5 files via socket connections between different applications. Files which were created anew are flushed to any connected client on each H5Fflush() or H5Fclose() operation. Files which are opened as read-only will be read from a socket on a H5Fopen() call. The driver's H5FDset_fapl_stream() routine allows to pass in several parameters such as an external socket descriptor, some socket options, and flags for broadcasting a received file. If an external socket is provided the Stream VFD would use that for the socket calls. Otherwise it parses the filename argument in H5Fcreate()/H5Fopen() for a 'hostname::port' parameter. All files processed by the Stream VFD are kept in memory (same way as the core VFD does). Platforms: Tested so far under Linux, Irix 32/64bit, OSF1, Solaris, Cray Unicos, Hitachi SR8000, IBM AIX. Not tested under Windows yet.