31 #ifndef vtkXMLDataParser_h
32 #define vtkXMLDataParser_h
53 enum { BigEndian, LittleEndian };
59 void* buffer, vtkTypeUInt64 startWord,
60 size_t numWords,
int wordType);
62 char* buffer, vtkTypeUInt64 startWord,
64 {
return this->ReadInlineData(element, isAscii, buffer, startWord,
71 size_t ReadAppendedData(vtkTypeInt64
offset,
void* buffer,
72 vtkTypeUInt64 startWord,
73 size_t numWords,
int wordType);
75 vtkTypeUInt64 startWord,
77 {
return this->ReadAppendedData(offset, buffer, startWord, numWords,
84 size_t ReadAsciiData(
void* buffer, vtkTypeUInt64 startWord,
85 size_t numWords,
int wordType);
91 size_t ReadBinaryData(
void* buffer, vtkTypeUInt64 startWord,
92 size_t maxWords,
int wordType);
104 size_t GetWordTypeSize(
int wordType);
113 vtkGetMacro(Abort,
int);
114 vtkSetMacro(Abort,
int);
120 vtkGetMacro(Progress,
float);
121 vtkSetMacro(Progress,
float);
133 vtkGetMacro(AttributesEncoding,
int);
147 return this->AppendedDataPosition;
156 virtual int Parse(
const char*);
157 virtual int Parse(
const char*,
unsigned int);
164 int CheckPrimaryAttributes();
165 void FindAppendedDataPosition();
166 int ParseBuffer(
const char* buffer,
unsigned int count);
171 void FreeAllElements();
172 void PerformByteSwap(
void*
data,
size_t numWords,
size_t wordSize);
175 int ReadCompressionHeader();
176 size_t FindBlockSize(vtkTypeUInt64 block);
177 int ReadBlock(vtkTypeUInt64 block,
unsigned char* buffer);
178 unsigned char* ReadBlock(vtkTypeUInt64 block);
179 size_t ReadUncompressedData(
unsigned char*
data,
180 vtkTypeUInt64 startWord,
183 size_t ReadCompressedData(
unsigned char*
data,
184 vtkTypeUInt64 startWord,
192 int ParseAsciiData(
int wordType);
193 void FreeAsciiBuffer();
196 void UpdateProgress(
float progress);
#define VTKIOXMLPARSER_EXPORT
Abstract interface for data compression classes.
Parse XML to handle element tags and attributes.
Represents an XML element and those nested inside.
vtkInputStream * InlineDataStream
virtual void StartElement(const char *name, const char **atts)
vtkInputStream * AppendedDataStream
vtkTypeInt64 AppendedDataPosition
#define VTK_ENCODING_UNKNOWN
size_t * BlockCompressedSizes
virtual void CharacterDataHandler(const char *data, int length)
vtkXMLDataElement ** OpenElements
void AddCharacterData(const char *c, size_t length)
virtual void CharacterDataHandler(const char *data, int length)
vtkTypeInt64 AsciiDataPosition
a simple class to control print indentation
size_t ReadAppendedData(vtkTypeInt64 offset, char *buffer, vtkTypeUInt64 startWord, size_t numWords)
void PrintSelf(ostream &os, vtkIndent indent)
#define VTK_ENCODING_NONE
vtkXMLDataElement * RootElement
vtkDataCompressor * Compressor
vtkTypeInt64 GetAppendedDataPosition()
unsigned int NumberOfOpenElements
virtual int ParsingComplete()
vtkInputStream * DataStream
size_t ReadInlineData(vtkXMLDataElement *element, int isAscii, char *buffer, vtkTypeUInt64 startWord, size_t numWords)
size_t BlockUncompressedSize
vtkTypeInt64 * BlockStartOffsets
Used by vtkXMLReader to parse VTK XML files.
virtual void EndElement(const char *name)
size_t PartialLastBlockUncompressedSize
virtual int ParseBuffer(const char *buffer, unsigned int count)
unsigned int OpenElementsSize
static vtkXMLParser * New()
unsigned char * AsciiDataBuffer
size_t AsciiDataBufferLength