//-------------------------------------------------------------------------- // Function: CommonFG::move ///\brief Renames an object at this location. ///\param src - IN: Object's original name ///\param dst - IN: Object's new name ///\exception H5::FileIException or H5::GroupIException ///\note /// Exercise care in moving groups as it is possible to render /// data in a file inaccessible with Group::move. Please refer /// to the Group Interface in the HDF5 User's Guide for details at: /// http://www.hdfgroup.org/HDF5/doc/UG/UG_frame09Groups.html // Programmer Binh-Minh Ribler - 2000 // Modification // 2007: QAK modified to use H5L APIs - BMR //-------------------------------------------------------------------------- void CommonFG::move( const char* src, const char* dst ) const { herr_t ret_value = H5Lmove( getLocId(), src, H5L_SAME_LOC, dst, H5P_DEFAULT, H5P_DEFAULT ); if( ret_value < 0 ) { throwException("move", "H5Lmove failed"); } }
void hdf5_h5l_move(value src_loc_v, value src_name_v, value dest_loc_v, value lcpl_v, value lapl_v, value dest_name_v) { CAMLparam5(src_loc_v, src_name_v, dest_loc_v, lcpl_v, lapl_v); CAMLxparam1(dest_name_v); raise_if_fail(H5Lmove(Hid_val(src_loc_v), String_val(src_name_v), Hid_val(dest_loc_v), String_val(dest_name_v), H5P_opt_val(lcpl_v), H5P_opt_val(lapl_v))); CAMLreturn0; }
/* * Class: hdf_hdf5lib_H5 * Method: H5Lmove * Signature: (JLjava/lang/String;JLjava/lang/String;JJ)V */ JNIEXPORT void JNICALL Java_hdf_hdf5lib_H5_H5Lmove (JNIEnv *env, jclass clss, jlong cur_loc_id, jstring cur_name, jlong dst_loc_id, jstring dst_name, jlong create_id, jlong access_id) { herr_t status = -1; const char *lCurName; const char *lDstName; PIN_JAVA_STRING_TWO(cur_name, lCurName, dst_name, lDstName); if (lCurName != NULL && lDstName != NULL) { status = H5Lmove((hid_t)cur_loc_id, lCurName, (hid_t)dst_loc_id, lDstName, (hid_t)create_id, (hid_t)access_id); UNPIN_JAVA_STRING_TWO(cur_name, lCurName, dst_name, lDstName); if (status < 0) h5libraryError(env); } } /* end Java_hdf_hdf5lib_H5_H5Lmove */
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void DataContainerReader::readData(bool preflight, DataContainerArrayProxy& proxy, DataContainerArray::Pointer dca) { setErrorCondition(0); QString ss; int32_t err = 0; QString m_FileVersion; float fVersion = 0.0f; bool check = false; // qDebug() << "DataContainerReader::readData() " << m_InputFile; // Read the Meta Data and Array names from the file hid_t fileId = QH5Utilities::openFile(m_InputFile, true); // Open the file Read Only if (fileId < 0) { ss = QObject::tr("Error opening input file '%1'").arg(m_InputFile); setErrorCondition(-150); notifyErrorMessage(getHumanLabel(), ss, getErrorCondition()); return; } // This will make sure if we return early from this method that the HDF5 File is properly closed. HDF5ScopedFileSentinel scopedFileSentinel(&fileId, true); // Check to see if version of .dream3d file is prior to new data container names err = QH5Lite::readStringAttribute(fileId, "/", DREAM3D::HDF5::FileVersionName, m_FileVersion); fVersion = m_FileVersion.toFloat(&check); if (fVersion < 5.0 || err < 0) { QH5Utilities::closeFile(fileId); fileId = QH5Utilities::openFile(m_InputFile, false); // Re-Open the file as Read/Write err = H5Lmove(fileId, "VoxelDataContainer", fileId, DREAM3D::Defaults::DataContainerName.toLatin1().data(), H5P_DEFAULT, H5P_DEFAULT); err = H5Lmove(fileId, "SurfaceMeshDataContainer", fileId, DREAM3D::Defaults::DataContainerName.toLatin1().data(), H5P_DEFAULT, H5P_DEFAULT); err = QH5Lite::writeStringAttribute(fileId, "/", DREAM3D::HDF5::FileVersionName, "5.0"); QH5Utilities::closeFile(fileId); fileId = QH5Utilities::openFile(m_InputFile, true); // Re-Open the file as Read Only } if (fVersion < 7.0) { ss = QObject::tr("File unable to be read - file structure older than 7.0"); setErrorCondition(-250); notifyErrorMessage(getHumanLabel(), ss, getErrorCondition()); return; } hid_t dcaGid = H5Gopen(fileId, DREAM3D::StringConstants::DataContainerGroupName.toLatin1().data(), 0); if (dcaGid < 0) { setErrorCondition(-1923123); QString ss = QObject::tr("Error attempting to open the HDF5 Group '%1'").arg(DREAM3D::StringConstants::DataContainerGroupName); notifyErrorMessage(getHumanLabel(), ss, getErrorCondition()); return; } scopedFileSentinel.addGroupId(&dcaGid); err = dca->readDataContainersFromHDF5(preflight, dcaGid, proxy, this); if (err < 0) { setErrorCondition(err); QString ss = QObject::tr("Error trying to read the DataContainers from the file '%1'").arg(getInputFile()); notifyErrorMessage(getHumanLabel(), ss, getErrorCondition()); } err = H5Gclose(dcaGid); dcaGid = -1; err = readDataContainerBundles(fileId, dca); if (err < 0) { setErrorCondition(err); QString ss = QObject::tr("Error trying to read the DataContainerBundles from the file '%1'").arg(getInputFile()); notifyErrorMessage(getHumanLabel(), ss, getErrorCondition()); } if (!getInPreflight()) { err = readExistingPipelineFromFile(fileId); if(err < 0) { setErrorCondition(err); QString ss = QObject::tr("Error trying to read the existing pipeline from the file '%1'").arg(getInputFile()); notifyErrorMessage(getHumanLabel(), ss, getErrorCondition()); } } }