Field3D
|
Contains the Field3DFile classesOSS sanitized. More...
#include <list>
#include <string>
#include <vector>
#include <hdf5.h>
#include <boost/intrusive_ptr.hpp>
#include "EmptyField.h"
#include "Field.h"
#include "FieldMetadata.h"
#include "ClassFactory.h"
#include "Hdf5Util.h"
#include "ns.h"
Go to the source code of this file.
Classes | |
class | Field3DFileBase |
struct | Field3DFileBase::LayerInfo |
class | Field3DInputFile |
Provides reading of .f3d (internally, hdf5) files.Refer to using_files for examples of how to use this in your code. More... | |
class | Field3DOutputFile |
Provides writing of .f3d (internally, hdf5) files. More... | |
class | File::Layer |
class | File::Partition |
struct | InputFile::ParseLayersInfo |
struct used to pass the class and partition info back to the parseLayers() callback More... | |
Namespaces | |
namespace | File |
Namespace for file I/O specifics. | |
namespace | InputFile |
Namespace for file input specifics. | |
Functions | |
herr_t | InputFile::parseLayers (hid_t loc_id, const char *partitionName, const H5L_info_t *linfo, void *opdata) |
Gets called from readPartitionAndLayerInfo to check each group found under the root of the file. It checks to see if it can find a "partition" and then passes that to writePartition. | |
herr_t | InputFile::parsePartitions (hid_t loc_id, const char *partitionName, const H5L_info_t *linfo, void *opdata) |
Gets called from readPartitionAndLayerInfo to check each group found under the root of the file. It checks to see if it can find a "partition" and then passes that to writePartition. | |
classFactory IO functions | |
template<class Data_T > | |
Field< Data_T >::Ptr | readField (const std::string &className, hid_t layerGroup, const std::string &filename, const std::string &layerPath) |
This function creates a FieldIO instance based on className which then reads the field data from layerGroup location. | |
bool | writeField (hid_t layerGroup, FieldBase::Ptr field) |
This function creates a FieldIO instance based on field->className() which then writes the field data in layerGroup location. | |
FieldMapping::Ptr | readFieldMapping (hid_t mappingGroup) |
This function creates a FieldMappingIO instance based on className read from mappingGroup location which then reads FieldMapping data. | |
bool | writeFieldMapping (hid_t mappingGroup, FieldMapping::Ptr mapping) |
This function creates a FieldMappingIO instance based on mapping->className() which then writes FieldMapping data to mappingGroup location. |
Field< Data_T >::Ptr readField | ( | const std::string & | className, |
hid_t | layerGroup, | ||
const std::string & | filename, | ||
const std::string & | layerPath | ||
) |
This function creates a FieldIO instance based on className which then reads the field data from layerGroup location.
Definition at line 1576 of file Field3DFile.h.
References ClassFactory::createFieldIO(), field_dynamic_cast(), Msg::print(), Msg::SevWarning, and ClassFactory::singleton().
{ ClassFactory &factory = ClassFactory::singleton(); typedef typename Field<Data_T>::Ptr FieldPtr; FieldIO::Ptr io = factory.createFieldIO(className); assert(io != 0); if (!io) { Msg::print(Msg::SevWarning, "Unable to find class type: " + className); return FieldPtr(); } DataTypeEnum typeEnum = DataTypeTraits<Data_T>::typeEnum(); FieldBase::Ptr field = io->read(layerGroup, filename, layerPath, typeEnum); if (!field) { // We don't need to print a message, because it could just be that // a layer of the specified data type and name couldn't be found return FieldPtr(); } FieldPtr result = field_dynamic_cast<Field<Data_T> >(field); if (result) return result; return FieldPtr(); }
bool writeField | ( | hid_t | layerGroup, |
FieldBase::Ptr | field | ||
) |
This function creates a FieldIO instance based on field->className() which then writes the field data in layerGroup location.
Definition at line 1558 of file Field3DFile.cpp.
References ClassFactory::createFieldIO(), Msg::print(), Msg::SevWarning, ClassFactory::singleton(), and Hdf5Util::writeAttribute().
Referenced by Field3DOutputFile::writeLayer().
{ ClassFactory &factory = ClassFactory::singleton(); FieldIO::Ptr io = factory.createFieldIO(field->className()); assert(io != 0); if (!io) { Msg::print(Msg::SevWarning, "Unable to find class type: " + field->className()); return false; } // Add class name attribute if (!writeAttribute(layerGroup, k_classNameAttrName, field->className())) { Msg::print(Msg::SevWarning, "Error adding class name attribute."); return false; } return io->write(layerGroup, field); }
FieldMapping::Ptr readFieldMapping | ( | hid_t | mappingGroup | ) |
This function creates a FieldMappingIO instance based on className read from mappingGroup location which then reads FieldMapping data.
Definition at line 1582 of file Field3DFile.cpp.
References ClassFactory::createFieldMappingIO(), Msg::print(), Hdf5Util::readAttribute(), Msg::SevWarning, and ClassFactory::singleton().
Referenced by Field3DInputFile::readPartitionAndLayerInfo().
{ ClassFactory &factory = ClassFactory::singleton(); std::string className; if (!readAttribute(mappingGroup, k_mappingTypeAttrName, className)) { Msg::print(Msg::SevWarning, "Couldn't find " + k_mappingTypeAttrName + " attribute"); return FieldMapping::Ptr(); } FieldMappingIO::Ptr io = factory.createFieldMappingIO(className); assert(io != 0); if (!io) { Msg::print(Msg::SevWarning, "Unable to find class type: " + className); return FieldMapping::Ptr(); } FieldMapping::Ptr mapping = io->read(mappingGroup); if (!mapping) { Msg::print(Msg::SevWarning, "Couldn't read mapping"); return FieldMapping::Ptr(); } return mapping; }
bool writeFieldMapping | ( | hid_t | mappingGroup, |
FieldMapping::Ptr | mapping | ||
) |
This function creates a FieldMappingIO instance based on mapping->className() which then writes FieldMapping data to mappingGroup location.
Definition at line 1614 of file Field3DFile.cpp.
References ClassFactory::createFieldMappingIO(), Msg::print(), Msg::SevWarning, ClassFactory::singleton(), and Hdf5Util::writeAttribute().
Referenced by Field3DOutputFile::writeMapping().
{ ClassFactory &factory = ClassFactory::singleton(); std::string className = mapping->className(); if (!writeAttribute(mappingGroup, k_mappingTypeAttrName, className)) { Msg::print(Msg::SevWarning, "Couldn't add " + className + " attribute"); return false; } FieldMappingIO::Ptr io = factory.createFieldMappingIO(className); assert(io != 0); if (!io) { Msg::print(Msg::SevWarning, "Unable to find class type: " + className); return false; } return io->write(mappingGroup, mapping); }