Skip to content

Commit

Permalink
Adds ability to save/load arrays of char/uchar
Browse files Browse the repository at this point in the history
  • Loading branch information
sebjameswml committed Nov 27, 2023
1 parent cc424de commit e55964a
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions morph/HdfData.h
Original file line number Diff line number Diff line change
Expand Up @@ -514,12 +514,18 @@ namespace morph {
} else if constexpr (std::is_same<std::decay_t<T>, int>::value == true) {
status = H5Dread (dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, char>::value == true) {
status = H5Dread (dataset_id, H5T_NATIVE_CHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, long long int>::value == true) {
status = H5Dread (dataset_id, H5T_NATIVE_LLONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, unsigned int>::value == true) {
status = H5Dread (dataset_id, H5T_NATIVE_UINT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, unsigned char>::value == true) {
status = H5Dread (dataset_id, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));

} else if constexpr (std::is_same<typename std::decay<T>::type, unsigned long long int>::value == true) {
status = H5Dread (dataset_id, H5T_NATIVE_ULLONG, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));
} else {
Expand Down Expand Up @@ -851,6 +857,11 @@ namespace morph {
this->check_dataset_space_1_dim (dataset_id, N);
status = H5Dwrite (dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, char>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_U64LE, dataspace_id);
this->check_dataset_space_1_dim (dataset_id, N);
status = H5Dwrite (dataset_id, H5T_NATIVE_CHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, long long int>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_I64LE, dataspace_id);
this->check_dataset_space_1_dim (dataset_id, N);
Expand All @@ -861,6 +872,11 @@ namespace morph {
this->check_dataset_space_1_dim (dataset_id, N);
status = H5Dwrite (dataset_id, H5T_NATIVE_UINT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, unsigned char>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_U64LE, dataspace_id);
this->check_dataset_space_1_dim (dataset_id, N);
status = H5Dwrite (dataset_id, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(vals[0]));

} else if constexpr (std::is_same<typename std::decay<T>::type, unsigned long long int>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_U64LE, dataspace_id);
this->check_dataset_space_1_dim (dataset_id, N);
Expand Down Expand Up @@ -988,6 +1004,11 @@ namespace morph {
this->check_dataset_space_1_dim (dataset_id, vals.size());
status = H5Dwrite (dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(outvals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, char>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_I64LE, dataspace_id);
this->check_dataset_space_1_dim (dataset_id, vals.size());
status = H5Dwrite (dataset_id, H5T_NATIVE_CHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(outvals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, int>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_I64LE, dataspace_id);
this->check_dataset_space_1_dim (dataset_id, vals.size());
Expand All @@ -1003,6 +1024,11 @@ namespace morph {
this->check_dataset_space_1_dim (dataset_id, vals.size());
status = H5Dwrite (dataset_id, H5T_NATIVE_UINT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(outvals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, unsigned char>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_U64LE, dataspace_id);
this->check_dataset_space_1_dim (dataset_id, vals.size());
status = H5Dwrite (dataset_id, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(outvals[0]));

} else if constexpr (std::is_same<typename std::decay<T>::type, unsigned long long int>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_U64LE, dataspace_id);
this->check_dataset_space_1_dim (dataset_id, vals.size());
Expand Down Expand Up @@ -1119,6 +1145,11 @@ namespace morph {
this->check_dataset_space_2_dims (dataset_id, sz, N);
status = H5Dwrite (dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(outvals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, char>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_I64LE, dataspace_id);
this->check_dataset_space_2_dims (dataset_id, sz, N);
status = H5Dwrite (dataset_id, H5T_NATIVE_CHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(outvals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, long long int>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_I64LE, dataspace_id);
this->check_dataset_space_2_dims (dataset_id, sz, N);
Expand All @@ -1129,6 +1160,11 @@ namespace morph {
this->check_dataset_space_2_dims (dataset_id, sz, N);
status = H5Dwrite (dataset_id, H5T_NATIVE_UINT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(outvals[0]));

} else if constexpr (std::is_same<std::decay_t<T>, unsigned char>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_U64LE, dataspace_id);
this->check_dataset_space_2_dims (dataset_id, sz, N);
status = H5Dwrite (dataset_id, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, H5P_DEFAULT, &(outvals[0]));

} else if constexpr (std::is_same<typename std::decay<T>::type, unsigned long long int>::value == true) {
dataset_id = this->open_dataset (path, H5T_STD_U64LE, dataspace_id);
this->check_dataset_space_2_dims (dataset_id, sz, N);
Expand Down

0 comments on commit e55964a

Please sign in to comment.