80 #ifndef END_POINT_HDF5_H
81 #define END_POINT_HDF5_H
94 #define HDF5_ENABLE_MPI_IO 0
95 #define HDF5_DISABLE_MPI_IO 1
96 #define HDF5_ENABLE_COLLECTIVE_IO 2
97 #define HDF5_DISABLE_COLLECTIVE_IO 3
100 #define OP_ENABLE_MPI_IO HDF5_ENABLE_MPI_IO
101 #define OP_DISABLE_MPI_IO HDF5_DISABLE_MPI_IO
102 #define OP_ENABLE_COLLECTIVE_IO HDF5_ENABLE_COLLECTIVE_IO
103 #define OP_DISABLE_COLLECTIVE_IO HDF5_DISABLE_COLLECTIVE_IO
110 hid_t fid = -1, gid = -1, did = -1;
111 hid_t dataspace_id = -1;
112 std::string fn_str, gn_str, dn_str;
113 hid_t plist_id = H5P_DEFAULT, plist_cio_id = H5P_DEFAULT;
114 hid_t mem_type, disk_type;
115 bool is_mpi_enabled =
false;
132 is_mpi_enabled =
true;
145 is_mpi_enabled =
true;
208 int Read(std::vector<unsigned long long> start, std::vector<unsigned long long> end,
void *data)
override;
218 int Write(std::vector<unsigned long long> start, std::vector<unsigned long long> end,
void *data)
override;
225 int Close()
override;
260 int Control(
int opt_code, std::vector<std::string> ¶meter_v)
override;
269 int WriteAttribute(
const std::string &name,
const void *data,
FTDataType data_type_p,
const size_t &data_length_p = 0)
override;
286 int ReadAttribute(
const std::string &name,
void *data,
FTDataType data_type_p,
const size_t &data_length_p = 0)
override;
Definition: ft_endpoint_hdf5.h:108
int ParseEndpointInfo() override
parse endpoint_info to my own info In HDF5, it map endpoint_info to filename, group name and datasetn...
Definition: ft_endpoint_hdf5.cpp:523
int GetAttributeSize(const std::string &name, FTDataType data_type_p) override
Definition: ft_endpoint_hdf5.cpp:762
int ReadAllAttributeName(std::vector< std::string > &attr_name)
Read all attribute name.
Definition: ft_endpoint_hdf5.cpp:613
int Create() override
create the endpoint
Definition: ft_endpoint_hdf5.cpp:97
~EndpointHDF5()
Definition: ft_endpoint_hdf5.h:164
EndpointHDF5()
Construct a new Endpoint in HDF5 Nothing to do there, can be used as sub-endpoint of directory.
Definition: ft_endpoint_hdf5.h:138
int PrintInfo() override
print information about the endpoint
Definition: ft_endpoint_hdf5.cpp:406
int WriteAttribute(const std::string &name, const void *data, FTDataType data_type_p, const size_t &data_length_p=0) override
Set the Attribute object.
Definition: ft_endpoint_hdf5.cpp:651
EndpointHDF5(int no_mpi)
Construct a new EndpointHDF5 object without MPI.
Definition: ft_endpoint_hdf5.h:153
void Map2MyType() override
call the finalize to close everything (like call Destractor)
Definition: ft_endpoint_hdf5.cpp:412
void Map2MyTypeParameters(FTDataType ft_type, hid_t &mem_type, hid_t &disk_type)
Definition: ft_endpoint_hdf5.cpp:467
int ReadAttribute(const std::string &name, void *data, FTDataType data_type_p, const size_t &data_length_p=0) override
Get the Attribute object.
Definition: ft_endpoint_hdf5.cpp:706
void DisableMPIIO()
Definition: ft_endpoint_hdf5.cpp:398
int Write(std::vector< unsigned long long > start, std::vector< unsigned long long > end, void *data) override
write the data to the end-point
Definition: ft_endpoint_hdf5.cpp:272
int Control(int opt_code, std::vector< std::string > ¶meter_v) override
call a special operator on endpoint such as, enable collective I/O for HDF5 dump file from MEMORY to ...
Definition: ft_endpoint_hdf5.cpp:584
int Read(std::vector< unsigned long long > start, std::vector< unsigned long long > end, void *data) override
read the data from end-point
Definition: ft_endpoint_hdf5.cpp:225
void DisableCollectiveIO() override
Definition: ft_endpoint_hdf5.cpp:382
int ExtractMeta() override
extracts metadata, possbile endpoint_ranks/endpoint_dim_size/data_element_type
Definition: ft_endpoint_hdf5.cpp:82
int Close() override
close the end-point
Definition: ft_endpoint_hdf5.cpp:342
int CreateXDMF()
Definition: ft_endpoint_hdf5.cpp:823
void EnableMPIIO()
Definition: ft_endpoint_hdf5.cpp:390
int Open() override
open the endpoint
Definition: ft_endpoint_hdf5.cpp:177
void EnableCollectiveIO() override
Definition: ft_endpoint_hdf5.cpp:373
EndpointHDF5(std::string endpoint_info_p)
Construct a new EndpointHDF5 object.
Definition: ft_endpoint_hdf5.h:123
Define the class for the Endpoint used by ArrayUDF to store the data. It contains basic infomation fo...
Definition: ft_endpoint.h:106
void SetEndpointType(AuEndpointType endpoint_type_p)
Set the Endpoint Type object.
Definition: ft_endpoint.cpp:355
void SetOpenFlag(bool open_flag_p)
Definition: ft_endpoint.cpp:156
std::string endpoint_info
Definition: ft_endpoint.h:109
void SetRwFlag(unsigned read_write_flag_p)
Definition: ft_endpoint.cpp:171
@ EP_HDF5
Definition: ft_type.h:96
AuEndpointDataType
Definition: ft_type.h:118