00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef SkBML_WXMLParser_DEFINED
00018 #define SkBML_WXMLParser_DEFINED
00019
00020 #include "SkString.h"
00021 #include "SkXMLParser.h"
00022
00023 class SkStream;
00024 class SkWStream;
00025
00026 class BML_WXMLParser : public SkXMLParser {
00027 public:
00028 BML_WXMLParser(SkWStream& writer);
00029 virtual ~BML_WXMLParser();
00030 static void Write(SkStream& s, const char filename[]);
00031
00033 SkDEBUGCODE(static void UnitTest();)
00035 private:
00036 virtual bool onAddAttribute(const char name[], const char value[]);
00037 virtual bool onEndElement(const char name[]);
00038 virtual bool onStartElement(const char name[]);
00039 BML_WXMLParser& operator=(const BML_WXMLParser& src);
00040 #ifdef SK_DEBUG
00041 int fElemsCount, fElemsReused;
00042 int fAttrsCount, fNamesReused, fValuesReused;
00043 #endif
00044 SkWStream& fWriter;
00045 char* fElems[256];
00046 char* fAttrNames[256];
00047 char* fAttrValues[256];
00048
00049
00050 U8 fNextElem, fNextAttrName, fNextAttrValue;
00051 };
00052
00053 #endif // SkBML_WXMLParser_DEFINED
00054