Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Side by Side Diff: third_party/libjingle_xmpp/xmpp/xmppstanzaparser.h

Issue 2443903004: Add xmllite and xmpp sources to third_party/ (Closed)
Patch Set: Fix GN and sort includes Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2004 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef WEBRTC_LIBJINGLE_XMPP_XMPPSTANZAPARSER_H_
6 #define WEBRTC_LIBJINGLE_XMPP_XMPPSTANZAPARSER_H_
7
8 #include "third_party/libjingle_xmpp/xmllite/xmlbuilder.h"
9 #include "third_party/libjingle_xmpp/xmllite/xmlparser.h"
10
11
12 namespace buzz {
13
14 class XmlElement;
15
16 class XmppStanzaParseHandler {
17 public:
18 virtual ~XmppStanzaParseHandler() {}
19 virtual void StartStream(const XmlElement * pelStream) = 0;
20 virtual void Stanza(const XmlElement * pelStanza) = 0;
21 virtual void EndStream() = 0;
22 virtual void XmlError() = 0;
23 };
24
25 class XmppStanzaParser {
26 public:
27 XmppStanzaParser(XmppStanzaParseHandler *psph);
28 bool Parse(const char * data, size_t len, bool isFinal)
29 { return parser_.Parse(data, len, isFinal); }
30 void Reset();
31
32 private:
33 class ParseHandler : public XmlParseHandler {
34 public:
35 ParseHandler(XmppStanzaParser * outer) : outer_(outer) {}
36 virtual void StartElement(XmlParseContext * pctx,
37 const char * name, const char ** atts)
38 { outer_->IncomingStartElement(pctx, name, atts); }
39 virtual void EndElement(XmlParseContext * pctx,
40 const char * name)
41 { outer_->IncomingEndElement(pctx, name); }
42 virtual void CharacterData(XmlParseContext * pctx,
43 const char * text, int len)
44 { outer_->IncomingCharacterData(pctx, text, len); }
45 virtual void Error(XmlParseContext * pctx,
46 XML_Error errCode)
47 { outer_->IncomingError(pctx, errCode); }
48 private:
49 XmppStanzaParser * const outer_;
50 };
51
52 friend class ParseHandler;
53
54 void IncomingStartElement(XmlParseContext * pctx,
55 const char * name, const char ** atts);
56 void IncomingEndElement(XmlParseContext * pctx,
57 const char * name);
58 void IncomingCharacterData(XmlParseContext * pctx,
59 const char * text, int len);
60 void IncomingError(XmlParseContext * pctx,
61 XML_Error errCode);
62
63 XmppStanzaParseHandler * psph_;
64 ParseHandler innerHandler_;
65 XmlParser parser_;
66 int depth_;
67 XmlBuilder builder_;
68
69 };
70
71
72 }
73
74 #endif // WEBRTC_LIBJINGLE_XMPP_XMPPSTANZAPARSER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698