mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
94 lines
2.9 KiB
C++
94 lines
2.9 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkPVXMLParser.h
|
|
|
|
Copyright (c) Kitware, Inc.
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
// .NAME vtkPVXMLParser parses ParaView XML configuration files.
|
|
// .SECTION Description
|
|
// This is a subclass of vtkXMLParser that constructs a representation
|
|
// of parsed XML using vtkPVXMLElement.
|
|
#ifndef vtkPVXMLParser_h
|
|
#define vtkPVXMLParser_h
|
|
|
|
#include "vtkXMLParser.h"
|
|
#include "vtkPVCommonModule.h" // needed for export macro
|
|
|
|
class vtkPVXMLElement;
|
|
|
|
class VTKPVCOMMON_EXPORT vtkPVXMLParser : public vtkXMLParser
|
|
{
|
|
public:
|
|
vtkTypeMacro(vtkPVXMLParser,vtkXMLParser);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
static vtkPVXMLParser* New();
|
|
|
|
// Description:
|
|
// Write the parsed XML into the output stream.
|
|
void PrintXML(ostream& os);
|
|
|
|
// Description:
|
|
// Get the root element from the XML document.
|
|
vtkPVXMLElement* GetRootElement();
|
|
|
|
// Description:
|
|
// Get/Set the file from which to read the configuration.
|
|
vtkSetStringMacro(FileName);
|
|
vtkGetStringMacro(FileName);
|
|
|
|
// Description:
|
|
// If on, then the Parse method will NOT report an error using vtkErrorMacro.
|
|
// Rather, it will just return false. This feature is useful when simply
|
|
// checking to see if a file is a valid XML file or there is otherwise a way
|
|
// to recover from the failed parse. This flag is off by default.
|
|
vtkGetMacro(SuppressErrorMessages, int);
|
|
vtkSetMacro(SuppressErrorMessages, int);
|
|
vtkBooleanMacro(SuppressErrorMessages, int);
|
|
|
|
protected:
|
|
vtkPVXMLParser();
|
|
~vtkPVXMLParser();
|
|
|
|
int SuppressErrorMessages;
|
|
|
|
void StartElement(const char* name, const char** atts);
|
|
void EndElement(const char* name);
|
|
void CharacterDataHandler(const char* data, int length);
|
|
|
|
void AddElement(vtkPVXMLElement* element);
|
|
void PushOpenElement(vtkPVXMLElement* element);
|
|
vtkPVXMLElement* PopOpenElement();
|
|
|
|
// The root XML element.
|
|
vtkPVXMLElement* RootElement;
|
|
|
|
// The stack of elements currently being parsed.
|
|
vtkPVXMLElement** OpenElements;
|
|
unsigned int NumberOfOpenElements;
|
|
unsigned int OpenElementsSize;
|
|
|
|
// Counter to assign unique element ids to those that don't have any.
|
|
unsigned int ElementIdIndex;
|
|
|
|
// Called by Parse() to read the stream and call ParseBuffer. Can
|
|
// be replaced by subclasses to change how input is read.
|
|
virtual int ParseXML();
|
|
|
|
// Overridden to implement the SuppressErrorMessages feature.
|
|
virtual void ReportXmlParseError();
|
|
|
|
private:
|
|
vtkPVXMLParser(const vtkPVXMLParser&); // Not implemented.
|
|
void operator=(const vtkPVXMLParser&); // Not implemented.
|
|
};
|
|
|
|
#endif
|