dbertoni 01/01/15 18:31:28
Modified: c/src/XPath ResultTreeFrag.cpp ResultTreeFrag.hpp
ResultTreeFragBase.hpp
Log:
Added functions to enable re-use of ResultTreeFragment instances.
Revision Changes Path
1.11 +20 -2 xml-xalan/c/src/XPath/ResultTreeFrag.cpp
Index: ResultTreeFrag.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/ResultTreeFrag.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ResultTreeFrag.cpp 2000/11/02 01:45:59 1.10
+++ ResultTreeFrag.cpp 2001/01/16 02:31:28 1.11
@@ -72,10 +72,10 @@
-ResultTreeFrag::ResultTreeFrag(XalanDocument& theOwnerDocument) :
+ResultTreeFrag::ResultTreeFrag(XalanDocument* theOwnerDocument) :
ResultTreeFragBase(),
XalanNodeList(),
- m_document(&theOwnerDocument)
+ m_document(theOwnerDocument)
{
}
@@ -107,6 +107,24 @@
ResultTreeFrag::~ResultTreeFrag()
{
+}
+
+
+
+void
+ResultTreeFrag::clear()
+{
+ m_children.clear();
+}
+
+
+
+void
+ResultTreeFrag::setOwnerDocument(XalanDocument*
theOwnerDocument)
+{
+ m_document = theOwnerDocument;
+
+ clear();
}
1.12 +13 -3 xml-xalan/c/src/XPath/ResultTreeFrag.hpp
Index: ResultTreeFrag.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/ResultTreeFrag.hpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ResultTreeFrag.hpp 2001/01/08 18:28:23 1.11
+++ ResultTreeFrag.hpp 2001/01/16 02:31:28 1.12
@@ -89,7 +89,7 @@
*
* @param theOwnerDocument The document used to construct result tree
fragment
*/
- ResultTreeFrag(XalanDocument& theOwnerDocument);
+ ResultTreeFrag(XalanDocument* theOwnerDocument = 0);
/**
* Construct a result tree fragment object from another.
@@ -104,7 +104,17 @@
~ResultTreeFrag();
+ // These interfaces are inherited from ResultTreeFragBase...
+
+ virtual void
+ clear();
+
+ virtual void
+ setOwnerDocument(XalanDocument* theOwnerDocument);
+
+
// These interfaces are inherited from XalanDocumentFragment...
+
virtual const XalanDOMString&
getNodeName() const;
@@ -218,7 +228,7 @@
operator==(const ResultTreeFrag& theRHS) const;
- XalanDocument* m_document;
+ XalanDocument* m_document;
#if defined(XALAN_NO_NAMESPACES)
typedef vector<XalanNode*> NodeVectorType;
@@ -226,7 +236,7 @@
typedef std::vector<XalanNode*> NodeVectorType;
#endif
- NodeVectorType m_children;
+ NodeVectorType m_children;
static const XalanDOMString s_emptyString;
};
1.10 +16 -0 xml-xalan/c/src/XPath/ResultTreeFragBase.hpp
Index: ResultTreeFragBase.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XPath/ResultTreeFragBase.hpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ResultTreeFragBase.hpp 2000/11/02 01:45:59 1.9
+++ ResultTreeFragBase.hpp 2001/01/16 02:31:28 1.10
@@ -99,6 +99,22 @@
~ResultTreeFragBase();
+ /**
+ * Clear all of the children from the ResultTreeFrag instance.
+ */
+ virtual void
+ clear() = 0;
+
+ /**
+ * Set the owner document for the result tree fragment. This will
+ * cause all of the children to be cleared as well.
+ *
+ * @param theOwnerDocument The new owner document instance.
+ */
+ virtual void
+ setOwnerDocument(XalanDocument* theOwnerDocument) = 0;
+
+
// These interfaces are inherited from XalanDocumentFragment...
virtual const XalanDOMString&
getNodeName() const = 0;