95 Write (
const NDData<T>& data,
const std::string& urn,
const std::string& url =
"") {
100 H5::Exception::dontPrint();
103 std::vector<hsize_t> dims(data.NDim());
104 for (
int i = 0; i < data.NDim(); i++)
105 dims[i] = data.Dim(i);
112 group = m_file.openGroup(url);
114 printf (
"Group %s opened for writing\n", url.c_str()) ;
116 }
catch (
const H5::Exception& e) {
117 group = CreateGroup (url);
120 H5::DataSpace dspace (data.NDim(), dims.data());
122 H5::DataSet dset = group.createDataSet(urn, dtype, dspace);
124 dset.write(data.Ptr(), dtype);
129 }
catch (
const H5::FileIException& e) {
131 }
catch (
const H5::GroupIException& e) {
133 }
catch (
const H5::DataSetIException& e) {
135 }
catch (
const H5::DataSpaceIException& e) {
137 }
catch (
const H5::DataTypeIException& e) {
183 if (m_status != IO::OK)
186 if (m_mode == IO::IN) {
188 m_file = H5::H5File (m_fname, H5F_ACC_RDONLY);
189 }
catch (
const H5::FileIException& e) {
190 printf (
"\n Error: cannot open file %s!", m_fname.c_str());
191 m_status = IO::FILE_NOT_FOUND;
194 printf (
"\nFile %s opened for RO\n", m_fname.c_str());
196 }
else if (m_mode == IO::OUT) {
199 m_file = H5::H5File (m_fname, H5F_ACC_TRUNC);
201 printf (
"\nFile %s opened for RW\n", m_fname.c_str());
203 }
catch (
const H5::Exception& e) {
204 m_file = H5::H5File (m_fname, H5F_ACC_RDWR);
206 printf (
"\nFile %s created for RW\n", m_fname.c_str());
209 }
else if (m_mode == IO::APPEND) {
211 m_file = H5::H5File (m_fname, H5F_ACC_RDWR);
213 printf (
"\nFile %s created for RW\n", m_fname.c_str());
215 }
catch (
const H5::Exception& e) {
216 printf (
"\nOops!\n");