Reader/writer of EnSight Case file. More...
#include <MEDMEM_EnsightUtils.hxx>
Data Structures | |
| struct | _FileSet |
| struct | _Model |
| struct | _TimeSet |
| struct | _Variable |
Public Member Functions | |
| _CaseFileDriver (const string &fileName, const _CaseFileDriver_User *creator) | |
| Case file driver constructor. | |
| ~_CaseFileDriver () | |
| Case file driver destructor. | |
| void | read () throw (MEDEXCEPTION) |
| Read Case file. | |
| int | getNbMeshes () const |
| sets all data necessary for meshDriver.read() | |
| void | setDataFileName (const int meshIndex, ENSIGHT_MESH_RDONLY_DRIVER *meshDriver) |
| Sets all data necessary for meshDriver.read() | |
| int | getNbVariables () const |
| Return nb of ensight variables. | |
| int | getNbVarSteps (const int variableIndex) |
| return variable index by variable name, return 0 if none found | |
| int | getVariableIndex (const string &varName) const |
| sets all data necessary for fieldDriver.read(), returns meshIndex | |
| int | setDataFileName (const int varIndex, const int stepIndex, ENSIGHT_FIELD_RDONLY_DRIVER *fieldDriver) |
| sets all data necessary for fieldDriver.read() | |
| void | addMesh (const ENSIGHT_MESH_WRONLY_DRIVER *meshDriver) |
| < add a mesh to the Case file | |
| void | addField (const ENSIGHT_FIELD_WRONLY_DRIVER *fieldDriver) |
| write and set necessary data to added drivers | |
| void | write () throw (MEDEXCEPTION) |
| writing Case file | |
Private Types | |
| typedef std::map< std::string, std::list < ENSIGHT_FIELD_WRONLY_DRIVER * > > | TFieldDriversByName |
Private Member Functions | |
| bool | checkWasRead () const throw (MEDEXCEPTION) |
| < throw if Case file has not been read else return false | |
| int | fixWildCardName (const int timeStep, const std::string &ts, const std::string &fs, std::string &fileName, std::string &time) |
| replace '*' in file name if any and return index in file | |
Private Attributes | |
| std::string | _fileName |
| std::string | _directory |
| EnSightFormat | _format |
| _Model | _model |
| std::map< int, _Variable > | _variables |
| map order number to variable data | |
| std::map< int, _TimeSet > | _timeSets |
| map ts to time set data | |
| std::map< int, _FileSet > | _fileSets |
| map fs to file set data | |
| const _CaseFileDriver_User * | _user |
| mesh/field driver | |
| std::list < ENSIGHT_MESH_WRONLY_DRIVER * > | _meshDrivers |
| added meshes | |
| TFieldDriversByName | _fieldDrivers |
| added field drivers groupped by name | |
| bool | _blocked |
Reader/writer of EnSight Case file.
Apart from it's major job, it o assures cooperation of MED and Mesh/Field drivers so that the Case file created by MED driver is not overwritten by Mesh driver called by MED driver.
typedef std::map<std::string, std::list< ENSIGHT_FIELD_WRONLY_DRIVER* > > MEDMEM_ENSIGHT._CaseFileDriver.TFieldDriversByName [private] |
| MEDMEM_ENSIGHT._CaseFileDriver::_CaseFileDriver | ( | const string & | fileName, |
| const _CaseFileDriver_User * | creator | ||
| ) |
Case file driver constructor.
References MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._directory, MEDMEM_ENSIGHT._CaseFileDriver._fileName, MEDMEM_ENSIGHT._CaseFileDriver._format, FILE_SEPARATOR, MEDMEM.GENDRIVER.getAccessMode(), MEDMEM.getEnSightFormatForWriting(), MEDMEM_ENSIGHT.isToIgnore(), and MED_EN.RDONLY.
| MEDMEM_ENSIGHT._CaseFileDriver::~_CaseFileDriver | ( | ) |
Case file driver destructor.
References MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._user, and MEDMEM_ENSIGHT.unregister().
| void MEDMEM_ENSIGHT._CaseFileDriver::read | ( | void | ) | throw (MEDEXCEPTION) |
Read Case file.
References _ATOF, _ATOI, MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._Model._change_coords_only, MEDMEM_ENSIGHT._CaseFileDriver._directory, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._fileIndex, MEDMEM_ENSIGHT._CaseFileDriver._Model._fileName, MEDMEM_ENSIGHT._CaseFileDriver._fileName, MEDMEM_ENSIGHT._CaseFileDriver._Variable._fileNameOrData, MEDMEM_ENSIGHT._CaseFileDriver._Model._fileSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._Variable._fileSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._fileSets, MEDMEM_ENSIGHT._CaseFileDriver._format, MEDMEM_ENSIGHT._CaseFileDriver._model, MEDMEM_ENSIGHT._CaseFileDriver._Variable._name, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._number, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._times, MEDMEM_ENSIGHT._CaseFileDriver._Model._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._Variable._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._timeSets, MEDMEM_ENSIGHT._CaseFileDriver._Variable._type, MEDMEM_ENSIGHT._CaseFileDriver._user, MEDMEM_ENSIGHT._CaseFileDriver._variables, MEDMEM_ENSIGHT._CaseFileDriver_User.canOpenFile(), MEDMEM_ENSIGHT.contains(), MEDMEM.ENSIGHT_6, MEDMEM.ENSIGHT_GOLD, MEDMEM_ENSIGHT._ASCIIFileReader.eof(), FILE_SEPARATOR, Med_Gen_test.fileName, MEDMEM_ENSIGHT._ASCIIFileReader.getLine(), MEDMEM_ENSIGHT._ASCIIFileReader.getWord(), medClient_test.index, MEDMEM_ENSIGHT._ASCIIFileReader.isDigit(), MEDMEM_ENSIGHT.isValidIndex(), TestMedCorba2.n, RAISE_EXCEPTION, MED_EN.RDONLY, READ_NEXT_LINE, TestMedCorba7.s, MEDMEM_ENSIGHT._ASCIIFileReader.split(), INTERP_KERNEL.swap(), medClient_test.type, and batchmode_medcorba_test.value.
| int MEDMEM_ENSIGHT._CaseFileDriver::getNbMeshes | ( | ) | const |
sets all data necessary for meshDriver.read()
return number of time steps of a model
References _ATOI, MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._fileName, MEDMEM_ENSIGHT._CaseFileDriver._model, MEDMEM_ENSIGHT._CaseFileDriver._Model._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._timeSets, and MEDMEM_ENSIGHT._CaseFileDriver.checkWasRead().
| void MEDMEM_ENSIGHT._CaseFileDriver::setDataFileName | ( | const int | meshIndex, |
| ENSIGHT_MESH_RDONLY_DRIVER * | meshDriver | ||
| ) |
Sets all data necessary for meshDriver.read()
| meshIndex | - time step index |
| meshDriver | - driver |
References MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._directory, MEDMEM_ENSIGHT._CaseFileDriver._fileName, MEDMEM_ENSIGHT._CaseFileDriver._Model._fileName, MEDMEM_ENSIGHT._CaseFileDriver._Model._fileSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._fileSets, MEDMEM_ENSIGHT._CaseFileDriver._format, MEDMEM_ENSIGHT._CaseFileDriver._model, MEDMEM_ENSIGHT._CaseFileDriver._Model._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver.checkWasRead(), MEDMEM.ENSIGHT_GOLD, FILE_SEPARATOR, MEDMEM_ENSIGHT._CaseFileDriver.fixWildCardName(), MEDMEM.ENSIGHT_MESH_DRIVER.getMesh(), MEDMEM_ENSIGHT.isToIgnore(), and MEDMEM.GMESH.setName().
| int MEDMEM_ENSIGHT._CaseFileDriver::getNbVariables | ( | ) | const |
Return nb of ensight variables.
References MEDMEM_ENSIGHT._CaseFileDriver._variables.
return variable index by variable name, return 0 if none found
return number of time steps of a variable
References _ATOI, MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._times, MEDMEM_ENSIGHT._CaseFileDriver._Variable._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._timeSets, MEDMEM_ENSIGHT._CaseFileDriver._variables, MEDMEM_ENSIGHT._CaseFileDriver.checkWasRead(), and MEDMEM_ENSIGHT.contains().
| int MEDMEM_ENSIGHT._CaseFileDriver::getVariableIndex | ( | const string & | varName | ) | const |
sets all data necessary for fieldDriver.read(), returns meshIndex
return variable index by variable name, return 0 if none found
References MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._variables, MEDMEM_ENSIGHT._CaseFileDriver.checkWasRead(), and MEDMEM_ENSIGHT.contains().
| int MEDMEM_ENSIGHT._CaseFileDriver::setDataFileName | ( | const int | varIndex, |
| const int | stepIndex, | ||
| ENSIGHT_FIELD_RDONLY_DRIVER * | fieldDriver | ||
| ) |
sets all data necessary for fieldDriver.read()
References _ATOF, _ATOI, MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._directory, MEDMEM_ENSIGHT._CaseFileDriver._fileName, MEDMEM_ENSIGHT._CaseFileDriver._Model._fileName, MEDMEM_ENSIGHT._CaseFileDriver._Variable._fileNameOrData, MEDMEM_ENSIGHT._CaseFileDriver._Variable._fileSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._fileSets, MEDMEM_ENSIGHT._CaseFileDriver._format, MEDMEM_ENSIGHT._CaseFileDriver._model, MEDMEM_ENSIGHT._CaseFileDriver._Variable._name, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._times, MEDMEM_ENSIGHT._CaseFileDriver._Model._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._Variable._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._timeSets, MEDMEM_ENSIGHT._CaseFileDriver._Variable._type, MEDMEM_ENSIGHT._CaseFileDriver._variables, MEDMEM_ENSIGHT._CaseFileDriver.checkWasRead(), MEDMEM_ENSIGHT.contains(), MEDMEM.ENSIGHT_GOLD, med_opsupp_test.entity, MEDMEM_ENSIGHT._ASCIIFileReader.eof(), MED_test2.field, FILE_SEPARATOR, MEDMEM_ENSIGHT._CaseFileDriver.fixWildCardName(), MEDMEM.ENSIGHT_FIELD_DRIVER.getField(), MEDMEM.FIELD_.getName(), MEDMEM.FIELD_.getSupport(), MEDMEM_ENSIGHT._ASCIIFileReader.getWord(), MEDMEM_ENSIGHT.isToIgnore(), LOCALIZED, MED_EN.MED_CELL, MED_EN.MED_NODE, MEDMEM.RCBASE.removeReference(), MEDMEM.FIELD_.setComponentsDescriptions(), MEDMEM.FIELD_.setComponentsNames(), MEDMEM.FIELD_.setComponentsUnits(), MEDMEM.ENSIGHT_FIELD_DRIVER.setConstantValue(), MEDMEM.SUPPORT.setEntity(), MEDMEM.FIELD_.setIterationNumber(), MEDMEM.FIELD_.setMEDComponentsUnits(), MEDMEM.FIELD_.setName(), MEDMEM.FIELD_.setNumberOfComponents(), MEDMEM.FIELD_.setSupport(), MEDMEM.FIELD_.setTime(), MEDMEM_ENSIGHT._ASCIIFileReader.split(), and batchmode_medcorba_test.value.
| void MEDMEM_ENSIGHT._CaseFileDriver::addMesh | ( | const ENSIGHT_MESH_WRONLY_DRIVER * | meshDriver | ) |
< add a mesh to the Case file
add a mesh to the Case file
add a field to the Case file
References MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._format, MEDMEM_ENSIGHT._CaseFileDriver._meshDrivers, MEDMEM_ENSIGHT.compatibilityPb(), MEDMEM.ENSIGHT_6, MEDMEM.GMESH.getName(), MEDMEM.GMESH.getNumberOfElements(), MEDMEM_ENSIGHT.isToIgnore(), MED_EN.MED_CELL, MED_EN.MED_FACE, MED_EN.MED_POLYGON, MED_EN.MED_POLYHEDRA, and MED_test2.mesh.
| void MEDMEM_ENSIGHT._CaseFileDriver::addField | ( | const ENSIGHT_FIELD_WRONLY_DRIVER * | fieldDriver | ) |
write and set necessary data to added drivers
add a field to the Case file
References MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._fieldDrivers, MEDMEM_ENSIGHT.compatibilityPb(), MED_test2.field, Med_Gen_test.fieldName, MEDMEM.ENSIGHT_FIELD_DRIVER.getField(), MEDMEM.ENSIGHT_FIELD_DRIVER.getFieldName(), MEDMEM.FIELD_.getGaussPresence(), MEDMEM.SUPPORT.getMesh(), MEDMEM.FIELD_.getName(), MEDMEM.FIELD_.getNumberOfComponents(), MEDMEM.FIELD_.getNumberOfValues(), MEDMEM.FIELD_.getSupport(), MEDMEM_ENSIGHT.ILLEGAL_FIELD_NAME_CHARACTERS, MEDMEM_ENSIGHT.isToIgnore(), and MED_test2.mesh.
| void MEDMEM_ENSIGHT._CaseFileDriver::write | ( | void | ) | throw (MEDEXCEPTION) |
writing Case file
References _ATOF, _ATOI, MEDMEM_ENSIGHT._CaseFileDriver._blocked, MEDMEM_ENSIGHT._CaseFileDriver._Model._change_coords_only, MEDMEM_ENSIGHT._CaseFileDriver_User._dataFileName, MEDMEM_ENSIGHT._CaseFileDriver._directory, MEDMEM_ENSIGHT._CaseFileDriver._fieldDrivers, MEDMEM_ENSIGHT._CaseFileDriver._FileSet._fileIndex, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._fileIndex, MEDMEM_ENSIGHT._CaseFileDriver._fileName, MEDMEM_ENSIGHT._CaseFileDriver._Model._fileName, MEDMEM_ENSIGHT._CaseFileDriver._Variable._fileNameOrData, MEDMEM_ENSIGHT._CaseFileDriver._Variable._fileSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._Model._fileSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._fileSets, MEDMEM_ENSIGHT._CaseFileDriver._format, MEDMEM_ENSIGHT._CaseFileDriver_User._imedMapKey, MEDMEM_ENSIGHT._CaseFileDriver_User._indexInDataFile, MEDMEM_ENSIGHT._CaseFileDriver_User._isGoldFormat, MEDMEM_ENSIGHT._CaseFileDriver._meshDrivers, MEDMEM_ENSIGHT._CaseFileDriver._model, MEDMEM_ENSIGHT._CaseFileDriver._Variable._name, MEDMEM_ENSIGHT._CaseFileDriver._FileSet._nbStepsInFile, MEDMEM_ENSIGHT._CaseFileDriver._FileSet._number, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._number, MEDMEM_ENSIGHT._CaseFileDriver_User._singleFileMode, MEDMEM_ENSIGHT._CaseFileDriver_User._time, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._times, MEDMEM_ENSIGHT._CaseFileDriver._Variable._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._Model._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._timeSets, MEDMEM_ENSIGHT._CaseFileDriver_User._transientMode, MEDMEM_ENSIGHT._CaseFileDriver._Variable._type, MEDMEM_ENSIGHT._CaseFileDriver._variables, MEDMEM_ENSIGHT.compatibilityPb(), MEDMEM.ENSIGHT_MESH_RDONLY_DRIVER.countParts(), MEDMEM.ENSIGHT_GOLD, MED_test2.field, Med_Gen_test.fieldName, FILE_SEPARATOR, MEDMEM_ENSIGHT._CaseFileDriver.fixWildCardName(), MEDMEM.SUPPORT.getEntity(), MEDMEM.FIELD_.getIterationNumber(), MEDMEM.FIELD_.getNumberOfComponents(), MEDMEM.FIELD_.getOrderNumber(), MEDMEM.FIELD_.getSupport(), MEDMEM.FIELD_.getTime(), medClient_test.index, MEDMEM_ENSIGHT.MAX_LINE_LENGTH, MED_EN.MED_NODE, test_gibi.meshDriver, medClient_test.name, batchmode_medcorba_test.nbMeshes, MEDMEM_ENSIGHT._ASCIIFileReader.split(), medClient_test.time, and MEDMEM_ENSIGHT.toIgnoreIncompatibility().
| bool MEDMEM_ENSIGHT._CaseFileDriver::checkWasRead | ( | ) | const throw (MEDEXCEPTION) [private] |
< throw if Case file has not been read else return false
Throws if case file has not been read else return false.
replace '*' in file name if any and return index in a file and time
References MEDMEM_ENSIGHT._CaseFileDriver._fileName, MEDMEM_ENSIGHT._CaseFileDriver._Model._fileName, and MEDMEM_ENSIGHT._CaseFileDriver._model.
| int MEDMEM_ENSIGHT._CaseFileDriver::fixWildCardName | ( | const int | timeStep, |
| const std::string & | ts, | ||
| const std::string & | fs, | ||
| std::string & | fileName, | ||
| std::string & | time | ||
| ) | [private] |
replace '*' in file name if any and return index in file
References _ATOI, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._fileIndex, MEDMEM_ENSIGHT._CaseFileDriver._FileSet._fileIndex, MEDMEM_ENSIGHT._CaseFileDriver._fileName, MEDMEM_ENSIGHT._CaseFileDriver._fileSets, MEDMEM_ENSIGHT._CaseFileDriver._FileSet._nbStepsInFile, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._times, MEDMEM_ENSIGHT._CaseFileDriver._timeSets, LOCALIZED, and MEDMEM_ENSIGHT._ASCIIFileReader.split().
std::string MEDMEM_ENSIGHT._CaseFileDriver._fileName [private] |
std::string MEDMEM_ENSIGHT._CaseFileDriver._directory [private] |
_Model MEDMEM_ENSIGHT._CaseFileDriver._model [private] |
std::map< int, _Variable> MEDMEM_ENSIGHT._CaseFileDriver._variables [private] |
map order number to variable data
std::map< int, _TimeSet > MEDMEM_ENSIGHT._CaseFileDriver._timeSets [private] |
map ts to time set data
std::map< int, _FileSet > MEDMEM_ENSIGHT._CaseFileDriver._fileSets [private] |
map fs to file set data
const _CaseFileDriver_User* MEDMEM_ENSIGHT._CaseFileDriver._user [private] |
mesh/field driver
std::list<ENSIGHT_MESH_WRONLY_DRIVER*> MEDMEM_ENSIGHT._CaseFileDriver._meshDrivers [private] |
added meshes
added field drivers groupped by name
to block all calls from a mesh/field driver governed by med driver
bool MEDMEM_ENSIGHT._CaseFileDriver._blocked [private] |