Commit 46b819e6 authored by miller86's avatar miller86

adding preference and Silo read options for ignoring extents

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@4396 18c085ea-50e0-402c-830e-de6fd14e8384
parent aa096f3d
......@@ -460,6 +460,8 @@ avtDatabase::ComputeDomainSpatialBounds(double globalWidth, int domCount, int do
// Jeremy Meredith/Hank Childs, Tue Mar 23 12:26:55 PST 2004
// Initialize file format type.
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added support for ignoring bad extents from dbs.
// ****************************************************************************
avtDatabase::avtDatabase()
......@@ -468,6 +470,7 @@ avtDatabase::avtDatabase()
invariantMetaData = NULL;
invariantSIL = NULL;
fileFormat = "<unknown>";
ignoreExtents = false;
}
......
......@@ -285,6 +285,8 @@ typedef struct {
// are streaming, not about whether we are doing dynamic load balancing.
// And the two are no longer synonymous.
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added support for ignoring bad extents from dbs.
// ****************************************************************************
class DATABASE_API avtDatabase
......@@ -352,6 +354,11 @@ class DATABASE_API avtDatabase
void ClearMetaDataAndSILCache();
void SetIgnoreExtents(bool set)
{ ignoreExtents = set; };
bool GetIgnoreExtents() const
{ return ignoreExtents; };
// methods useful for decomposing rectlinear data on the fly during read
static double RectilinearDecompCost(int i, int j, int k,
int nx, int ny, int nz);
......@@ -385,6 +392,8 @@ class DATABASE_API avtDatabase
bool *invariantMetaData;
bool *invariantSIL;
bool ignoreExtents;
void GetNewMetaData(int stateIndex,
bool forceReadAllCyclesTimes = false);
void GetNewSIL(int stateIndex,
......
......@@ -2952,6 +2952,8 @@ avtGenericDatabase::GetMesh(const char *meshname, int ts, int domain,
// Added support for passing variable name to a post ghost mixed variable
// request.
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added support for ignoring bad extents from dbs.
// ****************************************************************************
void
......@@ -2959,6 +2961,16 @@ avtGenericDatabase::GetAuxiliaryData(avtDataRequest_p spec,
VoidRefList &rv, const char *type,
void *args)
{
//
// Don't do extents queries if we've been told to ignore 'em.
//
if (ignoreExtents)
{
if ((strcmp(type, AUXILIARY_DATA_SPATIAL_EXTENTS) == 0) ||
(strcmp(type, AUXILIARY_DATA_DATA_EXTENTS) == 0))
return;
}
//
// Get the fields out of the database specification. Use the SIL
// specification since it captures the concept of a SIL restriction as well
......
......@@ -40,7 +40,7 @@
#include <DataNode.h>
// Type map format string
const char *GlobalAttributes::TypeMapFormatString = "s*i*ibbbbbibbbbbbbbbbbbbb";
const char *GlobalAttributes::TypeMapFormatString = "s*i*ibbbbbibbbbbbbbbbbbbbb";
// ****************************************************************************
// Method: GlobalAttributes::GlobalAttributes
......@@ -81,6 +81,7 @@ GlobalAttributes::GlobalAttributes() :
userDirForSessionFiles = false;
saveCrashRecoveryFile = true;
applySelection = true;
ignoreExtentsFromDbs = false;
}
// ****************************************************************************
......@@ -124,6 +125,7 @@ GlobalAttributes::GlobalAttributes(const GlobalAttributes &obj) :
userDirForSessionFiles = obj.userDirForSessionFiles;
saveCrashRecoveryFile = obj.saveCrashRecoveryFile;
applySelection = obj.applySelection;
ignoreExtentsFromDbs = obj.ignoreExtentsFromDbs;
SelectAll();
}
......@@ -190,6 +192,7 @@ GlobalAttributes::operator = (const GlobalAttributes &obj)
userDirForSessionFiles = obj.userDirForSessionFiles;
saveCrashRecoveryFile = obj.saveCrashRecoveryFile;
applySelection = obj.applySelection;
ignoreExtentsFromDbs = obj.ignoreExtentsFromDbs;
SelectAll();
return *this;
......@@ -236,7 +239,8 @@ GlobalAttributes::operator == (const GlobalAttributes &obj) const
(newPlotsInheritSILRestriction == obj.newPlotsInheritSILRestriction) &&
(userDirForSessionFiles == obj.userDirForSessionFiles) &&
(saveCrashRecoveryFile == obj.saveCrashRecoveryFile) &&
(applySelection == obj.applySelection));
(applySelection == obj.applySelection) &&
(ignoreExtentsFromDbs == obj.ignoreExtentsFromDbs));
}
// ****************************************************************************
......@@ -403,6 +407,7 @@ GlobalAttributes::SelectAll()
Select(ID_userDirForSessionFiles, (void *)&userDirForSessionFiles);
Select(ID_saveCrashRecoveryFile, (void *)&saveCrashRecoveryFile);
Select(ID_applySelection, (void *)&applySelection);
Select(ID_ignoreExtentsFromDbs, (void *)&ignoreExtentsFromDbs);
}
///////////////////////////////////////////////////////////////////////////////
......@@ -905,6 +910,13 @@ GlobalAttributes::SetApplySelection(bool applySelection_)
Select(ID_applySelection, (void *)&applySelection);
}
void
GlobalAttributes::SetIgnoreExtentsFromDbs(bool ignoreExtentsFromDbs_)
{
ignoreExtentsFromDbs = ignoreExtentsFromDbs_;
Select(ID_ignoreExtentsFromDbs, (void *)&ignoreExtentsFromDbs);
}
///////////////////////////////////////////////////////////////////////////////
// Get property methods
///////////////////////////////////////////////////////////////////////////////
......@@ -1059,6 +1071,12 @@ GlobalAttributes::GetApplySelection() const
return applySelection;
}
bool
GlobalAttributes::GetIgnoreExtentsFromDbs() const
{
return ignoreExtentsFromDbs;
}
///////////////////////////////////////////////////////////////////////////////
// Select property methods
///////////////////////////////////////////////////////////////////////////////
......@@ -1122,6 +1140,7 @@ GlobalAttributes::GetFieldName(int index) const
case ID_userDirForSessionFiles: return "userDirForSessionFiles";
case ID_saveCrashRecoveryFile: return "saveCrashRecoveryFile";
case ID_applySelection: return "applySelection";
case ID_ignoreExtentsFromDbs: return "ignoreExtentsFromDbs";
default: return "invalid index";
}
}
......@@ -1169,6 +1188,7 @@ GlobalAttributes::GetFieldType(int index) const
case ID_userDirForSessionFiles: return FieldType_bool;
case ID_saveCrashRecoveryFile: return FieldType_bool;
case ID_applySelection: return FieldType_bool;
case ID_ignoreExtentsFromDbs: return FieldType_bool;
default: return FieldType_unknown;
}
}
......@@ -1216,6 +1236,7 @@ GlobalAttributes::GetFieldTypeName(int index) const
case ID_userDirForSessionFiles: return "bool";
case ID_saveCrashRecoveryFile: return "bool";
case ID_applySelection: return "bool";
case ID_ignoreExtentsFromDbs: return "bool";
default: return "invalid index";
}
}
......@@ -1357,6 +1378,11 @@ GlobalAttributes::FieldsEqual(int index_, const AttributeGroup *rhs) const
retval = (applySelection == obj.applySelection);
}
break;
case ID_ignoreExtentsFromDbs:
{ // new scope
retval = (ignoreExtentsFromDbs == obj.ignoreExtentsFromDbs);
}
break;
default: retval = false;
}
......
......@@ -102,6 +102,7 @@ public:
void SetUserDirForSessionFiles(bool userDirForSessionFiles_);
void SetSaveCrashRecoveryFile(bool saveCrashRecoveryFile_);
void SetApplySelection(bool applySelection_);
void SetIgnoreExtentsFromDbs(bool ignoreExtentsFromDbs_);
// Property getting methods
const stringVector &GetSources() const;
......@@ -129,6 +130,7 @@ public:
bool GetUserDirForSessionFiles() const;
bool GetSaveCrashRecoveryFile() const;
bool GetApplySelection() const;
bool GetIgnoreExtentsFromDbs() const;
// Persistence methods
virtual bool CreateNode(DataNode *node, bool completeSave, bool forceAdd);
......@@ -166,7 +168,8 @@ public:
ID_newPlotsInheritSILRestriction,
ID_userDirForSessionFiles,
ID_saveCrashRecoveryFile,
ID_applySelection
ID_applySelection,
ID_ignoreExtentsFromDbs
};
private:
......@@ -193,6 +196,7 @@ private:
bool userDirForSessionFiles;
bool saveCrashRecoveryFile;
bool applySelection;
bool ignoreExtentsFromDbs;
// Static class format string for type map.
static const char *TypeMapFormatString;
......
......@@ -67,6 +67,9 @@
<Field name="applySelection" label="applySelection" type="bool">
true
</Field>
<Field name="ignoreExtentsFromDbs" label="ignoreExtentsFromDbs" type="bool">
false
</Field>
<Function name="CreateNode" user="false" member="true">
</Function>
<Function name="SetFromNode" user="false" member="true">
......
......@@ -189,6 +189,9 @@ static const int maxCoincidentNodelists = 12;
// Mark C. Miller, Tue Apr 29 23:33:55 PDT 2008
// Added read options, re-organized the routine a bit. Fixed some
// seriously bogus code I had added for controlling force single behavior.
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added logic to ignore spatial/data extents.
// ****************************************************************************
avtSiloFileFormat::avtSiloFileFormat(const char *toc_name,
......@@ -201,6 +204,8 @@ avtSiloFileFormat::avtSiloFileFormat(const char *toc_name,
dontForceSingle = 0;
numNodeLists = 0;
tocIndex = 0;
ignoreSpatialExtents = false;
ignoreDataExtents = false;
readGlobalInfo = false;
connectivityIsTimeVarying = false;
groupInfo.haveGroups = false;
......@@ -219,6 +224,10 @@ avtSiloFileFormat::avtSiloFileFormat(const char *toc_name,
{
if (rdatts->GetName(i) == "Force Single")
dontForceSingle = rdatts->GetBool("Force Single") ? 0 : 1;
else if (rdatts->GetName(i) == "Ignore Spatial Extents")
ignoreSpatialExtents = rdatts->GetBool("Ignore Spatial Extents");
else if (rdatts->GetName(i) == "Ignore Data Extents")
ignoreDataExtents = rdatts->GetBool("Ignore Data Extents");
else
debug1 << "Ignoring unknown option \"" << rdatts->GetName(i) << "\"" << endl;
}
......@@ -1129,6 +1138,9 @@ avtSiloFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData *md)
//
// Mark C. Miller, Wed Apr 23 12:08:56 PDT 2008
// Made material name parsing handle material names that point to NULL.
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added logic to ignore data extents for block structured code
// ****************************************************************************
void
......@@ -1291,6 +1303,10 @@ avtSiloFileFormat::ReadDir(DBfile *dbfile, const char *dirname,
{
codeNameGuess = GuessCodeNameFromTopLevelVars(dbfile);
// summarily ignore extents for block structured code
if (codeNameGuess == "BlockStructured")
ignoreDataExtents = true;
if (DBInqVarExists(dbfile, "ConnectivityIsTimeVarying"))
{
int tvFlag;
......@@ -3019,6 +3035,8 @@ avtSiloFileFormat::ReadDir(DBfile *dbfile, const char *dirname,
// Mark C. Miller, Tue Apr 15 10:24:59 PDT 2008
// Added missing call to broadcast the code name guess
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added logic to pass along ignore extents bools.
// ****************************************************************************
void
avtSiloFileFormat::BroadcastGlobalInfo(avtDatabaseMetaData *metadata)
......@@ -3109,6 +3127,13 @@ avtSiloFileFormat::BroadcastGlobalInfo(avtDatabaseMetaData *metadata)
BroadcastInt(groupInfo.ndomains);
BroadcastInt(groupInfo.numgroups);
BroadcastIntVector(groupInfo.ids, rank);
int ignore_extents = ignoreSpatialExtents;
BroadcastInt(ignore_extents);
ignoreSpatialExtents = ignore_extents;
ignore_extents = ignoreDataExtents;
BroadcastInt(ignore_extents);
ignoreDataExtents = ignore_extents;
#endif
}
......@@ -7785,6 +7810,9 @@ avtSiloFileFormat::GetComponent(DBfile *dbfile, char *var, char *compname)
//
// Mark C. Miller, Mon Apr 14 15:41:21 PDT 2008
// Removed disablement of spatial and data extents (for Ale3d)
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added logic to ignore extents
// ****************************************************************************
void *
......@@ -7823,11 +7851,21 @@ avtSiloFileFormat::GetAuxiliaryData(const char *var, int domain,
}
else if (strcmp(type, AUXILIARY_DATA_SPATIAL_EXTENTS) == 0)
{
if (ignoreSpatialExtents)
{
debug1 << "Read options ignore request for spatial extents" << endl;
return 0;
}
rv = (void *) GetSpatialExtents(var);
df = avtIntervalTree::Destruct;
}
else if (strcmp(type, AUXILIARY_DATA_DATA_EXTENTS) == 0)
{
if (ignoreDataExtents)
{
debug1 << "Read options ignore request for data extents" << endl;
return 0;
}
rv = (void *) GetDataExtents(var);
df = avtIntervalTree::Destruct;
}
......
......@@ -196,6 +196,9 @@ typedef struct
// Added 'using' statements (above) and removed all 'std::' where
// appropriate. Added GetNodelistVars, AddNodelistEnumerations
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added bools to control ignoring of extents.
//
// ****************************************************************************
class avtSiloFileFormat : public avtSTMDFileFormat
......@@ -232,6 +235,8 @@ class avtSiloFileFormat : public avtSTMDFileFormat
DBfile **dbfiles;
int tocIndex;
int dontForceSingle; // used primarily for testing
bool ignoreSpatialExtents;
bool ignoreDataExtents;
bool readGlobalInfo;
bool connectivityIsTimeVarying;
bool hasDisjointElements;
......
......@@ -72,6 +72,8 @@ GetSiloReadOptions(void)
{
DBOptionsAttributes *rv = new DBOptionsAttributes;
rv->SetBool("Force Single", true);
rv->SetBool("Ignore Spatial Extents", false);
rv->SetBool("Ignore Data Extents", false);
return rv;
}
......
......@@ -1610,6 +1610,9 @@ WriteByteStreamToSocket(NonBlockingRPC *rpc, Connection *vtkConnection,
//
// Mark C. Miller, Mon Jan 22 22:09:01 PST 2007
// Changed MPI_COMM_WORLD to VISIT_MPI_COMM
//
// Mark C. Miller, Tue Jun 10 15:57:15 PDT 2008
// Cast first arg of SendStatus to int explicitly
// ****************************************************************************
void
Engine::WriteData(NonBlockingRPC *rpc, avtDataObjectWriter_p &writer,
......@@ -1748,7 +1751,7 @@ Engine::WriteData(NonBlockingRPC *rpc, avtDataObjectWriter_p &writer,
delete avtreader;
}
rpc->SendStatus(100. * float(i)/float(PAR_Size()),
rpc->SendStatus((int) (100. * float(i)/float(PAR_Size())),
rpc->GetCurStageNum(),
"Synchronizing",
rpc->GetMaxStageNum());
......
......@@ -199,6 +199,9 @@ RPCExecutor<KeepAliveRPC>::Execute(KeepAliveRPC *rpc)
//
// Mark C. Miller, Thu Jun 14 10:26:37 PDT 2007
// Added support to treat all databases as time varying
//
// Mark C. Miller, Tue Jun 10 15:57:15 PDT 2008
// Added support for ignoring extents
// ****************************************************************************
template<>
......@@ -220,7 +223,8 @@ RPCExecutor<ReadRPC>::Execute(ReadRPC *rpc)
rpc->GetCSRAttributes(),
rpc->GetMaterialAttributes(),
rpc->GetMeshManagementAttributes(),
rpc->GetTreatAllDBsAsTimeVarying());
rpc->GetTreatAllDBsAsTimeVarying(),
rpc->GetIgnoreExtents());
rpc->SendReply();
}
CATCH2(VisItException, e)
......@@ -1239,8 +1243,13 @@ RPCExecutor<OpenDatabaseRPC>::Execute(OpenDatabaseRPC *rpc)
avtDatabaseFactory::SetCreateTimeDerivativeExpressions(
rpc->GetCreateTimeDerivativeExpressions());
bool treatAllDBsAsTimeVarying = false;
bool fileMayHaveUnloadedPlugin = false;
netmgr->GetDBFromCache(rpc->GetDatabaseName(), rpc->GetTime(),
rpc->GetFileFormat().c_str());
rpc->GetFileFormat().c_str(),
treatAllDBsAsTimeVarying,
fileMayHaveUnloadedPlugin,
rpc->GetIgnoreExtents());
engine->PopulateSimulationMetaData(rpc->GetDatabaseName(),
rpc->GetFileFormat());
......
......@@ -457,12 +457,14 @@ NetworkManager::ClearNetworksWithDatabase(const std::string &db)
// Hank Childs, Fri Feb 1 15:45:28 PST 2008
// Added argument for loading database plugins.
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added support for ignoring bad extents from dbs.
// ****************************************************************************
NetnodeDB *
NetworkManager::GetDBFromCache(const string &filename, int time,
const char *format, bool treatAllDBsAsTimeVarying,
bool fileMayHaveUnloadedPlugin)
bool fileMayHaveUnloadedPlugin, bool ignoreExtents)
{
// If we don't have a load balancer, we're dead.
if (loadBalancer == NULL)
......@@ -495,13 +497,13 @@ NetworkManager::GetDBFromCache(const string &filename, int time,
// even if we found the DB in the cache,
// we need to update the metadata if its time-varying
if (treatAllDBsAsTimeVarying ||
!cachedDB->GetDB()->MetaDataIsInvariant() ||
!cachedDB->GetDB()->MetaDataIsInvariant() ||
!cachedDB->GetDB()->SILIsInvariant())
{
cachedDB->GetDB()->GetMetaData(time,
forceReadAllCyclesAndTimes,
forceReadThisCycleAndTime,
treatAllDBsAsTimeVarying);
forceReadAllCyclesAndTimes,
forceReadThisCycleAndTime,
treatAllDBsAsTimeVarying);
cachedDB->GetDB()->GetSIL(time, treatAllDBsAsTimeVarying);
}
......@@ -525,11 +527,12 @@ NetworkManager::GetDBFromCache(const string &filename, int time,
db = avtDatabaseFactory::FileList(&filename_c, 1, time, plugins,
format);
db->SetFullDBName(filename);
db->SetIgnoreExtents(ignoreExtents);
// If we want to open the file at a later timestep, get the
// SIL so that it contains the right data.
if ((time > 0) ||
treatAllDBsAsTimeVarying ||
treatAllDBsAsTimeVarying ||
(!db->MetaDataIsInvariant()) ||
(!db->SILIsInvariant()))
{
......@@ -538,9 +541,9 @@ NetworkManager::GetDBFromCache(const string &filename, int time,
<< " so we're reading the SIL early."
<< endl;
db->GetMetaData(time,
forceReadAllCyclesAndTimes,
forceReadThisCycleAndTime,
treatAllDBsAsTimeVarying);
forceReadAllCyclesAndTimes,
forceReadThisCycleAndTime,
treatAllDBsAsTimeVarying);
db->GetSIL(time, treatAllDBsAsTimeVarying);
}
......@@ -713,6 +716,8 @@ NetworkManager::GetDBFromCache(const string &filename, int time,
// Hank Childs, Fri Feb 1 15:48:01 PST 2008
// Add new Boolean argument to GetDBFromCache.
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added support for ignoring bad extents from dbs.
// ****************************************************************************
void
......@@ -723,7 +728,8 @@ NetworkManager::StartNetwork(const string &format,
const CompactSILRestrictionAttributes &atts,
const MaterialAttributes &matopts,
const MeshManagementAttributes &meshopts,
bool treatAllDBsAsTimeVarying)
bool treatAllDBsAsTimeVarying,
bool ignoreExtents)
{
// If the variable is an expression, we need to find a "real" variable
// name to work with.
......@@ -739,7 +745,8 @@ NetworkManager::StartNetwork(const string &format,
bool fileMayHaveUnloadedPlugin = false;
NetnodeDB *netDB = GetDBFromCache(filename, time, defaultFormat,
treatAllDBsAsTimeVarying,
fileMayHaveUnloadedPlugin);
fileMayHaveUnloadedPlugin,
ignoreExtents);
workingNet->SetNetDB(netDB);
netDB->SetDBInfo(filename, leaf, time);
......@@ -762,7 +769,7 @@ NetworkManager::StartNetwork(const string &format,
// Set up the data spec.
avtSILRestriction_p silr =
new avtSILRestriction(workingNet->GetNetDB()->GetDB()->
GetSIL(time, treatAllDBsAsTimeVarying), atts);
GetSIL(time, treatAllDBsAsTimeVarying), atts);
avtDataRequest *dataRequest = new avtDataRequest(var.c_str(), time, silr);
// Set up some options from the data specification
......@@ -1118,23 +1125,23 @@ NetworkManager::MakePlot(const string &plotName, const string &pluginID,
// Check, whether plot wants to place a filter at the beginning of
// the pipeline
if (avtFilter *f = p->GetFilterForTopOfPipeline()) {
debug5 << "NetworkManager::MakePlot(): Inserting filter on top of pipeline." << std::endl;
NetnodeFilter *filt = new NetnodeFilter(f, "InsertedPlotFilter");
//f->GetOutput()->SetTransientStatus(true);
if (workingNet->GetNodeList().size() > 1)
workingNet->AddFilterNodeAfterExpressionEvaluator(filt);
else
{
std::vector<Netnode*> &filtInputs = filt->GetInputNodes();
Netnode *n = workingNetnodeList.back();
workingNetnodeList.pop_back();
filtInputs.push_back(n);
// Push the filter onto the working list.
workingNetnodeList.push_back(filt);
workingNet->AddNode(filt);
}
debug5 << "NetworkManager::MakePlot(): Added filter after expression evaluator." << std::endl;
debug5 << "NetworkManager::MakePlot(): Inserting filter on top of pipeline." << std::endl;
NetnodeFilter *filt = new NetnodeFilter(f, "InsertedPlotFilter");
//f->GetOutput()->SetTransientStatus(true);
if (workingNet->GetNodeList().size() > 1)
workingNet->AddFilterNodeAfterExpressionEvaluator(filt);
else
{
std::vector<Netnode*> &filtInputs = filt->GetInputNodes();
Netnode *n = workingNetnodeList.back();
workingNetnodeList.pop_back();
filtInputs.push_back(n);
// Push the filter onto the working list.
workingNetnodeList.push_back(filt);
workingNet->AddNode(filt);
}
debug5 << "NetworkManager::MakePlot(): Added filter after expression evaluator." << std::endl;
}
p->SetDataExtents(dataExtents);
......@@ -4509,8 +4516,10 @@ GetDatabase(void *nm, const std::string &filename, int time,const char *format)
// This database is being requested by an AVT filter (likely a CMFE
// expression), so we have no idea if the right plugin has been loaded.
bool fileMayHaveUnloadedPlugin = true;
bool ignoreExtents = false;
NetnodeDB *db = nm2->GetDBFromCache(filename, time, format,
treatAllDBsAsTimeVarying, fileMayHaveUnloadedPlugin);
treatAllDBsAsTimeVarying, fileMayHaveUnloadedPlugin,
ignoreExtents);
return db->GetDB();
}
......
......@@ -312,6 +312,9 @@ typedef void (*ProgressCallback)(void *, const char *, const char *,int,int);
// Cyrus Harrison, Tue Feb 19 08:42:51 PST 2008
// Removed dumpRenders (now controled by avtDebugDumpOptions)
//
// Mark C. Miller, Tue Jun 10 15:57:15 PDT 2008
// Added bool for ignoring extents to StartNetwork / GetDBFromCache
//
// ****************************************************************************
class NetworkManager
......@@ -326,13 +329,13 @@ class NetworkManager
NetnodeDB* GetDBFromCache(const string &filename, int time,
const char * = NULL, bool=false,
bool=false);
bool=false, bool=false);
void StartNetwork(const std::string&, const std::string &,
const std::string &, int,
const CompactSILRestrictionAttributes &,
const MaterialAttributes &,
const MeshManagementAttributes &,
bool);
bool, bool);
void DefineDB(const std::string &, const std::string &,
const stringVector &, int, const std::string &);
void AddFilter(const std::string&,
......
......@@ -408,6 +408,9 @@ EngineProxy::SendKeepAlive()
//
// Mark C. Miller, Thu Jun 14 10:26:37 PDT 2007
// Added support to treat all databases as time varying
//
// Mark C. Miller, Tue Jun 10 15:57:15 PDT 2008
// Added support for ignoring extents
// ****************************************************************************
void
......@@ -417,7 +420,8 @@ EngineProxy::ReadDataObject(const string &format, const string &file,
const MaterialAttributes &matopts,
const ExpressionList &expressions,
const MeshManagementAttributes &meshopts,
bool treatAllDBsAsTimeVarying)
bool treatAllDBsAsTimeVarying,
bool ignoreExtents)
{
// Make sure the engine knows about our current expression list.
if (exprList != expressions)
......@@ -428,7 +432,7 @@ EngineProxy::ReadDataObject(const string &format, const string &file,
CompactSILRestrictionAttributes *atts = silr->MakeCompactAttributes();
readRPC(format, file, var, time, *atts, matopts, meshopts,
treatAllDBsAsTimeVarying);
treatAllDBsAsTimeVarying, ignoreExtents);
if (readRPC.GetStatus() == VisItRPC::error)
{
RECONSTITUTE_EXCEPTION(readRPC.GetExceptionType(),
......@@ -821,15 +825,18 @@ EngineProxy::ClearCache(const std::string &filename)
// Kathleen Bonnell, Tue Oct 9 14:40:10 PDT 2007
// Added createMeshQualityExpressions, createTimeDerivativeExpressions.
//
// Mark C. Miller, Tue Jun 10 22:36:25 PDT 2008
// Added support for ignoring bad extents from dbs.