1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2 * Copyright by The HDF Group. *
3 * All rights reserved. *
5 * This file is part of HDF5. The full HDF5 copyright notice, including *
6 * terms governing use, modification, and redistribution, is contained in *
7 * the COPYING file, which can be found at the root of the source code *
8 * distribution tree, or in https://www.hdfgroup.org/licenses. *
9 * If you do not have access to either file, you may request a copy from *
10 * help@hdfgroup.org. *
11 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
14 * Purpose: Public, shared definitions for Mirror VFD & remote Writer.
20 #ifdef H5_HAVE_MIRROR_VFD
22 #define H5FD_MIRROR (H5FD_mirror_init())
28 /* ============================================================================
29 * Mirror VFD use and operation.
30 * ============================================================================
33 /* ---------------------------------------------------------------------------
34 * Structure: H5FD_mirror_fapl_t
36 * Used to pass configuraiton information to the Mirror VFD.
37 * Populate components as appropriate and pass structure pointer to
38 * `H5Pset_fapl_mirror()`.
41 * Semi-unique number to sanity-check pointers to this structure type.
42 * MUST equal H5FD_MIRROR_FAPL_MAGIC to be considered valid.
44 * `version` (uint32_t)
45 * Indicates expected components of the structure.
47 * `handshake_port (int)
48 * Port number to expect to reach the "Mirror Server" on the remote host.
50 * `remote_ip` (char[])
51 * IP address string of "Mirror Server" remote host.
52 * ---------------------------------------------------------------------------
54 #define H5FD_MIRROR_FAPL_MAGIC 0xF8DD514C
55 #define H5FD_MIRROR_CURR_FAPL_T_VERSION 1
56 #define H5FD_MIRROR_MAX_IP_LEN 32
57 typedef struct H5FD_mirror_fapl_t {
61 char remote_ip[H5FD_MIRROR_MAX_IP_LEN + 1];
64 H5_DLL hid_t H5FD_mirror_init(void);
69 * \todo Add missing documentation
71 H5_DLL herr_t H5Pget_fapl_mirror(hid_t fapl_id, H5FD_mirror_fapl_t *fa_out);
76 * \todo Add missing documentation
78 H5_DLL herr_t H5Pset_fapl_mirror(hid_t fapl_id, H5FD_mirror_fapl_t *fa);
84 #else /* H5_HAVE_MIRROR_VFD */
86 #define H5FD_MIRROR (H5I_INAVLID_HID)
88 #endif /* H5_HAVE_MIRROR_VFD */
90 #endif /* H5FDmirror_H */