957 lines
40 KiB
C++
957 lines
40 KiB
C++
/*
|
|
File automatically generated by SOAdvancedDissector.py
|
|
More information at http://indefero.soutade.fr/p/soadvanceddissector
|
|
*/
|
|
|
|
#ifndef _MDOM_H
|
|
#define _MDOM_H
|
|
|
|
#include <xpath.h>
|
|
#include <uft.h>
|
|
|
|
|
|
namespace mdom {
|
|
|
|
class AttrConfig;
|
|
class NameValueIterator;
|
|
class AttributeIterator;
|
|
class Traversal;
|
|
class TearOffNodeTraversal;
|
|
class AttributeNodeTraversal;
|
|
class AttributeValueTraversal;
|
|
class DOM;
|
|
class DOMHost;
|
|
class DOMListener;
|
|
class DOMListenerMultiplex;
|
|
class DocumentHandler;
|
|
class DOMSerializer;
|
|
class DataSink;
|
|
class DelegatingDOM;
|
|
class DelegatingDOMLink;
|
|
class LinkAccessor;
|
|
class DelegatingDOMLinkAccessor;
|
|
class DelegatingDOMNodeRef;
|
|
class DelegatingTraversal;
|
|
class ElementConfig;
|
|
class ExternalEntityResolver;
|
|
class GenericAttributeValue;
|
|
class InfoSetHasher;
|
|
class Link;
|
|
class NamespaceNodeTraversal;
|
|
class Node;
|
|
class NodeData;
|
|
class NodeIterator;
|
|
class NodeLine;
|
|
class NodeLineTranslationIterator;
|
|
class NodeTranslationIterator;
|
|
class Node_firstChild;
|
|
class Node_firstChildElement;
|
|
class Node_lastChildElement;
|
|
class Node_nextSibling;
|
|
class ParseException;
|
|
class Reference;
|
|
class RemovedChildRecord;
|
|
class ShiftedNodeLine;
|
|
class SingleNodeLineTranslationIterator;
|
|
class SourceNodeLine;
|
|
class TearOffNodeReference;
|
|
class TextChangeRecord;
|
|
class TraversalRef;
|
|
|
|
|
|
class AttrConfig
|
|
{
|
|
public:
|
|
AttrConfig(uft::QName const&, uft::ValueParser const*, unsigned int, unsigned int, uft::Value const&, unsigned int);
|
|
|
|
void getCanonicalName() const;
|
|
void setFlags(unsigned int);
|
|
void staticInit();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class NameValueIterator
|
|
{
|
|
public:
|
|
virtual ~NameValueIterator();
|
|
virtual void next(uft::Value*, uft::Value*) = 0;
|
|
|
|
};
|
|
|
|
class AttributeIterator: public mdom::NameValueIterator
|
|
{
|
|
public:
|
|
AttributeIterator(mdom::Node const&);
|
|
|
|
virtual ~AttributeIterator();
|
|
virtual void next(uft::Value*, uft::Value*);
|
|
|
|
};
|
|
|
|
class Traversal
|
|
{
|
|
public:
|
|
virtual void incRef(mdom::NodeData*) = 0;
|
|
virtual void decRef(mdom::NodeData*) = 0;
|
|
virtual void getDOM() = 0;
|
|
virtual void owner(mdom::Node*) = 0;
|
|
virtual void parent(mdom::Node*) = 0;
|
|
virtual void child(mdom::Node*, int, bool) = 0;
|
|
virtual void sibling(mdom::Node*, int, bool) = 0;
|
|
virtual void attributeNode(mdom::Node*, uft::Value const&);
|
|
virtual void namespaceNode(mdom::Node*, uft::Value const&);
|
|
virtual void childCount(mdom::Node const*, bool);
|
|
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
|
|
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
|
|
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**) = 0;
|
|
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int) = 0;
|
|
virtual void create(mdom::Node*, int, uft::Value const&) = 0;
|
|
virtual void clone(mdom::Node*, bool) = 0;
|
|
virtual void import(mdom::Node*, mdom::Node const*, bool);
|
|
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*) = 0;
|
|
virtual void remove(mdom::Node const*) = 0;
|
|
virtual void getNodeType(mdom::Node const*) = 0;
|
|
virtual uft::String getNodeName(mdom::Node const*) = 0;
|
|
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int) = 0;
|
|
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&) = 0;
|
|
virtual void resolvePrefix(mdom::Node const*, uft::String const&) = 0;
|
|
virtual void getBaseURL(mdom::Node const*) = 0;
|
|
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**) = 0;
|
|
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int) = 0;
|
|
virtual void getAttribute(mdom::Node const*, uft::Value const&) = 0;
|
|
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&) = 0;
|
|
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
|
|
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
|
|
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
|
|
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
|
|
virtual void getChangeFlags(mdom::Node const*) = 0;
|
|
virtual void invalidate(mdom::Node const*, unsigned int) = 0;
|
|
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*) = 0;
|
|
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int) = 0;
|
|
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*) = 0;
|
|
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int) = 0;
|
|
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*) = 0;
|
|
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int) = 0;
|
|
virtual void getAttachment(mdom::Node const*, uft::Value const&) = 0;
|
|
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&) = 0;
|
|
virtual void getCacheID(mdom::Node const*);
|
|
virtual void getAttachment(uft::Value const&) = 0;
|
|
virtual void setAttachment(uft::Value const&, uft::Value const&) = 0;
|
|
virtual void getReference(mdom::Node const*, bool) = 0;
|
|
virtual void destroy() = 0;
|
|
virtual ~Traversal();
|
|
|
|
void addRef();
|
|
void release();
|
|
|
|
};
|
|
|
|
class TearOffNodeTraversal: public mdom::Traversal
|
|
{
|
|
public:
|
|
TearOffNodeTraversal(mdom::Node const&);
|
|
|
|
virtual void incRef(mdom::NodeData*);
|
|
virtual void decRef(mdom::NodeData*);
|
|
virtual void getDOM();
|
|
virtual void owner(mdom::Node*);
|
|
virtual void parent(mdom::Node*);
|
|
virtual void child(mdom::Node*, int, bool);
|
|
virtual void sibling(mdom::Node*, int, bool);
|
|
virtual void attributeNode(mdom::Node*, uft::Value const&);
|
|
virtual void namespaceNode(mdom::Node*, uft::Value const&);
|
|
virtual void childCount(mdom::Node const*, bool);
|
|
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
|
|
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
|
|
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
|
|
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void create(mdom::Node*, int, uft::Value const&);
|
|
virtual void clone(mdom::Node*, bool);
|
|
virtual void import(mdom::Node*, mdom::Node const*, bool);
|
|
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
|
|
virtual void remove(mdom::Node const*);
|
|
virtual void getNodeType(mdom::Node const*);
|
|
virtual uft::String getNodeName(mdom::Node const*);
|
|
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
|
|
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
|
|
virtual void getBaseURL(mdom::Node const*);
|
|
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
|
|
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void getAttribute(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
|
|
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
|
|
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
|
|
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
|
|
virtual void getChangeFlags(mdom::Node const*);
|
|
virtual void invalidate(mdom::Node const*, unsigned int);
|
|
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
|
|
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
|
|
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
|
|
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
|
|
virtual void getAttachment(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void getCacheID(mdom::Node const*);
|
|
virtual void getAttachment(uft::Value const&);
|
|
virtual void setAttachment(uft::Value const&, uft::Value const&);
|
|
virtual void getReference(mdom::Node const*, bool);
|
|
virtual void destroy();
|
|
virtual ~TearOffNodeTraversal();
|
|
virtual void getKey();
|
|
virtual void getAttKey();
|
|
|
|
void createTearOffNode(mdom::Node const&, uft::Value const&, unsigned int);
|
|
void staticInit();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class AttributeNodeTraversal: public mdom::TearOffNodeTraversal
|
|
{
|
|
public:
|
|
AttributeNodeTraversal(mdom::Node const&);
|
|
|
|
virtual void incRef(mdom::NodeData*);
|
|
virtual void decRef(mdom::NodeData*);
|
|
virtual void getDOM();
|
|
virtual void owner(mdom::Node*);
|
|
virtual void parent(mdom::Node*);
|
|
virtual void child(mdom::Node*, int, bool);
|
|
virtual void sibling(mdom::Node*, int, bool);
|
|
virtual void attributeNode(mdom::Node*, uft::Value const&);
|
|
virtual void namespaceNode(mdom::Node*, uft::Value const&);
|
|
virtual void childCount(mdom::Node const*, bool);
|
|
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
|
|
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
|
|
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
|
|
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void create(mdom::Node*, int, uft::Value const&);
|
|
virtual void clone(mdom::Node*, bool);
|
|
virtual void import(mdom::Node*, mdom::Node const*, bool);
|
|
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
|
|
virtual void remove(mdom::Node const*);
|
|
virtual void getNodeType(mdom::Node const*);
|
|
virtual uft::String getNodeName(mdom::Node const*);
|
|
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
|
|
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
|
|
virtual void getBaseURL(mdom::Node const*);
|
|
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
|
|
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void getAttribute(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
|
|
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
|
|
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
|
|
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
|
|
virtual void getChangeFlags(mdom::Node const*);
|
|
virtual void invalidate(mdom::Node const*, unsigned int);
|
|
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
|
|
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
|
|
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
|
|
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
|
|
virtual void getAttachment(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void getCacheID(mdom::Node const*);
|
|
virtual void getAttachment(uft::Value const&);
|
|
virtual void setAttachment(uft::Value const&, uft::Value const&);
|
|
virtual void getReference(mdom::Node const*, bool);
|
|
virtual void destroy();
|
|
virtual ~AttributeNodeTraversal();
|
|
virtual void getKey();
|
|
virtual void getAttKey();
|
|
|
|
};
|
|
|
|
class AttributeValueTraversal: public mdom::TearOffNodeTraversal
|
|
{
|
|
public:
|
|
AttributeValueTraversal(mdom::Node const&);
|
|
|
|
virtual void incRef(mdom::NodeData*);
|
|
virtual void decRef(mdom::NodeData*);
|
|
virtual void getDOM();
|
|
virtual void owner(mdom::Node*);
|
|
virtual void parent(mdom::Node*);
|
|
virtual void child(mdom::Node*, int, bool);
|
|
virtual void sibling(mdom::Node*, int, bool);
|
|
virtual void attributeNode(mdom::Node*, uft::Value const&);
|
|
virtual void namespaceNode(mdom::Node*, uft::Value const&);
|
|
virtual void childCount(mdom::Node const*, bool);
|
|
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
|
|
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
|
|
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
|
|
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void create(mdom::Node*, int, uft::Value const&);
|
|
virtual void clone(mdom::Node*, bool);
|
|
virtual void import(mdom::Node*, mdom::Node const*, bool);
|
|
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
|
|
virtual void remove(mdom::Node const*);
|
|
virtual void getNodeType(mdom::Node const*);
|
|
virtual uft::String getNodeName(mdom::Node const*);
|
|
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
|
|
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
|
|
virtual void getBaseURL(mdom::Node const*);
|
|
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
|
|
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void getAttribute(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
|
|
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
|
|
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
|
|
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
|
|
virtual void getChangeFlags(mdom::Node const*);
|
|
virtual void invalidate(mdom::Node const*, unsigned int);
|
|
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
|
|
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
|
|
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
|
|
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
|
|
virtual void getAttachment(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void getCacheID(mdom::Node const*);
|
|
virtual void getAttachment(uft::Value const&);
|
|
virtual void setAttachment(uft::Value const&, uft::Value const&);
|
|
virtual void getReference(mdom::Node const*, bool);
|
|
virtual void destroy();
|
|
virtual ~AttributeValueTraversal();
|
|
virtual void getKey();
|
|
virtual void getAttKey();
|
|
|
|
};
|
|
|
|
class DOM
|
|
{
|
|
public:
|
|
DOM(uft::ErrorHandler*);
|
|
|
|
virtual ~DOM();
|
|
virtual void getDOMId() = 0;
|
|
virtual void getDOMCaps() = 0;
|
|
virtual void query(uft::Value const&, void*) = 0;
|
|
virtual void setElementConfigs(mdom::Node const&, mdom::ElementConfig const*, unsigned int) = 0;
|
|
virtual void setPreParser(uft::ValueParser*) = 0;
|
|
virtual mdom::Node getRoot() = 0;
|
|
virtual void getResource(uft::URL const&) = 0;
|
|
virtual void attachDOMListener(unsigned int, mdom::DOMListener*) = 0;
|
|
virtual void getErrorHandler();
|
|
virtual void clearChanges() = 0;
|
|
virtual void cloneConfig() = 0;
|
|
virtual void setDOMHost(mdom::DOMHost*) = 0;
|
|
|
|
};
|
|
|
|
class DOMHost
|
|
{
|
|
public:
|
|
virtual ~DOMHost();
|
|
virtual void requestClearChanges(mdom::Node const&) = 0;
|
|
virtual void requestResource(uft::URL const&) = 0;
|
|
virtual void showErrorMessage(uft::String&) = 0;
|
|
|
|
};
|
|
|
|
class DOMListener
|
|
{
|
|
public:
|
|
virtual ~DOMListener();
|
|
virtual void created(mdom::Node const*) = 0;
|
|
virtual void inserting(mdom::Node const*, mdom::Node const*) = 0;
|
|
virtual void inserted(mdom::Node const*, mdom::Node const*) = 0;
|
|
virtual void removing(mdom::Node const*, mdom::Node const*) = 0;
|
|
virtual void removed(mdom::Node const*, mdom::Node const*) = 0;
|
|
virtual void changingNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&) = 0;
|
|
virtual void wantChangedNodeValueCall(mdom::Node const*) = 0;
|
|
virtual void changedNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&) = 0;
|
|
virtual void changingAttribute(mdom::Node const*, uft::Value const&, uft::Value const&) = 0;
|
|
virtual void wantChangedAttributeCall(mdom::Node const*, uft::Value const&) = 0;
|
|
virtual void changedAttribute(mdom::Node const*, uft::Value const&, uft::Value const&, uft::Value const&) = 0;
|
|
virtual void changingLink(mdom::Node const*, uft::Value const&, mdom::Node const*, mdom::Node const*) = 0;
|
|
virtual void wantChangedLinkCall(mdom::Node const*, uft::Value const&) = 0;
|
|
virtual void changedLink(mdom::Node const*, uft::Value const&, mdom::Node const*, mdom::Node const*) = 0;
|
|
virtual void changingElementConfig(mdom::Node const*, unsigned int) = 0;
|
|
virtual void changedElementConfig(mdom::Node const*) = 0;
|
|
virtual void changedBranch(mdom::Node const*) = 0;
|
|
|
|
};
|
|
|
|
class DOMListenerMultiplex
|
|
{
|
|
public:
|
|
DOMListenerMultiplex();
|
|
DOMListenerMultiplex(mdom::DOMListenerMultiplex const&);
|
|
|
|
~DOMListenerMultiplex();
|
|
|
|
void attachDOMListener(unsigned int, mdom::DOMListener*);
|
|
void changedAttribute(mdom::Node const*, uft::Value const&, uft::Value const&, uft::Value const&);
|
|
void changedBranch(mdom::Node const*);
|
|
void changedElementConfig(mdom::Node const*);
|
|
// void changedLink(mdom::Node const*, uft::sref<mdom::AttrConfig> const&, mdom::Node const*, mdom::Node const*);
|
|
void changedNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
|
|
void changingAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
void changingElementConfig(mdom::Node const*, unsigned int);
|
|
// void changingLink(mdom::Node const*, uft::sref<mdom::AttrConfig> const&, mdom::Node const*, mdom::Node const*);
|
|
void changingNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
|
|
void created(mdom::Node const*);
|
|
void inserted(mdom::Node const*, mdom::Node const*);
|
|
void inserting(mdom::Node const*, mdom::Node const*);
|
|
void removed(mdom::Node const*, mdom::Node const*);
|
|
void removing(mdom::Node const*, mdom::Node const*);
|
|
void wantChangedAttributeCall(mdom::Node const*, uft::Value const&);
|
|
// void wantChangedLinkCall(mdom::Node const*, uft::sref<mdom::AttrConfig> const&);
|
|
void wantChangedNodeValueCall(mdom::Node const*);
|
|
|
|
};
|
|
|
|
class DocumentHandler
|
|
{
|
|
public:
|
|
DocumentHandler();
|
|
|
|
virtual ~DocumentHandler();
|
|
virtual bool characters(uft::Value const&) = 0;
|
|
virtual bool comment(uft::Value const&) = 0;
|
|
virtual bool endDocument() = 0;
|
|
virtual bool endElement(uft::Value const&, uft::Value const&, uft::Value const&) = 0;
|
|
virtual bool endEntity(uft::Value const&) = 0;
|
|
virtual bool processingInstruction(uft::Value const&, uft::Value const&) = 0;
|
|
virtual bool startDocument() = 0;
|
|
virtual bool startElement(mdom::Node const&, uft::Value const&, uft::Value const&, uft::Value const&, mdom::NameValueIterator*) = 0;
|
|
virtual bool startEntity(uft::Value const&) = 0;
|
|
};
|
|
|
|
class DOMSerializer: public mdom::DocumentHandler
|
|
{
|
|
public:
|
|
DOMSerializer();
|
|
|
|
virtual ~DOMSerializer();
|
|
virtual bool characters(uft::Value const&);
|
|
virtual bool comment(uft::Value const&);
|
|
virtual bool endDocument();
|
|
virtual bool endElement(uft::Value const&, uft::Value const&, uft::Value const&);
|
|
virtual bool endEntity(uft::Value const&);
|
|
virtual bool processingInstruction(uft::Value const&, uft::Value const&);
|
|
virtual bool startDocument();
|
|
virtual bool startElement(mdom::Node const&, uft::Value const&, uft::Value const&, uft::Value const&, mdom::NameValueIterator*);
|
|
virtual bool startEntity(uft::Value const&);
|
|
virtual bool getOutputString();
|
|
|
|
void appendValue(uft::Value const&, unsigned int);
|
|
void lookupAutogenNSStack(uft::String&, uft::String&);
|
|
void lookupNSStack(uft::String&, uft::String&);
|
|
|
|
};
|
|
|
|
class DataSink
|
|
{
|
|
public:
|
|
virtual void virtfunc8() = 0;
|
|
virtual void virtfunc12() = 0;
|
|
|
|
};
|
|
|
|
class DelegatingDOM: public mdom::DOM
|
|
{
|
|
public:
|
|
DelegatingDOM(mdom::DOM*);
|
|
DelegatingDOM(mdom::Node const&);
|
|
|
|
virtual ~DelegatingDOM();
|
|
virtual void getDOMId() = 0;
|
|
virtual void getDOMCaps() = 0;
|
|
virtual void query(uft::Value const&, void*) = 0;
|
|
virtual void setElementConfigs(mdom::Node const&, mdom::ElementConfig const*, unsigned int);
|
|
virtual void setPreParser(uft::ValueParser*);
|
|
virtual mdom::Node getRoot();
|
|
virtual void getResource(uft::URL const&);
|
|
virtual void attachDOMListener(unsigned int, mdom::DOMListener*);
|
|
virtual void getErrorHandler();
|
|
virtual void clearChanges();
|
|
virtual void cloneConfig();
|
|
virtual void setDOMHost(mdom::DOMHost*);
|
|
virtual void baseNode(mdom::Node const&);
|
|
virtual void traversalSwitch(mdom::Node*);
|
|
virtual void traversalSwitch(mdom::Node*, uft::Value const&);
|
|
virtual void createDelegateFor(mdom::Node*, uft::Value const&);
|
|
virtual void destroyDelegate(mdom::DelegatingTraversal*);
|
|
virtual void getDefaultKey() const;
|
|
|
|
void refreshBase(mdom::Node const&);
|
|
void registerRef(mdom::DelegatingDOMNodeRef*);
|
|
void translateNode(mdom::Node const&);
|
|
void translateNode(mdom::Node const&, uft::Value const&);
|
|
void unregisterRef(mdom::DelegatingDOMNodeRef*);
|
|
|
|
};
|
|
|
|
class DelegatingDOMLink
|
|
{
|
|
public:
|
|
void query(uft::Value const&, void*);
|
|
void staticInit();
|
|
void toString() const;
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class LinkAccessor
|
|
{
|
|
public:
|
|
virtual void getFirstLinkedNode(uft::Value const&, mdom::Node const&);
|
|
virtual void iterateLinkedNodes(uft::Value const&, mdom::Node const&, unsigned int*);
|
|
virtual void finishLinkedNodeIteration(uft::Value const&, mdom::Node const&, unsigned int);
|
|
|
|
void* s_instance;
|
|
|
|
};
|
|
|
|
class DelegatingDOMLinkAccessor: public mdom::LinkAccessor
|
|
{
|
|
public:
|
|
virtual void getFirstLinkedNode(uft::Value const&, mdom::Node const&);
|
|
virtual void iterateLinkedNodes(uft::Value const&, mdom::Node const&, unsigned int*);
|
|
virtual void finishLinkedNodeIteration(uft::Value const&, mdom::Node const&, unsigned int);
|
|
|
|
void* s_instance;
|
|
|
|
};
|
|
|
|
class DelegatingDOMNodeRef
|
|
{
|
|
public:
|
|
DelegatingDOMNodeRef(mdom::DelegatingDOM*, mdom::Reference const&, uft::Value const&);
|
|
|
|
~DelegatingDOMNodeRef();
|
|
|
|
void query(uft::Value const&, void*);
|
|
void staticInit();
|
|
void toString() const;
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class DelegatingTraversal: public mdom::Traversal
|
|
{
|
|
public:
|
|
DelegatingTraversal(mdom::Traversal*, mdom::DelegatingDOM*, uft::Value const&);
|
|
|
|
virtual void incRef(mdom::NodeData*);
|
|
virtual void decRef(mdom::NodeData*);
|
|
virtual void getDOM();
|
|
virtual void owner(mdom::Node*);
|
|
virtual void parent(mdom::Node*);
|
|
virtual void child(mdom::Node*, int, bool);
|
|
virtual void sibling(mdom::Node*, int, bool);
|
|
virtual void attributeNode(mdom::Node*, uft::Value const&);
|
|
virtual void namespaceNode(mdom::Node*, uft::Value const&);
|
|
virtual void childCount(mdom::Node const*, bool);
|
|
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
|
|
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
|
|
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
|
|
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void create(mdom::Node*, int, uft::Value const&);
|
|
virtual void clone(mdom::Node*, bool);
|
|
virtual void import(mdom::Node*, mdom::Node const*, bool);
|
|
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
|
|
virtual void remove(mdom::Node const*);
|
|
virtual void getNodeType(mdom::Node const*);
|
|
virtual uft::String getNodeName(mdom::Node const*);
|
|
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
|
|
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
|
|
virtual void getBaseURL(mdom::Node const*);
|
|
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
|
|
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void getAttribute(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
|
|
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
|
|
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
|
|
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
|
|
virtual void getChangeFlags(mdom::Node const*);
|
|
virtual void invalidate(mdom::Node const*, unsigned int);
|
|
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
|
|
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
|
|
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
|
|
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
|
|
virtual void getAttachment(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void getCacheID(mdom::Node const*);
|
|
virtual void getAttachment(uft::Value const&);
|
|
virtual void setAttachment(uft::Value const&, uft::Value const&);
|
|
virtual void getReference(mdom::Node const*, bool);
|
|
virtual void destroy();
|
|
virtual ~DelegatingTraversal();
|
|
virtual void traversalSwitch(mdom::Node*);
|
|
virtual void traversalSwitchForResource(mdom::Node*, mdom::Node const&);
|
|
|
|
};
|
|
|
|
class ElementConfig
|
|
{
|
|
public:
|
|
};
|
|
|
|
class ExternalEntityResolver
|
|
{
|
|
public:
|
|
virtual void getExternalEntity(uft::String const&, uft::URL const&) = 0;
|
|
|
|
};
|
|
|
|
class GenericAttributeValue
|
|
{
|
|
public:
|
|
void staticInit();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class InfoSetHasher
|
|
{
|
|
public:
|
|
InfoSetHasher();
|
|
|
|
~InfoSetHasher();
|
|
|
|
virtual void update(unsigned char const*, unsigned int) = 0;
|
|
|
|
void flushText();
|
|
void hashInfoset(mdom::Node const&);
|
|
void updateStr(char const*, unsigned int);
|
|
void updateStr(uft::String const&);
|
|
|
|
};
|
|
|
|
class Link
|
|
{
|
|
public:
|
|
void finishLinkedNodeIteration(mdom::Node const&, unsigned int) const;
|
|
void getFirstLinkedNode(mdom::Node const&) const;
|
|
void getLinkAccessor() const;
|
|
void isInstanceOf(uft::Value const&);
|
|
void iterateLinkedNodes(mdom::Node const&, unsigned int*) const;
|
|
|
|
};
|
|
|
|
class NamespaceNodeTraversal: public mdom::TearOffNodeTraversal
|
|
{
|
|
public:
|
|
NamespaceNodeTraversal(mdom::Node const&);
|
|
|
|
virtual void incRef(mdom::NodeData*);
|
|
virtual void decRef(mdom::NodeData*);
|
|
virtual void getDOM();
|
|
virtual void owner(mdom::Node*);
|
|
virtual void parent(mdom::Node*);
|
|
virtual void child(mdom::Node*, int, bool);
|
|
virtual void sibling(mdom::Node*, int, bool);
|
|
virtual void attributeNode(mdom::Node*, uft::Value const&);
|
|
virtual void namespaceNode(mdom::Node*, uft::Value const&);
|
|
virtual void childCount(mdom::Node const*, bool);
|
|
virtual void getChildrenCountsToNode(mdom::Node const*, mdom::Node const*, unsigned int*, unsigned int*);
|
|
virtual void getChildrenCountsToElement(mdom::Node const*, uft::String, unsigned int*, unsigned int*, mdom::Node*, unsigned int);
|
|
virtual int iterateBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void iterateDirtyBranch(mdom::Node const*, mdom::Node*, unsigned int);
|
|
virtual void nextLink(mdom::Node const*, unsigned int, unsigned int, mdom::Node*, uft::Value const**);
|
|
virtual void finishLinkIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void create(mdom::Node*, int, uft::Value const&);
|
|
virtual void clone(mdom::Node*, bool);
|
|
virtual void import(mdom::Node*, mdom::Node const*, bool);
|
|
virtual void insertBefore(mdom::Node const*, mdom::Node const*, mdom::Node const*);
|
|
virtual void remove(mdom::Node const*);
|
|
virtual void getNodeType(mdom::Node const*);
|
|
virtual uft::String getNodeName(mdom::Node const*);
|
|
virtual uft::Value getNodeValue(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void changeNodeValue(mdom::Node const*, unsigned int, unsigned int, uft::Value const&);
|
|
virtual void resolvePrefix(mdom::Node const*, uft::String const&);
|
|
virtual void getBaseURL(mdom::Node const*);
|
|
virtual void nextAttribute(mdom::Node const*, unsigned int, unsigned int, uft::Value const**, uft::Value const**);
|
|
virtual void finishAttributeIteration(mdom::Node const*, unsigned int, unsigned int);
|
|
virtual void getAttribute(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttribute(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void compareNodes(mdom::Node const*, mdom::Node const*);
|
|
virtual void evaluate(xpath::Expression const&, mdom::Node const*, xpath::Context*, xpath::ResultType);
|
|
virtual void iterate(xpath::Expression const&, xpath::Context*, mdom::Node*);
|
|
virtual void finishIteration(xpath::Expression const&, xpath::Context*);
|
|
virtual void getChangeFlags(mdom::Node const*);
|
|
virtual void invalidate(mdom::Node const*, unsigned int);
|
|
virtual void iterateChangedAttributes(mdom::Node const*, unsigned int, uft::Value*, uft::Value*);
|
|
virtual void finishChangedAttributeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateNodeValueChanges(mdom::Node const*, unsigned int, mdom::TextChangeRecord*);
|
|
virtual void finishNodeValueChangeIteration(mdom::Node const*, unsigned int);
|
|
virtual void iterateRemovedChildren(mdom::Node const*, unsigned int, mdom::RemovedChildRecord*);
|
|
virtual void finishRemovedChildIteration(mdom::Node const*, unsigned int);
|
|
virtual void getAttachment(mdom::Node const*, uft::Value const&);
|
|
virtual void setAttachment(mdom::Node const*, uft::Value const&, uft::Value const&);
|
|
virtual void getCacheID(mdom::Node const*);
|
|
virtual void getAttachment(uft::Value const&);
|
|
virtual void setAttachment(uft::Value const&, uft::Value const&);
|
|
virtual void getReference(mdom::Node const*, bool);
|
|
virtual void destroy();
|
|
virtual ~NamespaceNodeTraversal();
|
|
virtual void getKey();
|
|
virtual void getAttKey();
|
|
|
|
};
|
|
|
|
class NodeIterator
|
|
{
|
|
public:
|
|
virtual ~NodeIterator();
|
|
virtual void next() = 0;
|
|
virtual void current() = 0;
|
|
|
|
};
|
|
|
|
class Node
|
|
{
|
|
public:
|
|
Node();
|
|
Node(mdom::Node const&);
|
|
Node(mdom::Node_firstChild const&);
|
|
Node(mdom::Node_firstChildElement const&);
|
|
Node(mdom::Node_lastChildElement const&);
|
|
Node(mdom::Node_nextSibling const&);
|
|
|
|
~Node();
|
|
|
|
void appendChild(mdom::Node const&) const;
|
|
void createElement(uft::QName const&) const;
|
|
void createNode(int, uft::Value const&) const;
|
|
void createTextNode(uft::String const&) const;
|
|
void finishIteration(xpath::Expression const&, xpath::Context*);
|
|
void getAttribute(uft::Value const&) const;
|
|
mdom::Node_firstChild getFirstChild() const;
|
|
mdom::Node_firstChildElement getFirstChildElement() const;
|
|
void getLastChildElement() const;
|
|
void getNextSibling() const;
|
|
void getNodeType() const;
|
|
void getOwner() const;
|
|
void getReference(bool) const;
|
|
void importNode(mdom::Node const&, bool) const;
|
|
void inPlaceCreate(int, uft::Value const&);
|
|
void isValid() const;
|
|
void iterate(xpath::Expression const&, xpath::Context*);
|
|
mdom::NodeIterator* iterateBranch(mdom::Node const&, unsigned int*);
|
|
void operator=(mdom::Node const&);
|
|
void remove() const;
|
|
void setAttribute(uft::Value const&, uft::Value const&) const;
|
|
void toChild(int, bool);
|
|
Node toFirstChild();
|
|
void toFirstChildElement();
|
|
void toLastChildElement();
|
|
void toNextSibling();
|
|
void toNextSiblingElement();
|
|
void toOwner();
|
|
void toPreviousSiblingElement();
|
|
void toSibling(int, bool);
|
|
void walkBranch(mdom::DocumentHandler*) const;
|
|
|
|
};
|
|
|
|
class NodeData
|
|
{
|
|
public:
|
|
};
|
|
|
|
class NodeLine
|
|
{
|
|
public:
|
|
virtual ~NodeLine();
|
|
virtual void length() = 0;
|
|
virtual void item(unsigned int) = 0;
|
|
virtual void last();
|
|
|
|
};
|
|
|
|
class NodeLineTranslationIterator
|
|
{
|
|
public:
|
|
virtual ~NodeLineTranslationIterator();
|
|
virtual void next() = 0;
|
|
virtual void current() = 0;
|
|
virtual void consumed() = 0;
|
|
virtual void endTranslation() = 0;
|
|
virtual void translationInfo() = 0;
|
|
|
|
void* RETURN_UNTRANSLATED;
|
|
|
|
};
|
|
|
|
class NodeTranslationIterator: public mdom::NodeIterator
|
|
{
|
|
public:
|
|
NodeTranslationIterator(mdom::NodeLineTranslationIterator*, mdom::NodeLine*);
|
|
|
|
virtual ~NodeTranslationIterator();
|
|
virtual void next();
|
|
virtual void current();
|
|
|
|
};
|
|
|
|
class Node_firstChild
|
|
{
|
|
public:
|
|
Node_firstChild(mdom::Node const&);
|
|
|
|
};
|
|
|
|
class Node_firstChildElement
|
|
{
|
|
public:
|
|
Node_firstChildElement(mdom::Node const&);
|
|
|
|
};
|
|
|
|
class Node_lastChildElement
|
|
{
|
|
public:
|
|
Node_lastChildElement(mdom::Node const&);
|
|
|
|
};
|
|
|
|
class Node_nextSibling
|
|
{
|
|
public:
|
|
Node_nextSibling(mdom::Node const&);
|
|
|
|
};
|
|
|
|
class ParseException
|
|
{
|
|
public:
|
|
ParseException();
|
|
ParseException(int);
|
|
ParseException(uft::String const&);
|
|
|
|
~ParseException();
|
|
|
|
void getErrorCode() const;
|
|
void getMessage() const;
|
|
|
|
};
|
|
|
|
class Reference
|
|
{
|
|
public:
|
|
void getDOM() const;
|
|
void getNode() const;
|
|
void isInstanceOf(uft::Value const&);
|
|
|
|
};
|
|
|
|
class RemovedChildRecord
|
|
{
|
|
public:
|
|
void staticInit();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class ShiftedNodeLine: public mdom::NodeLine
|
|
{
|
|
public:
|
|
ShiftedNodeLine(mdom::NodeLine*, unsigned int);
|
|
|
|
virtual ~ShiftedNodeLine();
|
|
virtual void length();
|
|
virtual void item(unsigned int);
|
|
virtual void last();
|
|
|
|
};
|
|
|
|
class SingleNodeLineTranslationIterator: public mdom::NodeLineTranslationIterator
|
|
{
|
|
public:
|
|
SingleNodeLineTranslationIterator(mdom::NodeLine*);
|
|
|
|
virtual ~SingleNodeLineTranslationIterator();
|
|
virtual void next();
|
|
virtual void current();
|
|
virtual void consumed();
|
|
virtual void virtfunc28() = 0;
|
|
virtual void translationInfo();
|
|
|
|
};
|
|
|
|
class SourceNodeLine: public mdom::NodeLine
|
|
{
|
|
public:
|
|
SourceNodeLine(mdom::Node const&, mdom::Node const&);
|
|
|
|
virtual ~SourceNodeLine();
|
|
virtual void length();
|
|
virtual void item(unsigned int);
|
|
virtual void last();
|
|
|
|
};
|
|
|
|
class TearOffNodeReference
|
|
{
|
|
public:
|
|
void extractNode();
|
|
void staticInit();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class TextChangeRecord
|
|
{
|
|
public:
|
|
void staticInit();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
class TraversalRef
|
|
{
|
|
public:
|
|
void staticInit();
|
|
|
|
void* s_descriptor;
|
|
|
|
};
|
|
|
|
|
|
void changeNodeTextContent(mdom::Node const&, unsigned int, unsigned int, uft::Value const&);
|
|
void getW3CNodeType(unsigned int);
|
|
// void registerAttrKey(uft::QName const&, uft::sref<mdom::AttrConfig> const&);
|
|
void setNodeTextContent(mdom::Node const&, uft::Value const&);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // _MDOM_H
|