Files
hot-step-cpp-ROCm/engine/vendor/vst3sdk/vstgui4/vstgui/uidescription/xmlparser.h
T
2026-08-16 18:24:52 +07:00

49 lines
1.2 KiB
C++

// This file is part of VSTGUI. It is subject to the license terms
// in the LICENSE file found in the top-level directory of this
// distribution and at http://github.com/steinbergmedia/vstgui/LICENSE
#pragma once
#include "../lib/vstguibase.h"
#if VSTGUI_ENABLE_XML_PARSER
#include "uidescriptionfwd.h"
#include <memory>
namespace VSTGUI {
namespace Xml {
class Parser;
//-----------------------------------------------------------------------------
class IHandler
{
public:
virtual void startXmlElement (Parser* parser, IdStringPtr elementName, UTF8StringPtr* elementAttributes) = 0;
virtual void endXmlElement (Parser* parser, IdStringPtr name) = 0;
virtual void xmlCharData (Parser* parser, const int8_t* data, int32_t length) = 0;
virtual void xmlComment (Parser* parser, IdStringPtr comment) = 0;
};
//-----------------------------------------------------------------------------
class Parser
{
public:
Parser ();
virtual ~Parser () noexcept;
bool parse (IContentProvider* provider, IHandler* handler);
bool stop ();
IHandler* getHandler () const;
protected:
struct Impl;
std::unique_ptr<Impl> pImpl;
};
}} // namespaces
#endif // VSTGUI_ENABLE_XML_PARSER