Version: 5.1.6

MEDMEM_ENSIGHT._CaseFileDriver Class Reference

Reader/writer of EnSight Case file. More...

#include <MEDMEM_EnsightUtils.hxx>

Data Structures

struct  _FileSet
struct  _Model
struct  _TimeSet
struct  _Variable

Public Types

typedef std::map< std::string,
std::list
< ENSIGHT_FIELD_WRONLY_DRIVER * > > 
TFieldDriversByName

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
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

Data Fields

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

Detailed Description

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.


Member Typedef Documentation


Constructor & Destructor Documentation

MEDMEM_ENSIGHT._CaseFileDriver::_CaseFileDriver ( const string &  fileName,
const _CaseFileDriver_User creator 
)
MEDMEM_ENSIGHT._CaseFileDriver::~_CaseFileDriver (  ) 

Member Function Documentation

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
void MEDMEM_ENSIGHT._CaseFileDriver::setDataFileName ( const int  meshIndex,
ENSIGHT_MESH_RDONLY_DRIVER meshDriver 
)
int MEDMEM_ENSIGHT._CaseFileDriver::getNbVariables (  )  const

Return nb of ensight variables.

References MEDMEM_ENSIGHT._CaseFileDriver._variables.

int MEDMEM_ENSIGHT._CaseFileDriver::getNbVarSteps ( const int  variableIndex  ) 
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_User._dataFileName, 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_User._imedMapKey, MEDMEM_ENSIGHT._CaseFileDriver_User._indexInDataFile, MEDMEM_ENSIGHT._CaseFileDriver_User._isGoldFormat, MEDMEM_ENSIGHT._CaseFileDriver._model, MEDMEM_ENSIGHT._CaseFileDriver._Variable._name, MEDMEM_ENSIGHT._CaseFileDriver_User._singleFileMode, MEDMEM_ENSIGHT._CaseFileDriver_User._time, MEDMEM_ENSIGHT._CaseFileDriver._TimeSet._times, MEDMEM_ENSIGHT._CaseFileDriver._Model._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._Variable._timeSetNumber, MEDMEM_ENSIGHT._CaseFileDriver._timeSets, MEDMEM_ENSIGHT._CaseFileDriver_User._transientMode, 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.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  ) 
void MEDMEM_ENSIGHT._CaseFileDriver::addField ( const ENSIGHT_FIELD_WRONLY_DRIVER fieldDriver  ) 
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)

< 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 
)

Field Documentation

map order number to variable data

map ts to time set data

map fs to file set data

mesh/field driver

added meshes

added field drivers groupped by name

to block all calls from a mesh/field driver governed by med driver