summaryrefslogtreecommitdiffstats
path: root/hl/c++/src
diff options
context:
space:
mode:
Diffstat (limited to 'hl/c++/src')
-rw-r--r--hl/c++/src/CMakeLists.txt75
-rw-r--r--hl/c++/src/H5PacketTable.cpp514
-rw-r--r--hl/c++/src/H5PacketTable.h54
-rw-r--r--hl/c++/src/Makefile.am2
-rw-r--r--hl/c++/src/Makefile.in46
5 files changed, 365 insertions, 326 deletions
diff --git a/hl/c++/src/CMakeLists.txt b/hl/c++/src/CMakeLists.txt
index 7949b73..0c9b04b 100644
--- a/hl/c++/src/CMakeLists.txt
+++ b/hl/c++/src/CMakeLists.txt
@@ -1,42 +1,56 @@
-cmake_minimum_required (VERSION 3.10)
-PROJECT (HDF5_HL_CPP_SRC)
+cmake_minimum_required (VERSION 3.12)
+project (HDF5_HL_CPP_SRC CXX)
#-----------------------------------------------------------------------------
# Define Sources
#-----------------------------------------------------------------------------
-INCLUDE_DIRECTORIES (${HDF5_HL_SRC_DIR}/src)
-INCLUDE_DIRECTORIES (${HDF5_HL_CPP_SRC_SOURCE_DIR})
-set (HDF5_HL_CPP_SRCS ${HDF5_HL_CPP_SRC_SOURCE_DIR}/H5PacketTable.cpp)
+set (HDF5_HL_CPP_SOURCES ${HDF5_HL_CPP_SRC_SOURCE_DIR}/H5PacketTable.cpp)
set (HDF5_HL_CPP_HDRS ${HDF5_HL_CPP_SRC_SOURCE_DIR}/H5PacketTable.h)
-add_library (${HDF5_HL_CPP_LIB_TARGET} STATIC ${HDF5_HL_CPP_SRCS})
-TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIB_TARGET} STATIC " " " ")
-target_link_libraries (${HDF5_HL_CPP_LIB_TARGET} PUBLIC ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
-set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_CPP_LIB_TARGET}")
-H5_SET_LIB_OPTIONS (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_HL_CPP_LIB_NAME} STATIC 0)
-set_target_properties (${HDF5_HL_CPP_LIB_TARGET} PROPERTIES
- FOLDER libraries/hl
- INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
-)
-set (install_targets ${HDF5_HL_CPP_LIB_TARGET})
+if (NOT ONLY_SHARED_LIBS)
+ add_library (${HDF5_HL_CPP_LIB_TARGET} STATIC ${HDF5_HL_CPP_SOURCES} ${HDF5_HL_CPP_HDRS})
+ target_include_directories (${HDF5_HL_CPP_LIB_TARGET}
+ PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
+ INTERFACE "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+ )
+ target_compile_options(${HDF5_HL_CPP_LIB_TARGET} PRIVATE "${HDF5_CMAKE_CXX_FLAGS}")
+ TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIB_TARGET} STATIC)
+ target_link_libraries (${HDF5_HL_CPP_LIB_TARGET} PUBLIC ${HDF5_HL_LIB_TARGET} ${HDF5_LIB_TARGET})
+ set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_CPP_LIB_TARGET}")
+ H5_SET_LIB_OPTIONS (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_HL_CPP_LIB_NAME} STATIC 0)
+ set_target_properties (${HDF5_HL_CPP_LIB_TARGET} PROPERTIES FOLDER libraries/hl)
+ set (install_targets ${HDF5_HL_CPP_LIB_TARGET})
+endif ()
if (BUILD_SHARED_LIBS)
- add_library (${HDF5_HL_CPP_LIBSH_TARGET} SHARED ${HDF5_HL_CPP_SRCS})
- TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIBSH_TARGET} SHARED " " " ")
+ add_library (${HDF5_HL_CPP_LIBSH_TARGET} SHARED ${HDF5_HL_CPP_SOURCES})
+ target_include_directories (${HDF5_HL_CPP_LIBSH_TARGET}
+ PRIVATE "${HDF5_SRC_DIR};${HDF5_SRC_BINARY_DIR};$<$<BOOL:${HDF5_ENABLE_PARALLEL}>:${MPI_C_INCLUDE_DIRS}>"
+ INTERFACE "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
+ )
+ target_compile_options(${HDF5_HL_CPP_LIBSH_TARGET} PRIVATE "${HDF5_CMAKE_CXX_FLAGS}")
+ target_compile_definitions(${HDF5_HL_CPP_LIBSH_TARGET} PUBLIC "H5_BUILT_AS_DYNAMIC_LIB")
+ TARGET_C_PROPERTIES (${HDF5_HL_CPP_LIBSH_TARGET} SHARED)
target_link_libraries (${HDF5_HL_CPP_LIBSH_TARGET} PUBLIC ${HDF5_HL_LIBSH_TARGET} ${HDF5_LIBSH_TARGET})
set_global_variable (HDF5_LIBRARIES_TO_EXPORT "${HDF5_LIBRARIES_TO_EXPORT};${HDF5_HL_CPP_LIBSH_TARGET}")
H5_SET_LIB_OPTIONS (${HDF5_HL_CPP_LIBSH_TARGET} ${HDF5_HL_CPP_LIB_NAME} SHARED "HL_CXX")
- set_target_properties (${HDF5_HL_CPP_LIBSH_TARGET} PROPERTIES
- FOLDER libraries/hl
- COMPILE_DEFINITIONS "H5_BUILT_AS_DYNAMIC_LIB"
- INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>"
- INTERFACE_COMPILE_DEFINITIONS H5_BUILT_AS_DYNAMIC_LIB=1
- )
+ set_target_properties (${HDF5_HL_CPP_LIBSH_TARGET} PROPERTIES FOLDER libraries/hl)
set (install_targets ${install_targets} ${HDF5_HL_CPP_LIBSH_TARGET})
endif ()
#-----------------------------------------------------------------------------
+# Add Target to clang-format
+#-----------------------------------------------------------------------------
+if (HDF5_ENABLE_FORMATTERS)
+ if (NOT ONLY_SHARED_LIBS)
+ clang_format (HDF5_HL_CPP_SRC_FORMAT ${HDF5_HL_CPP_LIB_TARGET})
+ else ()
+ clang_format (HDF5_HL_CPP_SRC_FORMAT ${HDF5_HL_CPP_LIBSH_TARGET})
+ endif ()
+endif ()
+
+#-----------------------------------------------------------------------------
# Add file(s) to CMake Install
#-----------------------------------------------------------------------------
install (
@@ -55,7 +69,9 @@ if (HDF5_EXPORTED_TARGETS)
if (BUILD_SHARED_LIBS)
INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIBSH_TARGET} ${HDF5_INSTALL_BIN_DIR} hlcpplibraries)
endif ()
- INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_BIN_DIR} hlcpplibraries)
+ if (NOT ONLY_SHARED_LIBS)
+ INSTALL_TARGET_PDB (${HDF5_HL_CPP_LIB_TARGET} ${HDF5_INSTALL_LIB_DIR} hlcpplibraries)
+ endif ()
install (
TARGETS
@@ -82,13 +98,15 @@ set (_PKG_CONFIG_VERSION "${HDF5_PACKAGE_VERSION}")
set (_PKG_CONFIG_LIBS_PRIVATE)
-set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${HDF5_HL_CPP_LIB_CORENAME}")
+if (NOT ONLY_SHARED_LIBS)
+ set (_PKG_CONFIG_LIBS "${_PKG_CONFIG_LIBS} -l${HDF5_HL_CPP_LIB_CORENAME}")
+endif ()
if (BUILD_SHARED_LIBS)
set (_PKG_CONFIG_SH_LIBS "${_PKG_CONFIG_SH_LIBS} -l${HDF5_HL_CPP_LIB_CORENAME}")
endif ()
-set (_PKG_CONFIG_REQUIRES "${HDF5_HL_LIB_CORENAME}")
-set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_HL_LIB_CORENAME}")
+set (_PKG_CONFIG_REQUIRES "${HDF5_HL_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}")
+set (_PKG_CONFIG_REQUIRES_PRIVATE "${HDF5_HL_LIB_CORENAME}-${HDF5_PACKAGE_VERSION}")
configure_file (
${HDF_RESOURCES_DIR}/libhdf5.pc.in
@@ -101,7 +119,7 @@ install (
COMPONENT hlcpplibraries
)
-if (NOT WIN32)
+if (NOT WIN32 AND NOT MINGW)
set (_PKG_CONFIG_COMPILER ${CMAKE_CXX_COMPILER})
configure_file (
${HDF_RESOURCES_DIR}/libh5cc.in
@@ -115,4 +133,3 @@ if (NOT WIN32)
COMPONENT hlcpplibraries
)
endif ()
-
diff --git a/hl/c++/src/H5PacketTable.cpp b/hl/c++/src/H5PacketTable.cpp
index 544df0b..eca3ed1 100644
--- a/hl/c++/src/H5PacketTable.cpp
+++ b/hl/c++/src/H5PacketTable.cpp
@@ -6,7 +6,7 @@
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
- * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -24,257 +24,265 @@
#include "H5PacketTable.h"
- /********************************/
- /* PacketTable superclass */
- /********************************/
-
- /* "Open" Constructor
- * Opens an existing packet table, which can contain either fixed-length or
- * variable-length packets.
- */
- PacketTable::PacketTable(hid_t fileID, const char* name)
- {
- table_id = H5PTopen( fileID, name);
- }
-
- /* "Open" Constructor - will be deprecated because of char* name */
- PacketTable::PacketTable(hid_t fileID, char* name)
- {
- table_id = H5PTopen( fileID, name);
- }
-
- /* Destructor
- * Cleans up the packet table
- */
- PacketTable::~PacketTable()
- {
- H5PTclose( table_id);
- }
-
- /* IsValid
- * Returns true if this packet table is valid, false otherwise.
- * Use this after the constructor to ensure HDF did not have
- * any trouble making or opening the packet table.
- */
- bool PacketTable::IsValid()
- {
- if (H5PTis_valid(table_id) == 0)
- return true;
- else
- return false;
- }
-
- /* IsVariableLength
- * Return 1 if this packet table uses variable-length datatype,
- * and 0, otherwise. Returns -1 if the table is invalid (not open).
- */
- int PacketTable::IsVariableLength()
- {
- return H5PTis_varlen(table_id);
- }
-
- /* ResetIndex
- * Sets the index to point to the first packet in the packet table
- */
- void PacketTable::ResetIndex()
- {
- H5PTcreate_index(table_id);
- }
-
- /* SetIndex
- * Sets the index to point to the packet specified by index.
- * Returns 0 on success, negative on failure (if index is out of bounds)
- */
- int PacketTable::SetIndex(hsize_t index)
- {
- return H5PTset_index(table_id, index);
- }
-
- /* SetIndex
- * Sets the index to point to the packet specified by index.
- * Returns 0 on success, negative on failure (if index is out of bounds)
- */
- hsize_t PacketTable::GetIndex(int &error)
- {
- hsize_t index;
-
- error = H5PTget_index(table_id, &index);
- if(error < 0)
- return 0;
- else
- return index;
- }
-
- /* GetPacketCount
- * Returns the number of packets in the packet table. Error
- * is set to 0 on success. On failure, returns 0 and
- * error is set to negative.
- */
- hsize_t PacketTable::GetPacketCount(int& error)
- {
- hsize_t npackets;
-
- error = H5PTget_num_packets(table_id, &npackets);
- return npackets;
- }
-
- /* GetTableId
- * Returns the identifier of the packet table
- */
- hid_t PacketTable::GetTableId()
- {
- return table_id;
- }
-
- /* GetDatatype
- * Returns the datatype identifier used by the packet table, on success,
- * or H5I_INVALID_HID, on failure.
- * Note: it is best to avoid using this identifier in applications, unless
- * the desired functionality cannot be performed via the packet table ID.
- */
- hid_t PacketTable::GetDatatype()
- {
- return H5PTget_type(table_id);
- }
-
- /* GetDataset
- * Returns the dataset identifier associated with the packet table, on
- * success, or H5I_INVALID_HID, on failure.
- * Note: it is best to avoid using this identifier in applications, unless
- * the desired functionality cannot be performed via the packet table ID.
- */
- hid_t PacketTable::GetDataset()
- {
- return H5PTget_dataset(table_id);
- }
-
- /* FreeBuff
- * Frees the buffers created when variable-length packets are read.
- * Takes the number of hvl_t structs to be freed and a pointer to their
- * location in memory.
- * Returns 0 on success, negative on error.
- */
- int PacketTable::FreeBuff(size_t numStructs, hvl_t * buffer)
- {
- return H5PTfree_vlen_buff( table_id, numStructs, buffer);
- }
-
-
- /********************************/
- /* Fixed-Length Packet Table */
- /********************************/
-
- /* Constructor
- * Creates a packet table to store either fixed- or variable-length packets.
- * Takes the ID of the file the packet table will be created in, the ID of
- * the property list to specify compression, the name of the packet table,
- * the ID of the datatype, and the size of a memory chunk used in chunking.
- */
- FL_PacketTable::FL_PacketTable(hid_t fileID, const char* name, hid_t dtypeID, hsize_t chunkSize, hid_t plistID)
- {
- table_id = H5PTcreate(fileID, name, dtypeID, chunkSize, plistID);
- }
-
- /* Constructor - deprecated
- * Creates a packet table to store either fixed- or variable-length packets.
- * Takes the ID of the file the packet table will be created in, the ID of
- * the property list to specify compression, the name of the packet table,
- * the ID of the datatype, and the size of a memory chunk used in chunking.
- * Note: The above constructor has a better prototype, which allows default
- * values to be used. This constructor was only released in 1.10.0.
- */
- FL_PacketTable::FL_PacketTable(hid_t fileID, hid_t plistID, const char* name, hid_t dtypeID, hsize_t chunkSize)
- {
- table_id = H5PTcreate(fileID, name, dtypeID, chunkSize, plistID);
- }
-
- /* Constructor
- * Creates a packet table to store either fixed- or variable-length packets.
- * Takes the ID of the file the packet table will be created in, the name of
- * the packet table, the ID of the datatype of the set, and the size
- * of a memory chunk used in chunking.
- * Note: this overload will be deprecated in favor of the constructor above.
- */
- FL_PacketTable::FL_PacketTable(hid_t fileID, char* name, hid_t dtypeID, hsize_t chunkSize, int compression)
- {
- table_id = H5PTcreate_fl(fileID, name, dtypeID, chunkSize, compression);
- }
-
- /* "Open" Constructor
- * Opens an existing fixed-length packet table.
- * Fails if the packet table specified is variable-length.
- */
- FL_PacketTable::FL_PacketTable(hid_t fileID, const char* name) : PacketTable(fileID, name) {}
-
- /* "Open" Constructor - will be deprecated because of char* name */
- FL_PacketTable::FL_PacketTable(hid_t fileID, char* name) : PacketTable(fileID, name) {}
-
- /* AppendPacket
- * Adds a single packet to the packet table. Takes a pointer
- * to the location of the data in memory.
- * Returns 0 on success, negative on failure
- */
- int FL_PacketTable::AppendPacket(void * data)
- {
- return H5PTappend(table_id, 1, data);
- }
-
- /* AppendPackets (multiple packets)
- * Adds multiple packets to the packet table. Takes the number of packets
- * to be added and a pointer to their location in memory.
- * Returns 0 on success, -1 on failure.
- */
- int FL_PacketTable::AppendPackets(size_t numPackets, void * data)
- {
- return H5PTappend(table_id, numPackets, data);
- }
-
- /* GetPacket (indexed)
- * Gets a single packet from the packet table. Takes the index
- * of the packet (with 0 being the first packet) and a pointer
- * to memory where the data should be stored.
- * Returns 0 on success, negative on failure
- */
- int FL_PacketTable::GetPacket(hsize_t index, void * data)
- {
- return H5PTread_packets(table_id, index, 1, data);
- }
-
- /* GetPackets (multiple packets)
- * Gets multiple packets at once, all packets between
- * startIndex and endIndex inclusive. Also takes a pointer to
- * the memory where these packets should be stored.
- * Returns 0 on success, negative on failure.
- */
- int FL_PacketTable::GetPackets(hsize_t startIndex, hsize_t endIndex, void * data)
- {
- // Make sure the range of indexes is valid
- if (startIndex > endIndex)
- return -1;
-
- return H5PTread_packets(table_id, startIndex, (size_t)(endIndex-startIndex+1), data);
- }
-
- /* GetNextPacket (single packet)
- * Gets the next packet in the packet table. Takes a pointer to
- * memory where the packet should be stored.
- * Returns 0 on success, negative on failure. Index
- * is not advanced to the next packet on failure.
- */
- int FL_PacketTable::GetNextPacket(void * data)
- {
- return H5PTget_next(table_id, 1, data);
- }
-
- /* GetNextPackets (multiple packets)
- * Gets the next numPackets packets in the packet table. Takes a
- * pointer to memory where these packets should be stored.
- * Returns 0 on success, negative on failure. Index
- * is not advanced on failure.
- */
- int FL_PacketTable::GetNextPackets(size_t numPackets, void * data)
- {
- return H5PTget_next(table_id, numPackets, data);
- }
+/********************************/
+/* PacketTable superclass */
+/********************************/
+
+/* "Open" Constructor
+ * Opens an existing packet table, which can contain either fixed-length or
+ * variable-length packets.
+ */
+PacketTable::PacketTable(hid_t fileID, const char *name) { table_id = H5PTopen(fileID, name); }
+
+/* "Open" Constructor - will be deprecated because of char* name */
+PacketTable::PacketTable(hid_t fileID, char *name) { table_id = H5PTopen(fileID, name); }
+
+/* Destructor
+ * Cleans up the packet table
+ */
+PacketTable::~PacketTable() { H5PTclose(table_id); }
+
+/* IsValid
+ * Returns true if this packet table is valid, false otherwise.
+ * Use this after the constructor to ensure HDF did not have
+ * any trouble making or opening the packet table.
+ */
+bool
+PacketTable::IsValid()
+{
+ if (H5PTis_valid(table_id) == 0)
+ return true;
+ else
+ return false;
+}
+
+/* IsVariableLength
+ * Return 1 if this packet table uses variable-length datatype,
+ * and 0, otherwise. Returns -1 if the table is invalid (not open).
+ */
+int
+PacketTable::IsVariableLength()
+{
+ return H5PTis_varlen(table_id);
+}
+
+/* ResetIndex
+ * Sets the index to point to the first packet in the packet table
+ */
+void
+PacketTable::ResetIndex()
+{
+ H5PTcreate_index(table_id);
+}
+
+/* SetIndex
+ * Sets the index to point to the packet specified by index.
+ * Returns 0 on success, negative on failure (if index is out of bounds)
+ */
+int
+PacketTable::SetIndex(hsize_t index)
+{
+ return H5PTset_index(table_id, index);
+}
+
+/* SetIndex
+ * Sets the index to point to the packet specified by index.
+ * Returns 0 on success, negative on failure (if index is out of bounds)
+ */
+hsize_t
+PacketTable::GetIndex(int &error)
+{
+ hsize_t index;
+
+ error = H5PTget_index(table_id, &index);
+ if (error < 0)
+ return 0;
+ else
+ return index;
+}
+
+/* GetPacketCount
+ * Returns the number of packets in the packet table. Error
+ * is set to 0 on success. On failure, returns 0 and
+ * error is set to negative.
+ */
+hsize_t
+PacketTable::GetPacketCount(int &error)
+{
+ hsize_t npackets;
+
+ error = H5PTget_num_packets(table_id, &npackets);
+ return npackets;
+}
+
+/* GetTableId
+ * Returns the identifier of the packet table
+ */
+hid_t
+PacketTable::GetTableId()
+{
+ return table_id;
+}
+
+/* GetDatatype
+ * Returns the datatype identifier used by the packet table, on success,
+ * or H5I_INVALID_HID, on failure.
+ * Note: it is best to avoid using this identifier in applications, unless
+ * the desired functionality cannot be performed via the packet table ID.
+ */
+hid_t
+PacketTable::GetDatatype()
+{
+ return H5PTget_type(table_id);
+}
+
+/* GetDataset
+ * Returns the dataset identifier associated with the packet table, on
+ * success, or H5I_INVALID_HID, on failure.
+ * Note: it is best to avoid using this identifier in applications, unless
+ * the desired functionality cannot be performed via the packet table ID.
+ */
+hid_t
+PacketTable::GetDataset()
+{
+ return H5PTget_dataset(table_id);
+}
+
+/* FreeBuff
+ * Frees the buffers created when variable-length packets are read.
+ * Takes the number of hvl_t structs to be freed and a pointer to their
+ * location in memory.
+ * Returns 0 on success, negative on error.
+ */
+int
+PacketTable::FreeBuff(size_t numStructs, hvl_t *buffer)
+{
+ return H5PTfree_vlen_buff(table_id, numStructs, buffer);
+}
+
+/********************************/
+/* Fixed-Length Packet Table */
+/********************************/
+
+/* Constructor
+ * Creates a packet table to store either fixed- or variable-length packets.
+ * Takes the ID of the file the packet table will be created in, the ID of
+ * the property list to specify compression, the name of the packet table,
+ * the ID of the datatype, and the size of a memory chunk used in chunking.
+ */
+FL_PacketTable::FL_PacketTable(hid_t fileID, const char *name, hid_t dtypeID, hsize_t chunkSize,
+ hid_t plistID)
+{
+ table_id = H5PTcreate(fileID, name, dtypeID, chunkSize, plistID);
+}
+
+/* Constructor - deprecated
+ * Creates a packet table to store either fixed- or variable-length packets.
+ * Takes the ID of the file the packet table will be created in, the ID of
+ * the property list to specify compression, the name of the packet table,
+ * the ID of the datatype, and the size of a memory chunk used in chunking.
+ * Note: The above constructor has a better prototype, which allows default
+ * values to be used. This constructor was only released in 1.10.0.
+ */
+FL_PacketTable::FL_PacketTable(hid_t fileID, hid_t plistID, const char *name, hid_t dtypeID,
+ hsize_t chunkSize)
+{
+ table_id = H5PTcreate(fileID, name, dtypeID, chunkSize, plistID);
+}
+
+/* Constructor
+ * Creates a packet table to store either fixed- or variable-length packets.
+ * Takes the ID of the file the packet table will be created in, the name of
+ * the packet table, the ID of the datatype of the set, and the size
+ * of a memory chunk used in chunking.
+ * Note: this overload will be deprecated in favor of the constructor above.
+ */
+FL_PacketTable::FL_PacketTable(hid_t fileID, char *name, hid_t dtypeID, hsize_t chunkSize, int compression)
+{
+ table_id = H5PTcreate_fl(fileID, name, dtypeID, chunkSize, compression);
+}
+
+/* "Open" Constructor
+ * Opens an existing fixed-length packet table.
+ * Fails if the packet table specified is variable-length.
+ */
+FL_PacketTable::FL_PacketTable(hid_t fileID, const char *name) : PacketTable(fileID, name) {}
+
+/* "Open" Constructor - will be deprecated because of char* name */
+FL_PacketTable::FL_PacketTable(hid_t fileID, char *name) : PacketTable(fileID, name) {}
+
+/* AppendPacket
+ * Adds a single packet to the packet table. Takes a pointer
+ * to the location of the data in memory.
+ * Returns 0 on success, negative on failure
+ */
+int
+FL_PacketTable::AppendPacket(void *data)
+{
+ return H5PTappend(table_id, 1, data);
+}
+
+/* AppendPackets (multiple packets)
+ * Adds multiple packets to the packet table. Takes the number of packets
+ * to be added and a pointer to their location in memory.
+ * Returns 0 on success, -1 on failure.
+ */
+int
+FL_PacketTable::AppendPackets(size_t numPackets, void *data)
+{
+ return H5PTappend(table_id, numPackets, data);
+}
+
+/* GetPacket (indexed)
+ * Gets a single packet from the packet table. Takes the index
+ * of the packet (with 0 being the first packet) and a pointer
+ * to memory where the data should be stored.
+ * Returns 0 on success, negative on failure
+ */
+int
+FL_PacketTable::GetPacket(hsize_t index, void *data)
+{
+ return H5PTread_packets(table_id, index, 1, data);
+}
+
+/* GetPackets (multiple packets)
+ * Gets multiple packets at once, all packets between
+ * startIndex and endIndex inclusive. Also takes a pointer to
+ * the memory where these packets should be stored.
+ * Returns 0 on success, negative on failure.
+ */
+int
+FL_PacketTable::GetPackets(hsize_t startIndex, hsize_t endIndex, void *data)
+{
+ // Make sure the range of indexes is valid
+ if (startIndex > endIndex)
+ return -1;
+
+ return H5PTread_packets(table_id, startIndex, (size_t)(endIndex - startIndex + 1), data);
+}
+
+/* GetNextPacket (single packet)
+ * Gets the next packet in the packet table. Takes a pointer to
+ * memory where the packet should be stored.
+ * Returns 0 on success, negative on failure. Index
+ * is not advanced to the next packet on failure.
+ */
+int
+FL_PacketTable::GetNextPacket(void *data)
+{
+ return H5PTget_next(table_id, 1, data);
+}
+
+/* GetNextPackets (multiple packets)
+ * Gets the next numPackets packets in the packet table. Takes a
+ * pointer to memory where these packets should be stored.
+ * Returns 0 on success, negative on failure. Index
+ * is not advanced on failure.
+ */
+int
+FL_PacketTable::GetNextPackets(size_t numPackets, void *data)
+{
+ return H5PTget_next(table_id, numPackets, data);
+}
/* Removed "ifdef VLPT_REMOVED" block. 03/08/2016, -BMR */
diff --git a/hl/c++/src/H5PacketTable.h b/hl/c++/src/H5PacketTable.h
index 2665984..735901f 100644
--- a/hl/c++/src/H5PacketTable.h
+++ b/hl/c++/src/H5PacketTable.h
@@ -6,7 +6,7 @@
* This file is part of HDF5. The full HDF5 copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the COPYING file, which can be found at the root of the source code *
- * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
* If you do not have access to either file, you may request a copy from *
* help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -28,22 +28,21 @@
#include "H5PTpublic.h"
#include "H5api_adpt.h"
-class H5_HLCPPDLL PacketTable
-{
-public:
+class H5_HLCPPDLL PacketTable {
+ public:
/* Null constructor
* Sets table_id to "invalid"
*/
- PacketTable() {table_id = H5I_BADID;}
+ PacketTable() { table_id = H5I_BADID; }
/* "Open" Constructor
* Opens an existing packet table, which can contain either fixed-length or
* variable-length packets.
*/
- PacketTable(hid_t fileID, const char* name);
+ PacketTable(hid_t fileID, const char *name);
/* "Open" Constructor - will be deprecated because of char* name */
- PacketTable(hid_t fileID, char* name);
+ PacketTable(hid_t fileID, char *name);
/* Destructor
* Cleans up the packet table
@@ -80,16 +79,17 @@ public:
* Returns the position of the current packet.
* On failure, returns 0 and error is set to negative.
*/
- hsize_t GetIndex(int& error);
+ hsize_t GetIndex(int &error);
/* GetPacketCount
* Returns the number of packets in the packet table. Error
* is set to 0 on success. On failure, returns 0 and
* error is set to negative.
*/
- hsize_t GetPacketCount(int& error);
+ hsize_t GetPacketCount(int &error);
- hsize_t GetPacketCount()
+ hsize_t
+ GetPacketCount()
{
int ignoreError;
return GetPacketCount(ignoreError);
@@ -122,22 +122,22 @@ public:
* location in memory.
* Returns 0 on success, negative on error.
*/
- int FreeBuff(size_t numStructs, hvl_t * buffer);
+ int FreeBuff(size_t numStructs, hvl_t *buffer);
-protected:
+ protected:
hid_t table_id;
};
-class H5_HLCPPDLL FL_PacketTable : virtual public PacketTable
-{
-public:
+class H5_HLCPPDLL FL_PacketTable : virtual public PacketTable {
+ public:
/* Constructor
* Creates a packet table to store either fixed- or variable-length packets.
* Takes the ID of the file the packet table will be created in, the ID of
* the property list to specify compression, the name of the packet table,
* the ID of the datatype, and the size of a memory chunk used in chunking.
*/
- FL_PacketTable(hid_t fileID, const char* name, hid_t dtypeID, hsize_t chunkSize = 0, hid_t plistID = H5P_DEFAULT);
+ FL_PacketTable(hid_t fileID, const char *name, hid_t dtypeID, hsize_t chunkSize = 0,
+ hid_t plistID = H5P_DEFAULT);
/* Constructors - deprecated
* Creates a packet table in which to store fixed length packets.
@@ -148,36 +148,36 @@ public:
* Note: these overloaded constructors will be deprecated in favor of the
* constructor above.
*/
- FL_PacketTable(hid_t fileID, hid_t plist_id, const char* name, hid_t dtypeID, hsize_t chunkSize);
- FL_PacketTable(hid_t fileID, char* name, hid_t dtypeID, hsize_t chunkSize, int compression = 0);
+ FL_PacketTable(hid_t fileID, hid_t plist_id, const char *name, hid_t dtypeID, hsize_t chunkSize);
+ FL_PacketTable(hid_t fileID, char *name, hid_t dtypeID, hsize_t chunkSize, int compression = 0);
/* "Open" Constructor
* Opens an existing fixed-length packet table.
* Fails if the packet table specified is variable-length.
*/
- FL_PacketTable(hid_t fileID, const char* name);
+ FL_PacketTable(hid_t fileID, const char *name);
/* "Open" Constructor - will be deprecated because of char* name */
- FL_PacketTable(hid_t fileID, char* name);
+ FL_PacketTable(hid_t fileID, char *name);
/* Destructor
* Cleans up the packet table
*/
- virtual ~FL_PacketTable() {};
+ virtual ~FL_PacketTable(){};
/* AppendPacket
* Adds a single packet to the packet table. Takes a pointer
* to the location of the data in memory.
* Returns 0 on success, negative on failure
*/
- int AppendPacket(void * data);
+ int AppendPacket(void *data);
/* AppendPackets (multiple packets)
* Adds multiple packets to the packet table. Takes the number of packets
* to be added and a pointer to their location in memory.
* Returns 0 on success, -1 on failure.
*/
- int AppendPackets(size_t numPackets, void * data);
+ int AppendPackets(size_t numPackets, void *data);
/* GetPacket (indexed)
* Gets a single packet from the packet table. Takes the index
@@ -185,7 +185,7 @@ public:
* to memory where the data should be stored.
* Returns 0 on success, negative on failure
*/
- int GetPacket(hsize_t index, void * data);
+ int GetPacket(hsize_t index, void *data);
/* GetPackets (multiple packets)
* Gets multiple packets at once, all packets between
@@ -193,7 +193,7 @@ public:
* the memory where these packets should be stored.
* Returns 0 on success, negative on failure.
*/
- int GetPackets(hsize_t startIndex, hsize_t endIndex, void * data);
+ int GetPackets(hsize_t startIndex, hsize_t endIndex, void *data);
/* GetNextPacket (single packet)
* Gets the next packet in the packet table. Takes a pointer to
@@ -201,7 +201,7 @@ public:
* Returns 0 on success, negative on failure. Index
* is not advanced to the next packet on failure.
*/
- int GetNextPacket(void * data);
+ int GetNextPacket(void *data);
/* GetNextPackets (multiple packets)
* Gets the next numPackets packets in the packet table. Takes a
@@ -209,7 +209,7 @@ public:
* Returns 0 on success, negative on failure. Index
* is not advanced on failure.
*/
- int GetNextPackets(size_t numPackets, void * data);
+ int GetNextPackets(size_t numPackets, void *data);
};
/* Removed "#ifdef VLPT_REMOVED" block. 03/08/2016, -BMR */
diff --git a/hl/c++/src/Makefile.am b/hl/c++/src/Makefile.am
index 363ba3b..f10ee19 100644
--- a/hl/c++/src/Makefile.am
+++ b/hl/c++/src/Makefile.am
@@ -6,7 +6,7 @@
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the COPYING file, which can be found at the root of the source code
-# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
+# distribution tree, or in https://www.hdfgroup.org/licenses.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
##
diff --git a/hl/c++/src/Makefile.in b/hl/c++/src/Makefile.in
index ff20853..aea6f3f 100644
--- a/hl/c++/src/Makefile.in
+++ b/hl/c++/src/Makefile.in
@@ -22,7 +22,7 @@
# This file is part of HDF5. The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the COPYING file, which can be found at the root of the source code
-# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
+# distribution tree, or in https://www.hdfgroup.org/licenses.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#
@@ -406,12 +406,12 @@ AMTAR = @AMTAR@
# AM_CFLAGS is an automake construct which should be used by Makefiles
# instead of CFLAGS, as CFLAGS is reserved solely for the user to define.
# This applies to FCFLAGS, CXXFLAGS, CPPFLAGS, and LDFLAGS as well.
-AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@
+AM_CFLAGS = @AM_CFLAGS@ @H5_CFLAGS@ @H5_ECFLAGS@
# Include src directory
AM_CPPFLAGS = @AM_CPPFLAGS@ @H5_CPPFLAGS@ -I$(top_srcdir)/src \
-I$(top_srcdir)/hl/src
-AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@
+AM_CXXFLAGS = @AM_CXXFLAGS@ @H5_CXXFLAGS@ @H5_ECXXFLAGS@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AM_FCFLAGS = @AM_FCFLAGS@ @H5_FCFLAGS@
AM_LDFLAGS = @AM_LDFLAGS@ @H5_LDFLAGS@
@@ -426,6 +426,7 @@ CC = @CC@
CCDEPMODE = @CCDEPMODE@
CC_VERSION = @CC_VERSION@
CFLAGS = @CFLAGS@
+CLANG_SANITIZE_CHECKS = @CLANG_SANITIZE_CHECKS@
CLEARFILEBUF = @CLEARFILEBUF@
CODESTACK = @CODESTACK@
CONFIG_DATE = @CONFIG_DATE@
@@ -444,6 +445,7 @@ DEFAULT_API_VERSION = @DEFAULT_API_VERSION@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPRECATED_SYMBOLS = @DEPRECATED_SYMBOLS@
+DEV_WARNINGS = @DEV_WARNINGS@
DIRECT_VFD = @DIRECT_VFD@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
@@ -471,6 +473,8 @@ GREP = @GREP@
H5_CFLAGS = @H5_CFLAGS@
H5_CPPFLAGS = @H5_CPPFLAGS@
H5_CXXFLAGS = @H5_CXXFLAGS@
+H5_ECFLAGS = @H5_ECFLAGS@
+H5_ECXXFLAGS = @H5_ECXXFLAGS@
H5_FCFLAGS = @H5_FCFLAGS@
H5_FORTRAN_SHARED = @H5_FORTRAN_SHARED@
H5_LDFLAGS = @H5_LDFLAGS@
@@ -478,9 +482,12 @@ H5_VERSION = @H5_VERSION@
HADDR_T = @HADDR_T@
HAVE_DMALLOC = @HAVE_DMALLOC@
HAVE_FORTRAN_2003 = @HAVE_FORTRAN_2003@
+HAVE_LIBHDFS = @HAVE_LIBHDFS@
HAVE_PTHREAD = @HAVE_PTHREAD@
HDF5_HL = @HDF5_HL@
HDF5_INTERFACES = @HDF5_INTERFACES@
+HDF5_TESTS = @HDF5_TESTS@
+HDF5_TOOLS = @HDF5_TOOLS@
HDF_CXX = @HDF_CXX@
HDF_FORTRAN = @HDF_FORTRAN@
HDF_FORTRAN2003 = @HDF_FORTRAN2003@
@@ -496,6 +503,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTRUMENT = @INSTRUMENT@
INSTRUMENT_LIBRARY = @INSTRUMENT_LIBRARY@
+JNI_LDFLAGS = @JNI_LDFLAGS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
@@ -517,6 +525,7 @@ NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJECT_NAMELEN_DEFAULT_F = @OBJECT_NAMELEN_DEFAULT_F@
OBJEXT = @OBJEXT@
+OPTIMIZATION = @OPTIMIZATION@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
@@ -529,8 +538,10 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PARALLEL = @PARALLEL@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
+PROFILING = @PROFILING@
RANLIB = @RANLIB@
ROOT = @ROOT@
+ROS3_VFD = @ROS3_VFD@
RUNPARALLEL = @RUNPARALLEL@
RUNSERIAL = @RUNSERIAL@
R_INTEGER = @R_INTEGER@
@@ -544,6 +555,7 @@ STATIC_EXEC = @STATIC_EXEC@
STATIC_SHARED = @STATIC_SHARED@
STRICT_FORMAT_CHECKS = @STRICT_FORMAT_CHECKS@
STRIP = @STRIP@
+SYMBOLS = @SYMBOLS@
TESTPARALLEL = @TESTPARALLEL@
THREADSAFE = @THREADSAFE@
TIME = @TIME@
@@ -585,6 +597,7 @@ docdir = $(exec_prefix)/doc
dvidir = @dvidir@
enable_shared = @enable_shared@
enable_static = @enable_static@
+examplesdir = @examplesdir@
exec_prefix = @exec_prefix@
fortran_linux_linker_option = @fortran_linux_linker_option@
host = @host@
@@ -673,26 +686,26 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2
# See libtool versioning documentation online.
# After making changes, run bin/reconfigure to update other configure related
# files like Makefile.in.
-LT_VERS_INTERFACE = 13
-LT_VERS_REVISION = 2
-LT_VERS_AGE = 3
+LT_VERS_INTERFACE = 14
+LT_VERS_REVISION = 0
+LT_VERS_AGE = 4
LT_CXX_VERS_INTERFACE = 16
-LT_CXX_VERS_REVISION = 0
+LT_CXX_VERS_REVISION = 1
LT_CXX_VERS_AGE = 0
LT_F_VERS_INTERFACE = 10
-LT_F_VERS_REVISION = 6
+LT_F_VERS_REVISION = 7
LT_F_VERS_AGE = 0
LT_HL_VERS_INTERFACE = 12
-LT_HL_VERS_REVISION = 2
+LT_HL_VERS_REVISION = 3
LT_HL_VERS_AGE = 2
LT_HL_CXX_VERS_INTERFACE = 12
-LT_HL_CXX_VERS_REVISION = 2
+LT_HL_CXX_VERS_REVISION = 3
LT_HL_CXX_VERS_AGE = 1
LT_HL_F_VERS_INTERFACE = 10
-LT_HL_F_VERS_REVISION = 5
+LT_HL_F_VERS_REVISION = 6
LT_HL_F_VERS_AGE = 0
LT_TOOLS_VERS_INTERFACE = 10
-LT_TOOLS_VERS_REVISION = 7
+LT_TOOLS_VERS_REVISION = 8
LT_TOOLS_VERS_AGE = 0
# This is our main target
@@ -711,11 +724,11 @@ libhdf5_hl_cpp_la_LIBADD = $(LIBH5_HL) $(LIBH5CPP)
# Public headers
include_HEADERS = H5PacketTable.h
-# Automake needs to be taught how to build lib, dyn, progs, and tests targets.
+# Automake needs to be taught how to build lib, progs and tests targets.
# These will be filled in automatically for the most part (e.g.,
# lib_LIBRARIES are built for lib target), but EXTRA_LIB, EXTRA_PROG, and
# EXTRA_TEST variables are supplied to allow the user to force targets to
-# be built at certain times.
+# be built at certain times.
LIB = $(lib_LIBRARIES) $(lib_LTLIBRARIES) $(noinst_LIBRARIES) \
$(noinst_LTLIBRARIES) $(check_LIBRARIES) $(check_LTLIBRARIES) $(EXTRA_LIB)
@@ -1230,6 +1243,7 @@ uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES
help:
@$(top_srcdir)/bin/makehelp
+
# lib/progs/tests targets recurse into subdirectories. build-* targets
# build files in this directory.
build-lib: $(LIB)
@@ -1265,7 +1279,7 @@ all-local: $(EXTRA_LIB) $(EXTRA_PROG) $(chk_TESTS)
# make install-doc doesn't do anything outside of doc directory, but
# Makefiles should recognize it.
# UPDATE: docs no longer reside in this build tree, so this target
-# is depreciated.
+# is deprecated.
install-doc uninstall-doc:
@echo "Nothing to be done."
@@ -1426,7 +1440,7 @@ build-check-p: $(LIB) $(PROGS) $(chk_TESTS)
echo "**** Hint ****"; \
echo "Parallel test files reside in the current directory" \
"by default."; \
- echo "Set HDF5_PARAPREFIX to use another directory. E.g.,"; \
+ echo "Set HDF5_PARAPREFIX to use another directory. e.g.,"; \
echo " HDF5_PARAPREFIX=/PFS/user/me"; \
echo " export HDF5_PARAPREFIX"; \
echo " make check"; \