diff options
Diffstat (limited to 'skia/include/SkXMLParser.h')
-rw-r--r-- | skia/include/SkXMLParser.h | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/skia/include/SkXMLParser.h b/skia/include/SkXMLParser.h deleted file mode 100644 index ddad273..0000000 --- a/skia/include/SkXMLParser.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef SkXMLParser_DEFINED -#define SkXMLParser_DEFINED - -#include "SkMath.h" -#include "SkString.h" - -class SkStream; - -class SkDOM; -struct SkDOMNode; - -class SkXMLParserError { -public: - enum ErrorCode { - kNoError, - kEmptyFile, - kUnknownElement, - kUnknownAttributeName, - kErrorInAttributeValue, - kDuplicateIDs, - kUnknownError - }; - - SkXMLParserError(); - virtual ~SkXMLParserError(); - ErrorCode getErrorCode() const { return fCode; } - virtual void getErrorString(SkString* str) const; - int getLineNumber() const { return fLineNumber; } - int getNativeCode() const { return fNativeCode; } - bool hasError() const { return fCode != kNoError || fNativeCode != -1; } - bool hasNoun() const { return fNoun.size() > 0; } - void reset(); - void setCode(ErrorCode code) { fCode = code; } - void setNoun(const SkString& str) { fNoun.set(str); } - void setNoun(const char* ch) { fNoun.set(ch); } - void setNoun(const char* ch, size_t len) { fNoun.set(ch, len); } -protected: - ErrorCode fCode; -private: - int fLineNumber; - int fNativeCode; - SkString fNoun; - friend class SkXMLParser; -}; - -class SkXMLParser { -public: - SkXMLParser(SkXMLParserError* parserError = NULL); - virtual ~SkXMLParser(); - - /** Returns true for success - */ - bool parse(const char doc[], size_t len); - bool parse(SkStream& docStream); - bool parse(const SkDOM&, const SkDOMNode*); - - static void GetNativeErrorString(int nativeErrorCode, SkString* str); - -protected: - // override in subclasses; return true to stop parsing - virtual bool onStartElement(const char elem[]); - virtual bool onAddAttribute(const char name[], const char value[]); - virtual bool onEndElement(const char elem[]); - virtual bool onText(const char text[], int len); - -public: - // public for ported implementation, not meant for clients to call - virtual bool startElement(const char elem[]); - virtual bool addAttribute(const char name[], const char value[]); - virtual bool endElement(const char elem[]); - virtual bool text(const char text[], int len); - void* fParser; -protected: - SkXMLParserError* fError; -private: - void reportError(void* parser); -}; - -class SkXMLPullParser { -public: - SkXMLPullParser(); - explicit SkXMLPullParser(SkStream*); - virtual ~SkXMLPullParser(); - - SkStream* getStream() const { return fStream; } - SkStream* setStream(SkStream* stream); - - enum EventType { - ERROR = -1, - START_DOCUMENT, - END_DOCUMENT, - START_TAG, - END_TAG, - TEXT, - CDSECT, - ENTITY_REF, - IGNORABLE_WHITESPACE, - PROCESSING_INSTRUCTION, - COMMENT, - DOCDECL - }; - - EventType nextToken(); - EventType getEventType() const { return fCurr.fEventType; } - - struct AttrInfo { - const char* fName; - const char* fValue; - }; - - int getDepth() const { return fDepth; } - const char* getName(); - int getAttributeCount(); - void getAttributeInfo(int, AttrInfo*); - const char* getText(); - bool isWhitespace(); - -protected: - virtual bool onEntityReplacement(const char name[], - SkString* replacement); - -public: - struct Curr { - EventType fEventType; - const char* fName; - AttrInfo* fAttrInfos; - int fAttrInfoCount; - bool fIsWhitespace; - }; - -private: - // implemented in the porting layer - bool onInit(); // return false on failure - EventType onNextToken(); - void onExit(); - - SkStream* fStream; - Curr fCurr; - int fDepth; - - struct Impl; - Impl* fImpl; -}; - -#endif |