Commit 8d9af459 authored by hkrishna's avatar hkrishna

visit remote infrastructure update

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@25387 18c085ea-50e0-402c-830e-de6fd14e8384
parent 55caf663
......@@ -40,8 +40,6 @@
SET(AVTQTVISWINDOW_SOURCES
VisWinRenderingWithWindow.C
VisWindowWithInteractions.C
VisWinRenderingWithoutWindowWithInteractions.C
QtVisWindow.C
vtk/vtkDashedXorGridMapper2D.C
vtk/vtkRubberBandMapper2D.C
......
......@@ -62,6 +62,7 @@ Colleagues/VisWinPlots.C
Colleagues/VisWinQuery.C
Colleagues/VisWinRendering.C
Colleagues/VisWinRenderingWithoutWindow.C
Colleagues/VisWinRenderingWithoutWindowWithInteractions.C
Colleagues/VisWinTools.C
Colleagues/VisWinTriad.C
Colleagues/VisWinUserInfo.C
......@@ -155,6 +156,7 @@ Tools/avtToolInterface.C
SET(VISWINDOW_SOURCES
VisWindow/VisWindow.C
VisWindow/VisWindowWithInteractions.C
VisWindow/VisWindowTypes.C
)
......
......@@ -2187,7 +2187,9 @@ VisWinRendering::SetCompactDomainsAutoThreshold(int val)
void
VisWinRendering::InvokeRenderCallback() {
std::cout << "invoking" << " " << renderEvent << " " << GetRenderUpdate() << std::endl;
if(renderEvent && GetRenderUpdate() == true) {
std::cout << "Up??" << std::endl;
renderEvent(renderEventData,inMotion);
}
}
......@@ -2204,6 +2206,7 @@ VisWinRendering::UpdateMouseActions(std::string action, double start_dx, double
return;
}
std::cout << "HERE>" << std::endl;
enum MouseButton { LeftButton, MiddleButton, RightButton };
MouseButton mb = LeftButton;
......
/*****************************************************************************
*
* Copyright (c) 2000 - 2015, Lawrence Livermore National Security, LLC
* Copyright (c) 2000 - 2014, Lawrence Livermore National Security, LLC
* Produced at the Lawrence Livermore National Laboratory
* LLNL-CODE-442911
* All rights reserved.
......@@ -42,9 +42,12 @@
#include <VisWinRenderingWithoutWindowWithInteractions.h>
#include <vtkRenderWindow.h>
#include <QVTKInteractor.h>
#include <vtkRenderWindowInteractor.h>
//#include <QVTKInteractor.h>
#include <VisWindowColleagueProxy.h>
#include <VisitHotPointInteractor.h>
vtkRenderWindowInteractor* (*VisWinRenderingWithoutWindowWithInteractions::createInteractor)() = 0;
// ****************************************************************************
// Method: VisWinRenderingWithoutWindow constructor
//
......@@ -85,9 +88,15 @@ VisWinRenderingWithoutWindowWithInteractions::Initialize(VisitHotPointInteractor
if(iren == NULL) {
ownsInteractor = true;
//iren = vtkRenderWindowInteractor::New();
iren = QVTKInteractor::New();
iren->SetInteractorStyle(i);
renWin->SetInteractor(iren);
if(createInteractor) {
iren = createInteractor();
iren->SetInteractorStyle(i);
renWin->SetInteractor(iren);
} else {
iren = vtkRenderWindowInteractor::New();
//iren = QVTKInteractor::New();
iren->SetInteractorStyle(i);
renWin->SetInteractor(iren);
}
}
}
/*****************************************************************************
*
* Copyright (c) 2000 - 2015, Lawrence Livermore National Security, LLC
* Copyright (c) 2000 - 2014, Lawrence Livermore National Security, LLC
* Produced at the Lawrence Livermore National Laboratory
* LLNL-CODE-442911
* All rights reserved.
......@@ -42,10 +42,11 @@
#ifndef VIS_WIN_RENDERING_WITHOUT_WINDOW_WITH_INTERACTIONS_H
#define VIS_WIN_RENDERING_WITHOUT_WINDOW_WITH_INTERACTIONS_H
#include <qtviswindow_exports.h>
#include <viswindow_exports.h>
#include <VisWinRenderingWithoutWindow.h>
#include <VisitHotPointInteractor.h>
class VisitHotPointInteractor;
class vtkRenderWindowInteractor;
// ****************************************************************************
// Class: VisWinRenderingWithoutWindowWithInteractions
......@@ -61,7 +62,7 @@
//
// ****************************************************************************
class QTVISWINDOW_API VisWinRenderingWithoutWindowWithInteractions : public VisWinRenderingWithoutWindow
class VISWINDOW_API VisWinRenderingWithoutWindowWithInteractions : public VisWinRenderingWithoutWindow
{
public:
VisWinRenderingWithoutWindowWithInteractions(VisWindowColleagueProxy &);
......@@ -71,7 +72,13 @@ class QTVISWINDOW_API VisWinRenderingWithoutWindowWithInteractions : public VisW
void Initialize(VisitHotPointInteractor* i);
static void SetInteractorCallback(vtkRenderWindowInteractor* (*cb)()) {
createInteractor = cb;
}
private:
static vtkRenderWindowInteractor* (*createInteractor)();
vtkRenderWindowInteractor* iren;
bool ownsInteractor;
};
......
/*****************************************************************************
*
* Copyright (c) 2000 - 2015, Lawrence Livermore National Security, LLC
* Copyright (c) 2000 - 2014, Lawrence Livermore National Security, LLC
* Produced at the Lawrence Livermore National Laboratory
* LLNL-CODE-442911
* All rights reserved.
......@@ -40,11 +40,12 @@
// QtVisWindow.C //
// ************************************************************************* //
#include <VisWindowWithInteractions.h>
#include <VisWinRenderingWithWindow.h>
//#include <VisWinRenderingWithWindow.h>
#include <VisWinRenderingWithoutWindowWithInteractions.h>
#include <VisWinInteractions.h>
#include <VisitHotPointInteractor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
// ****************************************************************************
......@@ -69,6 +70,10 @@ VisWindowWithInteractions::UpdateMouseActions(std::string action,
VisWinRenderingWithoutWindowWithInteractions* ren = dynamic_cast<VisWinRenderingWithoutWindowWithInteractions*>(rendering);
if(rendering == NULL) {
return;
}
vtkRenderWindowInteractor* iren = ren->GetRenderWindowInteractor();
bool setupInteractor = false;
......
/*****************************************************************************
*
* Copyright (c) 2000 - 2015, Lawrence Livermore National Security, LLC
* Copyright (c) 2000 - 2014, Lawrence Livermore National Security, LLC
* Produced at the Lawrence Livermore National Laboratory
* LLNL-CODE-442911
* All rights reserved.
......@@ -40,15 +40,15 @@
// QtVisWindow.h //
// ************************************************************************* //
#ifndef QT_VIS_WINDOW_WITH_INTERACTIONS_H
#define QT_VIS_WINDOW_WITH_INTERACTIONS_H
#ifndef VIS_WINDOW_WITH_INTERACTIONS_H
#define VIS_WINDOW_WITH_INTERACTIONS_H
#include <qtviswindow_exports.h>
#include <viswindow_exports.h>
#include <VisWindow.h>
#include <vtkRenderWindow.h>
class vtkQtRenderWindow;
//class vtkQtRenderWindow;
// ****************************************************************************
// Class: VisWindowWithInteractions
......@@ -65,7 +65,7 @@ class vtkQtRenderWindow;
//
// ****************************************************************************
class QTVISWINDOW_API VisWindowWithInteractions : public VisWindow
class VISWINDOW_API VisWindowWithInteractions : public VisWindow
{
public:
VisWindowWithInteractions();
......
......@@ -37,6 +37,7 @@
*****************************************************************************/
#include <SocketConnection.h>
#include <AttributeSubjectSerialize.h>
#include <visit-config.h>
#if defined(_WIN32)
#include <winsock2.h>
......@@ -347,6 +348,17 @@ SocketConnection::Fill()
DEBUG_SOCKETS_CODE(const char *mName = "SocketConnection::Fill: ";)
DEBUG_SOCKETS(debug5 << mName << "begin" << endl;)
if(destFormat.Format == TypeRepresentation::ASCIIFORMAT) {
buffer.clear();
AttributeSubjectSerialize s;
s.SetConnection(this);
int amt = s.Fill();
return amt;
}
/// The code below should move into AttributeSubjectSerialize
const int iteration_limit = 100;
unsigned char tmp[VISIT_SOCKET_BUFFER_SIZE];
......
......@@ -103,4 +103,14 @@ protected:
bool fixedBufferMode;
};
class AttributeSubject;
class COMM_API AttributeSubjectSocketConnection : public SocketConnection
{
public:
AttributeSubjectSocketConnection(DESCRIPTOR descriptor_): SocketConnection(descriptor_) {}
virtual ~AttributeSubjectSocketConnection() {}
virtual void Flush(AttributeSubject*) = 0;
virtual int Fill() = 0;
};
#endif
......@@ -37,11 +37,13 @@
*****************************************************************************/
#include <AttributeSubjectSerialize.h>
#include <Connection.h>
#include <SocketConnection.h>
#include <MapNode.h>
#include <JSONNode.h>
#include <AttributeSubject.h>
#include <stdlib.h>
#include <sys/socket.h>
AttributeSubjectSerialize::AttributeSubjectSerialize() : conn(NULL)
{
......@@ -86,50 +88,70 @@ AttributeSubjectSerialize::Fill()
{
std::string xmlString = "";
char tmp[1001]; //leave 1 for null termination//
int amountRead = 0;
do
{
amountRead = conn->Fill();
#if defined(_WIN32)
int amountRead = recv(conn->GetDescriptor(), (char FAR *)tmp, 1000, 0);
if(amountRead == SOCKET_ERROR)
{
LogWindowsSocketError("SocketConnection", "Fill");
if(WSAGetLastError() == WSAEWOULDBLOCK)
return -1;
}
#else
amountRead = recv(conn->GetDescriptor(), (void *)tmp, 1000, 0);
#endif
if(amountRead > 0)
{
char *tmp = new char[amountRead];
for(int i = 0; i < amountRead; ++i)
conn->Read((unsigned char *)(tmp + i));
tmp[amountRead] = '\0';
//zeroesRead = 0;
tmp[amountRead] = 0;
xmlString += tmp;
delete [] tmp;
}
}
while(amountRead == 1000); //if it gets entire list..
if(xmlString.size() > 0)
//++zeroesRead;
// If we have had a certain number of zero length reads in a row,
// assume the connection died.
// if(zeroesRead > 100)
// {
// EXCEPTION0(LostConnectionException);
// }
}while(amountRead == 1000); //if it gets entire list..
//std::cout << "raw string: " << xmlString << std::endl;
//buffer.clear();
size_t bytes = 0;
while(xmlString.size() > 0)
{
JSONNode node;
node.Parse(xmlString);
size_t amt = node.Parse(xmlString);
//std::cout << node.ToString() << std::endl;
//std::cout << "message processing: " << node.ToString() << " " << amt << " " << xmlString.size() << std::endl;
int guido = node["id"].GetInt();
JSONNode contents = node["contents"];
JSONNode metadata = node["metadata"];
/// With the information I have I could probably
/// just use JSONNode to convert completely..
/// but that would leave MapNode incomplete..
//MapNode mapnode(contents, metadata, false);
bytes += Write(guido, contents, metadata); //Write(guido,&mapnode); //,&metadata["data"]
//std::cout << mapnode.ToXML(false) << std::endl;
//std::cout << metadata["data"] << std::endl;
if(amt >= xmlString.size())
break;
return Write(guido, contents, metadata); //Write(guido,&mapnode); //,&metadata["data"]
xmlString = xmlString.substr(amt);
}
return bytes;
}
else
{
conn->Fill();
//return conn->Fill();
}
}
......@@ -178,36 +200,93 @@ AttributeSubjectSerialize::Flush(AttributeSubject *subject)
// << subject->CalculateMessageSize(*this)
// << std::endl;
if(subject->GetSendMetaInformation())
{
JSONNode meta;
AttributeSubjectSocketConnection* ascomm = dynamic_cast<AttributeSubjectSocketConnection*>(conn);
if(ascomm) {
ascomm->Flush(subject);
}
else {
/*
if(subject->GetSendMetaInformation())
{
JSONNode meta;
JSONNode node;
subject->WriteAPI(meta);
node["id"] = subject->GetGuido();
node["typename"] = subject->TypeName();
node["api"] = meta;
const std::string& output = node.ToString().c_str();
conn->Append((const unsigned char *)output.c_str(), output.size());
conn->Flush();
}
JSONNode child, metadata;
JSONNode node;
subject->WriteAPI(meta);
subject->Write(child);
subject->WriteMetaData(metadata);
node["id"] = subject->GetGuido();
node["typename"] = subject->TypeName();
node["api"] = meta;
node["contents"] = child; //.ToJSONNode(false);
node["metadata"] = metadata; //.ToJSONNode(false);
const std::string& output = node.ToString().c_str();
const std::string& output = node.ToString();
conn->Append((const unsigned char *)output.c_str(), output.size());
conn->Flush();
}
*/
JSONNode child, metadata;
JSONNode node;
// std::cout << subject->TypeName() << " "
// << subject->CalculateMessageSize(*this)
// << std::endl;
subject->Write(child);
subject->WriteMetaData(metadata);
if(subject->GetSendMetaInformation())
{
JSONNode meta;
JSONNode node;
node["id"] = subject->GetGuido();
node["typename"] = subject->TypeName();
node["contents"] = child; //.ToJSONNode(false);
node["metadata"] = metadata; //.ToJSONNode(false);
subject->WriteAPI(meta);
node["id"] = subject->GetGuido();
node["typename"] = subject->TypeName();
node["api"] = meta;
const std::string& output = node.ToString().c_str();
#if defined(_WIN32)
send(conn->GetDescriptor(), (const char FAR *)output.c_str(), output.size(), 0);
#else
#ifdef MSG_NOSIGNAL
send(conn->GetDescriptor(), (const void *)output.c_str(), output.size(), MSG_NOSIGNAL);
#else
send(conn->GetDescriptor(), (const void *)output.c_str(), output.size(), 0);
#endif
#endif
}
const std::string& output = node.ToString();
conn->Append((const unsigned char *)output.c_str(), output.size());
conn->Flush();
JSONNode child, metadata;
JSONNode node;
subject->Write(child);
subject->WriteMetaData(metadata);
node["id"] = subject->GetGuido();
node["typename"] = subject->TypeName();
node["contents"] = child; //.ToJSONNode(false);
node["metadata"] = metadata; //.ToJSONNode(false);
const std::string& output = node.ToString().c_str();
#if defined(_WIN32)
send(conn->GetDescriptor(), (const char FAR *)output.c_str(), output.size(), 0);
#else
#ifdef MSG_NOSIGNAL
send(conn->GetDescriptor(), (const void *)output.c_str(), output.size(), MSG_NOSIGNAL);
#else
send(conn->GetDescriptor(), (const void *)output.c_str(), output.size(), 0);
#endif
#endif
}
}
}
......
......@@ -130,6 +130,7 @@ void ViewerClientAttributes::Copy(const ViewerClientAttributes &obj)
imageHeight = obj.imageHeight;
imageResolutionPcnt = obj.imageResolutionPcnt;
externalClient = obj.externalClient;
renderingTypes = obj.renderingTypes;
ViewerClientAttributes::SelectAll();
}
......@@ -294,7 +295,8 @@ ViewerClientAttributes::operator == (const ViewerClientAttributes &obj) const
(imageWidth == obj.imageWidth) &&
(imageHeight == obj.imageHeight) &&
(imageResolutionPcnt == obj.imageResolutionPcnt) &&
(externalClient == obj.externalClient));
(externalClient == obj.externalClient) &&
(renderingTypes == obj.renderingTypes));
}
// ****************************************************************************
......@@ -446,6 +448,7 @@ ViewerClientAttributes::SelectAll()
Select(ID_imageHeight, (void *)&imageHeight);
Select(ID_imageResolutionPcnt, (void *)&imageResolutionPcnt);
Select(ID_externalClient, (void *)&externalClient);
Select(ID_renderingTypes, (void *)&renderingTypes);
}
///////////////////////////////////////////////////////////////////////////////
......@@ -526,6 +529,12 @@ ViewerClientAttributes::CreateNode(DataNode *parentNode, bool completeSave, bool
node->AddNode(new DataNode("externalClient", externalClient));
}
if(completeSave || !FieldsEqual(ID_renderingTypes, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("renderingTypes", renderingTypes));
}
// Add the node to the parent node.
if(addToParent || forceAdd)
......@@ -592,6 +601,8 @@ ViewerClientAttributes::SetFromNode(DataNode *parentNode)
SetImageResolutionPcnt(node->AsDouble());
if((node = searchNode->GetNode("externalClient")) != 0)
SetExternalClient(node->AsBool());
if((node = searchNode->GetNode("renderingTypes")) != 0)
SetRenderingTypes(node->AsIntVector());
}
///////////////////////////////////////////////////////////////////////////////
......@@ -654,6 +665,13 @@ ViewerClientAttributes::SetExternalClient(bool externalClient_)
Select(ID_externalClient, (void *)&externalClient);
}
void
ViewerClientAttributes::SetRenderingTypes(const intVector &renderingTypes_)
{
renderingTypes = renderingTypes_;
Select(ID_renderingTypes, (void *)&renderingTypes);
}
///////////////////////////////////////////////////////////////////////////////
// Get property methods
///////////////////////////////////////////////////////////////////////////////
......@@ -718,6 +736,18 @@ ViewerClientAttributes::GetExternalClient() const
return externalClient;
}
const intVector &
ViewerClientAttributes::GetRenderingTypes() const
{
return renderingTypes;
}
intVector &
ViewerClientAttributes::GetRenderingTypes()
{
return renderingTypes;
}
///////////////////////////////////////////////////////////////////////////////
// Select property methods
///////////////////////////////////////////////////////////////////////////////
......@@ -734,6 +764,12 @@ ViewerClientAttributes::SelectWindowIds()
Select(ID_windowIds, (void *)&windowIds);
}
void
ViewerClientAttributes::SelectRenderingTypes()
{
Select(ID_renderingTypes, (void *)&renderingTypes);
}
///////////////////////////////////////////////////////////////////////////////
// Keyframing methods
///////////////////////////////////////////////////////////////////////////////
......@@ -766,6 +802,7 @@ ViewerClientAttributes::GetFieldName(int index) const
case ID_imageHeight: return "imageHeight";
case ID_imageResolutionPcnt: return "imageResolutionPcnt";
case ID_externalClient: return "externalClient";
case ID_renderingTypes: return "renderingTypes";
default: return "invalid index";
}
}
......@@ -798,6 +835,7 @@ ViewerClientAttributes::GetFieldType(int index) const
case ID_imageHeight: return FieldType_int;
case ID_imageResolutionPcnt: return FieldType_double;
case ID_externalClient: return FieldType_bool;
case ID_renderingTypes: return FieldType_intVector;
default: return FieldType_unknown;
}
}
......@@ -830,6 +868,7 @@ ViewerClientAttributes::GetFieldTypeName(int index) const
case ID_imageHeight: return "int";
case ID_imageResolutionPcnt: return "double";
case ID_externalClient: return "bool";
case ID_renderingTypes: return "intVector";
default: return "invalid index";
}
}
......@@ -896,6 +935,11 @@ ViewerClientAttributes::FieldsEqual(int index_, const AttributeGroup *rhs) const
retval = (externalClient == obj.externalClient);
}
break;
case ID_renderingTypes:
{ // new scope
retval = (renderingTypes == obj.renderingTypes);
}
break;
default: retval = false;
}
......
......@@ -95,6 +95,7 @@ public:
virtual void SelectAll();
void SelectTitle();
void SelectWindowIds();
void SelectRenderingTypes();
// Property setting methods
void SetRenderingType(RenderType renderingType_);
......@@ -105,6 +106,7 @@ public:
void SetImageHeight(int imageHeight_);
void SetImageResolutionPcnt(double imageResolutionPcnt_);
void SetExternalClient(bool externalClient_);
void SetRenderingTypes(const intVector &renderingTypes_);
// Property getting methods
RenderType GetRenderingType() const;
......@@ -117,6 +119,8 @@ public:
int GetImageHeight() const;
double GetImageResolutionPcnt() const;
bool GetExternalClient() const;
const intVector &GetRenderingTypes() const;
intVector &GetRenderingTypes();
// Persistence methods
virtual bool CreateNode(DataNode *node, bool completeSave, bool forceAdd);
......@@ -146,6 +150,7 @@ public:
ID_imageHeight,
ID_imageResolutionPcnt,
ID_externalClient,
ID_renderingTypes,
ID__LAST
};
......@@ -158,11 +163,12 @@ private:
int imageHeight;
double imageResolutionPcnt;
bool externalClient;
intVector renderingTypes;
// Static class format string for type map.
static const char *TypeMapFormatString;
static const private_tmfs_t TmfsStruct;
};
#define VIEWERCLIENTATTRIBUTES_TMFS "iisi*iidb"
#define VIEWERCLIENTATTRIBUTES_TMFS "iisi*iidbi*"
#endif
......@@ -28,4 +28,6 @@
<Field name="externalClient" label="externalClient" type="bool">
false
</Field>
<Field name="renderingTypes" label="renderingTypes" type="intVector">
</Field>
</Attribute>
<?xml version="1.0"?>
<Plugin name="ALS" type="database" label="ALS" version="1.0" enabled="true" mdspecificcode="false" engspecificcode="false" onlyengine="false" noengine="false" dbtype="STMD" haswriter="false" hasoptions="false" filePatternsStrict="false" opensWholeDirectory="false">
<CXXFLAGS>
${HDF5_INCLUDE_DIR}
</CXXFLAGS>
<LDFLAGS>
${HDF5_LIBRARY_DIR}
</LDFLAGS>
<LIBS>
${HDF5_LIB}
${ZLIB_LIB}
</LIBS>
<FilePatterns>
*.h5
</FilePatterns>
<Attribute name="ALS" purpose="ALS File Format" persistent="true" keyframe="true" exportAPI="" exportInclude="">
</Attribute>
</Plugin>
/*****************************************************************************
*
* Copyright (c) 2000 - 2013, Lawrence Livermore National Security, LLC
* Produced at the Lawrence Livermore National Laboratory
* LLNL-CODE-442911
* All rights reserved.
*
* This file is part of VisIt. For details, see https://visit.llnl.gov/. The
* full copyright notice is contained in the file COPYRIGHT located at the root
* of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the disclaimer (as noted below) in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the LLNS/LLNL nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY,
* LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
*****************************************************************************/
#include <ALSPluginInfo.h>
#include <avtALSFileFormat.h>
#include <avtSTMDFileFormatInterface.h>
#include <avtGenericDatabase.h>
// ****************************************************************************
// Method: ALSCommonPluginInfo::GetDatabaseType
//
// Purpose:
// Returns the type of a ALS database.
//
// Programmer: generated by xml2info
// Creation: omitted
//
// ****************************************************************************
DatabaseType
ALSCommonPluginInfo::GetDatabaseType()
{
return DB_TYPE_STMD;
}
// ****************************************************************************
// Method: ALSCommonPluginInfo::SetupDatabase
//
// Purpose:
// Sets up a ALS database.
//
// Arguments:
// list A list of file names.
// nList The number of timesteps in list.
// nBlocks The number of blocks in the list.