kjellander 081254f2c6 Remove the rtc_relative_path GYP variable and similar defines
This is a reland of https://codereview.webrtc.org/1903553003/ but with
the SRTP changes removed, since they're needed downstream.

The defines that can be used to alter the include paths for Expat and gtest
are no longer needed in WebRTC or Chromium. Remove them to simplify GYP.

Removed defines:
EXPAT_RELATIVE_PATH
GTEST_RELATIVE_PATH

They're all set in the Chromium build so this shouldn't affect Chromium:
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libjingle/libjingle.gyp

BUG=webrtc:4256
NOTRY=True
NOPRESUBMIT=True
TBR=perkj@webrtc.org

Review-Url: https://codereview.webrtc.org/1925733002
Cr-Commit-Position: refs/heads/master@{#12536}
2016-04-27 17:13:28 +00:00

100 lines
2.9 KiB
C++

/*
* Copyright 2004 The WebRTC Project Authors. All rights reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef WEBRTC_LIBJINGLE_XMLLITE_XMLPARSER_H_
#define WEBRTC_LIBJINGLE_XMLLITE_XMLPARSER_H_
#include <string>
#include "webrtc/libjingle/xmllite/xmlnsstack.h"
#include "expat.h"
struct XML_ParserStruct;
typedef struct XML_ParserStruct* XML_Parser;
namespace buzz {
class XmlParseHandler;
class XmlParseContext;
class XmlParser;
class XmlParseContext {
public:
virtual ~XmlParseContext() {}
virtual QName ResolveQName(const char * qname, bool isAttr) = 0;
virtual void RaiseError(XML_Error err) = 0;
virtual void GetPosition(unsigned long * line, unsigned long * column,
unsigned long * byte_index) = 0;
};
class XmlParseHandler {
public:
virtual ~XmlParseHandler() {}
virtual void StartElement(XmlParseContext * pctx,
const char * name, const char ** atts) = 0;
virtual void EndElement(XmlParseContext * pctx,
const char * name) = 0;
virtual void CharacterData(XmlParseContext * pctx,
const char * text, int len) = 0;
virtual void Error(XmlParseContext * pctx,
XML_Error errorCode) = 0;
};
class XmlParser {
public:
static void ParseXml(XmlParseHandler * pxph, std::string text);
explicit XmlParser(XmlParseHandler * pxph);
bool Parse(const char * data, size_t len, bool isFinal);
void Reset();
virtual ~XmlParser();
// expat callbacks
void ExpatStartElement(const char * name, const char ** atts);
void ExpatEndElement(const char * name);
void ExpatCharacterData(const char * text, int len);
void ExpatXmlDecl(const char * ver, const char * enc, int standalone);
private:
class ParseContext : public XmlParseContext {
public:
ParseContext();
virtual ~ParseContext();
virtual QName ResolveQName(const char * qname, bool isAttr);
virtual void RaiseError(XML_Error err) { if (!raised_) raised_ = err; }
virtual void GetPosition(unsigned long * line, unsigned long * column,
unsigned long * byte_index);
XML_Error RaisedError() { return raised_; }
void Reset();
void StartElement();
void EndElement();
void StartNamespace(const char * prefix, const char * ns);
void SetPosition(int line, int column, long byte_index);
private:
XmlnsStack xmlnsstack_;
XML_Error raised_;
XML_Size line_number_;
XML_Size column_number_;
XML_Index byte_index_;
};
ParseContext context_;
XML_Parser expat_;
XmlParseHandler * pxph_;
bool sentError_;
};
} // namespace buzz
#endif // WEBRTC_LIBJINGLE_XMLLITE_XMLPARSER_H_