1
#include "SkXMLParser.h"
4
static void reset(SkXMLPullParser::Curr* curr)
6
curr->fEventType = SkXMLPullParser::ERROR;
8
curr->fAttrInfoCount = 0;
9
curr->fIsWhitespace = false;
12
SkXMLPullParser::SkXMLPullParser() : fStream(NULL)
14
fCurr.fEventType = ERROR;
18
SkXMLPullParser::SkXMLPullParser(SkStream* stream) : fStream(NULL)
20
fCurr.fEventType = ERROR;
23
this->setStream(stream);
26
SkXMLPullParser::~SkXMLPullParser()
28
this->setStream(NULL);
31
SkStream* SkXMLPullParser::setStream(SkStream* stream)
33
if (fStream && !stream)
36
SkRefCnt_SafeAssign(fStream, stream);
40
fCurr.fEventType = START_DOCUMENT;
45
fCurr.fEventType = ERROR;
52
SkXMLPullParser::EventType SkXMLPullParser::nextToken()
54
switch (fCurr.fEventType) {
63
fCurr.fEventType = this->onNextToken();
67
switch (fCurr.fEventType) {
75
return fCurr.fEventType;
78
const char* SkXMLPullParser::getName()
80
switch (fCurr.fEventType) {
89
const char* SkXMLPullParser::getText()
91
switch (fCurr.fEventType) {
93
case IGNORABLE_WHITESPACE:
100
bool SkXMLPullParser::isWhitespace()
102
switch (fCurr.fEventType) {
103
case IGNORABLE_WHITESPACE:
107
return fCurr.fIsWhitespace;
109
return false; // unknown/illegal
113
int SkXMLPullParser::getAttributeCount()
115
return fCurr.fAttrInfoCount;
118
void SkXMLPullParser::getAttributeInfo(int index, AttrInfo* info)
120
SkASSERT((unsigned)index < (unsigned)fCurr.fAttrInfoCount);
123
*info = fCurr.fAttrInfos[index];
126
bool SkXMLPullParser::onEntityReplacement(const char name[],
127
SkString* replacement)
129
// TODO: std 5 entities here