From a69de57081731b66dcf705ec9c0eb2b5bfb2dbe5 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Mon, 12 Feb 2018 13:14:40 +0100 Subject: [PATCH] Add 64bit integer support --- src/H5Format.cpp | 10 ++++++++-- src/ZmqReceiver.cpp | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/H5Format.cpp b/src/H5Format.cpp index 54d1b02..599ee49 100644 --- a/src/H5Format.cpp +++ b/src/H5Format.cpp @@ -93,8 +93,11 @@ const H5::PredType& H5FormatUtils::get_dataset_data_type(const string& type) } else if (type == "uint32") { return H5::PredType::NATIVE_UINT32; + + } else if (type == "uint64") { + return H5::PredType::NATIVE_UINT64; - }if (type == "int8") { + } else if (type == "int8") { return H5::PredType::NATIVE_INT8; } else if (type == "int16") { @@ -103,10 +106,13 @@ const H5::PredType& H5FormatUtils::get_dataset_data_type(const string& type) } else if (type == "int32") { return H5::PredType::NATIVE_INT32; + } else if (type == "int64") { + return H5::PredType::NATIVE_INT64; + } else { // We cannot really convert this attribute. stringstream error_message; - error_message << "[H5FormatUtils::get_dataset_data_type] Unsupported array data_type " << type << endl; + error_message << "[H5FormatUtils::get_dataset_data_type] Unsupported dataset data_type " << type << endl; throw runtime_error(error_message.str()); } diff --git a/src/ZmqReceiver.cpp b/src/ZmqReceiver.cpp index f265150..4c902a0 100644 --- a/src/ZmqReceiver.cpp +++ b/src/ZmqReceiver.cpp @@ -84,7 +84,10 @@ shared_ptr ZmqReceiver::get_value_from_json(const pt::ptree& json_header, } else if (type == "uint32") { return shared_ptr(reinterpret_cast(new uint32_t(json_header.get(name)))); - }if (type == "int8") { + } else if (type == "uint64") { + return shared_ptr(reinterpret_cast(new uint64_t(json_header.get(name)))); + + } else if (type == "int8") { return shared_ptr(reinterpret_cast(new int8_t(json_header.get(name)))); } else if (type == "int16") { @@ -92,7 +95,10 @@ shared_ptr ZmqReceiver::get_value_from_json(const pt::ptree& json_header, } else if (type == "int32") { return shared_ptr(reinterpret_cast(new int32_t(json_header.get(name)))); - + + } else if (type == "int64") { + return shared_ptr(reinterpret_cast(new int64_t(json_header.get(name)))); + } else if (type == "float32") { return shared_ptr(reinterpret_cast(new float(json_header.get(name))));