summaryrefslogtreecommitdiffstats
path: root/src/H5FDstream.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5FDstream.h')
-rw-r--r--src/H5FDstream.h39
1 files changed, 35 insertions, 4 deletions
diff --git a/src/H5FDstream.h b/src/H5FDstream.h
index c8acd65..aa0f339 100644
--- a/src/H5FDstream.h
+++ b/src/H5FDstream.h
@@ -7,30 +7,60 @@
* Tuesday, September 12, 2000
*
* Purpose: The public header file for the Stream Virtual File Driver.
+ *
+ * Version: $Header$
+ *
+ * Modifications:
+ * Thomas Radke, Thursday, October 26, 2000
+ * Added support for Windows.
+ *
*/
#ifndef H5FDstream_H
#define H5FDstream_H
#ifdef H5_HAVE_STREAM
+#include <H5pubconf.h>
#include <H5Ipublic.h>
-#ifdef __cplusplus
-extern "C" {
+/* check what sockets type we have (Unix or Windows sockets)
+ Note that only MS compilers require to use Windows sockets
+ but gcc under Windows does not. */
+#if ! defined(H5_HAVE_WINSOCK_H) || defined(__GNUC__)
+#define H5FD_STREAM_HAVE_UNIX_SOCKETS 1
+#endif
+
+/* define the data type for socket descriptors
+ and the constant indicating an invalid descriptor */
+#ifdef H5FD_STREAM_HAVE_UNIX_SOCKETS
+
+#define H5FD_STREAM_SOCKET_TYPE int
+#define H5FD_STREAM_INVALID_SOCKET -1
+
+#else
+#include <winsock.h>
+
+#define H5FD_STREAM_SOCKET_TYPE SOCKET
+#define H5FD_STREAM_INVALID_SOCKET SOCKET_ERROR
+
#endif
#define H5FD_STREAM (H5FD_stream_init())
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* prototype for read broadcast callback routine */
typedef int (*H5FD_stream_broadcast_t) (unsigned char **file,
haddr_t *len,
void *arg);
-/* Driver-specific file access properties */
+/* driver-specific file access properties */
typedef struct H5FD_stream_fapl_t
{
size_t increment; /* how much to grow memory in reallocs */
- int socket; /* external socket descriptor */
+ H5FD_STREAM_SOCKET_TYPE socket; /* external socket descriptor */
hbool_t do_socket_io; /* do I/O on socket */
unsigned int backlog; /* backlog argument for listen call */
H5FD_stream_broadcast_t broadcast_fn; /* READ broadcast callback */
@@ -38,6 +68,7 @@ typedef struct H5FD_stream_fapl_t
} H5FD_stream_fapl_t;
+/* prototypes of exported functions */
__DLL__ hid_t H5FD_stream_init (void);
__DLL__ herr_t H5Pset_fapl_stream (hid_t fapl_id,
H5FD_stream_fapl_t *fapl);