From: Egor C. <eg...@us...> - 2003-02-11 08:12:06
|
Update of /cvsroot/eas-dev/eas-dev/libs/libsxmlstream/src In directory sc8-pr-cvs1:/tmp/cvs-serv31785/src Modified Files: sxmlstream.cxx Log Message: New interface for SXmlSteam class. SXmlStream now can act as SAX-alike SXml parser emitting signals on start/end of elements and character data. Index: sxmlstream.cxx =================================================================== RCS file: /cvsroot/eas-dev/eas-dev/libs/libsxmlstream/src/sxmlstream.cxx,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- sxmlstream.cxx 4 Feb 2003 04:13:51 -0000 1.11 +++ sxmlstream.cxx 11 Feb 2003 08:12:03 -0000 1.12 @@ -35,18 +35,47 @@ /* SXmlStream */ -bool SXmlStream::queueIsEmpty() +void SXmlStream::processNode(const SXmlNode& n) { - return m_queue.empty(); + switch (node.type) { + case SXmlNode_Element_t: + + break; + + case SXmlNode_Attribute_t: + + break; + + case SXmlNode_Namespace_t: + + break; + + case SXmlNode_Char_t: + characters.emit(node.data); + break; + + default: + // Error Condition! + // FIXME: Need some exception to throw + break; + } } -SXmlNode SXmlStream::pop() +SXmlStream& SXmlStream::operator<<(const SXmlNode& n) { - SXmlNode e = m_queue.front(); - m_queue.pop(); - return e; + startRootElement.emit(); + processNode(node); + endRootElement.emit(); + m_queue.push_back(node); + return *this; } +SXmlStream& SXmlStream::operator<<(const string &s) +{ + + + return *this; +} #define BIN_LBRACKET "(" @@ -162,12 +191,6 @@ return os; } -SXmlBinaryStream& operator<<(SXmlBinaryStream& s, const ostream& os) -{ - SXmlBinaryStream bs(); - // TODO -} - /* SXmlTextStream */ ostream& SXml_TextOutput(ostream& os, SXmlNode e) @@ -244,10 +267,4 @@ return os; } -SXmlTextStream& operator<<(SXmlTextStream& s, const ostream& os) -{ - SXmlTextStream ts(); - // TODO -} - }; }; |