You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@apache.org on 2002/08/05 06:55:50 UTC
cvs commit: xml-xalan/c/src/XalanExtensions FunctionNodeSet.cpp
dbertoni 2002/08/04 21:55:50
Modified: c/src/XalanExtensions FunctionNodeSet.cpp
Log:
Use new proxy class.
Revision Changes Path
1.9 +72 -1 xml-xalan/c/src/XalanExtensions/FunctionNodeSet.cpp
Index: FunctionNodeSet.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XalanExtensions/FunctionNodeSet.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- FunctionNodeSet.cpp 26 Apr 2002 06:25:23 -0000 1.8
+++ FunctionNodeSet.cpp 5 Aug 2002 04:55:50 -0000 1.9
@@ -62,6 +62,9 @@
#include <XPath/XObjectFactory.hpp>
+#include <XSLT/ResultTreeFragBaseNodeRefListBaseProxy.hpp>
+
+
class XResultTreeFragNodeSetProxy : public XNodeSetBase
{
@@ -139,6 +142,74 @@
+class ResultTreeFragBaseXNodeSetBaseProxy : public XNodeSetBase
+{
+public:
+
+ ResultTreeFragBaseXNodeSetBaseProxy(const XObjectPtr& theXObject) :
+ XNodeSetBase(),
+ m_xobject(theXObject),
+ m_proxy(theXObject->rtree())
+ {
+ }
+
+ ResultTreeFragBaseXNodeSetBaseProxy(const ResultTreeFragBaseXNodeSetBaseProxy& theSource) :
+ XNodeSetBase(theSource),
+ m_xobject(theSource.m_xobject),
+ m_proxy(theSource.m_proxy)
+ {
+ }
+
+ virtual
+ ~ResultTreeFragBaseXNodeSetBaseProxy()
+ {
+ }
+
+ // These methods are inherited from XNodeSetBase...
+#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
+ virtual XObject*
+#else
+ virtual ResultTreeFragBaseXNodeSetBaseProxy*
+#endif
+ clone(void* theAddress = 0) const
+ {
+ return theAddress == 0 ? new ResultTreeFragBaseXNodeSetBaseProxy(*this) :
+ new (theAddress) ResultTreeFragBaseXNodeSetBaseProxy(*this);
+ }
+
+ virtual const NodeRefListBase&
+ nodeset() const
+ {
+ return m_proxy;
+ }
+
+ virtual void
+ dereferenced()
+ {
+ delete this;
+ }
+
+ virtual XalanNode*
+ item(size_type index) const
+ {
+ return m_proxy.item(index);
+ }
+
+ virtual size_type
+ getLength() const
+ {
+ return m_proxy.getLength();
+ }
+
+private:
+
+ const XObjectPtr m_xobject;
+
+ const ResultTreeFragBaseNodeRefListBaseProxy m_proxy;
+};
+
+
+
FunctionNodeSet::FunctionNodeSet(bool convertString) :
m_convertString(convertString)
{
@@ -171,7 +242,7 @@
if (theType == XObject::eTypeResultTreeFrag ||
(theType == XObject::eTypeString && m_convertString == true))
{
- return XObjectPtr(new XResultTreeFragNodeSetProxy(args[0]));
+ return XObjectPtr(new ResultTreeFragBaseXNodeSetBaseProxy(args[0]));
}
else
{
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org