ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
vtkPVXMLParser.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include "qPCL.h" // needed for export macro
11 #include "vtkSmartPointer.h" // needed for vtkSmartPointer.
12 #include "vtkXMLParser.h"
13 
14 class vtkPVXMLElement;
15 
16 class QPCL_ENGINE_LIB_API vtkPVXMLParser : public vtkXMLParser {
17 public:
18  vtkTypeMacro(vtkPVXMLParser, vtkXMLParser);
19  void PrintSelf(ostream& os, vtkIndent indent) override;
20  static vtkPVXMLParser* New();
21 
25  void PrintXML(ostream& os);
26 
30  vtkPVXMLElement* GetRootElement();
31 
33 
40  vtkGetMacro(SuppressErrorMessages, int);
41  vtkSetMacro(SuppressErrorMessages, int);
42  vtkBooleanMacro(SuppressErrorMessages, int);
44 
49  static vtkSmartPointer<vtkPVXMLElement> ParseXML(
50  const char* xmlcontents, bool suppress_errors = false);
51 
52 protected:
54  ~vtkPVXMLParser() override;
55 
57 
58  void StartElement(const char* name, const char** atts) override;
59  void EndElement(const char* name) override;
60  void CharacterDataHandler(const char* data, int length) override;
61 
62  void AddElement(vtkPVXMLElement* element);
63  void PushOpenElement(vtkPVXMLElement* element);
64  vtkPVXMLElement* PopOpenElement();
65 
66  // The root XML element.
68 
69  // The stack of elements currently being parsed.
71  unsigned int NumberOfOpenElements;
72  unsigned int OpenElementsSize;
73 
74  // Counter to assign unique element ids to those that don't have any.
75  unsigned int ElementIdIndex;
76 
77  // Called by Parse() to read the stream and call ParseBuffer. Can
78  // be replaced by subclasses to change how input is read.
79  int ParseXML() override;
80 
81  // Overridden to implement the SuppressErrorMessages feature.
82  void ReportXmlParseError() override;
83 
84 private:
85  vtkPVXMLParser(const vtkPVXMLParser&) = delete;
86  void operator=(const vtkPVXMLParser&) = delete;
87 };
std::string name
static vtkPVXMLParser * New()
vtkTypeMacro(vtkPVXMLParser, vtkXMLParser)
vtkGetMacro(SuppressErrorMessages, int)
vtkSetMacro(SuppressErrorMessages, int)
unsigned int NumberOfOpenElements
vtkPVXMLElement ** OpenElements
unsigned int OpenElementsSize
unsigned int ElementIdIndex
void AddElement(vtkPVXMLElement *element)
vtkBooleanMacro(SuppressErrorMessages, int)
vtkPVXMLElement * RootElement
GraphType data
Definition: graph_cut.cc:138
#define QPCL_ENGINE_LIB_API
Definition: qPCL.h:15