File indexing completed on 2025-01-30 10:27:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHEXPRESSIONIMPL_HPP)
0023 #define XERCESC_INCLUDE_GUARD_DOMXPATHEXPRESSIONIMPL_HPP
0024
0025 #include <xercesc/util/XMemory.hpp>
0026 #include <xercesc/util/PlatformUtils.hpp>
0027 #include <xercesc/dom/DOMXPathExpression.hpp>
0028
0029 XERCES_CPP_NAMESPACE_BEGIN
0030
0031 class DOMElement;
0032 class XercesXPath;
0033 class XPathMatcher;
0034 class DOMXPathResultImpl;
0035 class DOMXPathNSResolver;
0036 class XMLStringPool;
0037
0038 class CDOM_EXPORT DOMXPathExpressionImpl : public XMemory,
0039 public DOMXPathExpression
0040 {
0041 public:
0042 DOMXPathExpressionImpl(const XMLCh *expression,
0043 const DOMXPathNSResolver *resolver,
0044 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
0045 virtual ~DOMXPathExpressionImpl();
0046
0047 virtual DOMXPathResult* evaluate(const DOMNode *contextNode,
0048 DOMXPathResult::ResultType type,
0049 DOMXPathResult* result) const;
0050
0051 virtual void release();
0052
0053 protected:
0054 bool testNode(XPathMatcher* matcher,
0055 DOMXPathResultImpl* result,
0056 DOMElement *node) const;
0057 void cleanUp();
0058
0059 XMLStringPool* fStringPool;
0060 XercesXPath* fParsedExpression;
0061 XMLCh* fExpression;
0062 bool fMoveToRoot;
0063
0064 MemoryManager* const fMemoryManager;
0065 };
0066
0067 XERCES_CPP_NAMESPACE_END
0068
0069 #endif