You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by am...@apache.org on 2005/08/02 20:34:42 UTC
svn commit: r227060 - in /xerces/c/trunk:
Projects/Win32/BCC.551/Xerces-all/XercesLib/
Projects/Win32/VC6/xerces-all/XercesLib/
Projects/Win32/VC7.1/xerces-all/XercesLib/ src/ src/xercesc/dom/
src/xercesc/dom/impl/
Author: amassari
Date: Tue Aug 2 11:33:05 2005
New Revision: 227060
URL: http://svn.apache.org/viewcvs?rev=227060&view=rev
Log:
DOM Level 3 Core: DOMImplementationRegistry, DOMImplementationSource and DOMImplementationList
Added:
xerces/c/trunk/src/xercesc/dom/DOMImplementationList.hpp (with props)
xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.cpp (with props)
xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.hpp (with props)
Modified:
xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak
xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj
xerces/c/trunk/src/Makefile.am
xerces/c/trunk/src/Makefile.in
xerces/c/trunk/src/xercesc/dom/DOMImplementationRegistry.hpp
xerces/c/trunk/src/xercesc/dom/DOMImplementationSource.hpp
xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.cpp
xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.hpp
xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationRegistry.cpp
Modified: xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak (original)
+++ xerces/c/trunk/Projects/Win32/BCC.551/Xerces-all/XercesLib/XercesLib.mak Tue Aug 2 11:33:05 2005
@@ -286,6 +286,7 @@
$(TARGETPATH)\obj\XSDLocator.obj \
$(TARGETPATH)\obj\DOMRangeException.obj \
$(TARGETPATH)\obj\DOMImplementationImpl.obj \
+ $(TARGETPATH)\obj\DOMImplementationListImpl.obj \
$(TARGETPATH)\obj\DOMImplementationRegistry.obj \
$(TARGETPATH)\obj\DOMLSParserImpl.obj \
$(TARGETPATH)\obj\DOMLSSerializerImpl.obj \
Modified: xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp (original)
+++ xerces/c/trunk/Projects/Win32/VC6/xerces-all/XercesLib/XercesLib.dsp Tue Aug 2 11:33:05 2005
@@ -2832,6 +2832,14 @@
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\..\src\xercesc\dom\impl\DOMImplementationListImpl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\xercesc\dom\impl\DOMImplementationListImpl.hpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\..\src\xercesc\dom\impl\DOMImplementationRegistry.cpp
# End Source File
# Begin Source File
@@ -3057,6 +3065,10 @@
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\..\src\xercesc\dom\DOMImplementationList.hpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\..\src\xercesc\dom\DOMImplementationLS.hpp
# End Source File
# Begin Source File
@@ -3082,6 +3094,10 @@
# Begin Source File
SOURCE=..\..\..\..\..\src\xercesc\dom\DOMLSInput.hpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\..\src\xercesc\dom\DOMLSOutput.hpp
# End Source File
# Begin Source File
Modified: xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj (original)
+++ xerces/c/trunk/Projects/Win32/VC7.1/xerces-all/XercesLib/XercesLib.vcproj Tue Aug 2 11:33:05 2005
@@ -2374,6 +2374,9 @@
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMImplementation.hpp">
</File>
<File
+ RelativePath="..\..\..\..\..\src\xercesc\dom\DOMImplementationList.hpp">
+ </File>
+ <File
RelativePath="..\..\..\..\..\src\xercesc\dom\DOMImplementationLS.hpp">
</File>
<File
@@ -2587,7 +2590,13 @@
RelativePath="..\..\..\..\..\src\xercesc\dom\impl\DOMImplementationImpl.cpp">
</File>
<File
- RelativePath="..\..\..\..\..\src\xercesc\dom\impl\DOMImplementationimpl.hpp">
+ RelativePath="..\..\..\..\..\src\xercesc\dom\impl\DOMImplementationImpl.hpp">
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\src\xercesc\dom\impl\DOMImplementationListImpl.cpp">
+ </File>
+ <File
+ RelativePath="..\..\..\..\..\src\xercesc\dom\impl\DOMImplementationListImpl.hpp">
</File>
<File
RelativePath="..\..\..\..\..\src\xercesc\dom\impl\DOMImplementationRegistry.cpp">
Modified: xerces/c/trunk/src/Makefile.am
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/Makefile.am?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/src/Makefile.am (original)
+++ xerces/c/trunk/src/Makefile.am Tue Aug 2 11:33:05 2005
@@ -271,6 +271,7 @@
xercesc/dom/DOMErrorHandler.hpp \
xercesc/dom/DOMException.hpp \
xercesc/dom/DOMImplementation.hpp \
+ xercesc/dom/DOMImplementationList.hpp \
xercesc/dom/DOMImplementationLS.hpp \
xercesc/dom/DOMImplementationRegistry.hpp \
xercesc/dom/DOMImplementationSource.hpp \
@@ -333,6 +334,7 @@
xercesc/dom/impl/DOMEntityReferenceImpl.hpp \
xercesc/dom/impl/DOMErrorImpl.hpp \
xercesc/dom/impl/DOMImplementationImpl.hpp \
+ xercesc/dom/impl/DOMImplementationListImpl.hpp \
xercesc/dom/impl/DOMLocatorImpl.hpp \
xercesc/dom/impl/DOMNamedNodeMapImpl.hpp \
xercesc/dom/impl/DOMNodeIDMap.hpp \
@@ -371,6 +373,7 @@
xercesc/dom/impl/DOMEntityReferenceImpl.cpp \
xercesc/dom/impl/DOMErrorImpl.cpp \
xercesc/dom/impl/DOMImplementationImpl.cpp \
+ xercesc/dom/impl/DOMImplementationListImpl.cpp \
xercesc/dom/impl/DOMImplementationRegistry.cpp \
xercesc/dom/impl/DOMLocatorImpl.cpp \
xercesc/dom/impl/DOMNamedNodeMapImpl.cpp \
Modified: xerces/c/trunk/src/Makefile.in
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/Makefile.in?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/src/Makefile.in (original)
+++ xerces/c/trunk/src/Makefile.in Tue Aug 2 11:33:05 2005
@@ -203,6 +203,7 @@
xercesc/dom/impl/DOMEntityReferenceImpl.lo \
xercesc/dom/impl/DOMErrorImpl.lo \
xercesc/dom/impl/DOMImplementationImpl.lo \
+ xercesc/dom/impl/DOMImplementationListImpl.lo \
xercesc/dom/impl/DOMImplementationRegistry.lo \
xercesc/dom/impl/DOMLocatorImpl.lo \
xercesc/dom/impl/DOMNamedNodeMapImpl.lo \
@@ -1123,6 +1124,7 @@
xercesc/dom/DOMErrorHandler.hpp \
xercesc/dom/DOMException.hpp \
xercesc/dom/DOMImplementation.hpp \
+ xercesc/dom/DOMImplementationList.hpp \
xercesc/dom/DOMImplementationLS.hpp \
xercesc/dom/DOMImplementationRegistry.hpp \
xercesc/dom/DOMImplementationSource.hpp \
@@ -1184,6 +1186,7 @@
xercesc/dom/impl/DOMEntityReferenceImpl.hpp \
xercesc/dom/impl/DOMErrorImpl.hpp \
xercesc/dom/impl/DOMImplementationImpl.hpp \
+ xercesc/dom/impl/DOMImplementationListImpl.hpp \
xercesc/dom/impl/DOMLocatorImpl.hpp \
xercesc/dom/impl/DOMNamedNodeMapImpl.hpp \
xercesc/dom/impl/DOMNodeIDMap.hpp \
@@ -1222,6 +1225,7 @@
xercesc/dom/impl/DOMEntityReferenceImpl.cpp \
xercesc/dom/impl/DOMErrorImpl.cpp \
xercesc/dom/impl/DOMImplementationImpl.cpp \
+ xercesc/dom/impl/DOMImplementationListImpl.cpp \
xercesc/dom/impl/DOMImplementationRegistry.cpp \
xercesc/dom/impl/DOMLocatorImpl.cpp \
xercesc/dom/impl/DOMNamedNodeMapImpl.cpp \
@@ -2166,6 +2170,9 @@
xercesc/dom/impl/DOMImplementationImpl.lo: \
xercesc/dom/impl/$(am__dirstamp) \
xercesc/dom/impl/$(DEPDIR)/$(am__dirstamp)
+xercesc/dom/impl/DOMImplementationListImpl.lo: \
+ xercesc/dom/impl/$(am__dirstamp) \
+ xercesc/dom/impl/$(DEPDIR)/$(am__dirstamp)
xercesc/dom/impl/DOMImplementationRegistry.lo: \
xercesc/dom/impl/$(am__dirstamp) \
xercesc/dom/impl/$(DEPDIR)/$(am__dirstamp)
@@ -3151,6 +3158,8 @@
-rm -f xercesc/dom/impl/DOMErrorImpl.lo
-rm -f xercesc/dom/impl/DOMImplementationImpl.$(OBJEXT)
-rm -f xercesc/dom/impl/DOMImplementationImpl.lo
+ -rm -f xercesc/dom/impl/DOMImplementationListImpl.$(OBJEXT)
+ -rm -f xercesc/dom/impl/DOMImplementationListImpl.lo
-rm -f xercesc/dom/impl/DOMImplementationRegistry.$(OBJEXT)
-rm -f xercesc/dom/impl/DOMImplementationRegistry.lo
-rm -f xercesc/dom/impl/DOMLSSerializerImpl.$(OBJEXT)
@@ -3755,6 +3764,7 @@
@AMDEP_TRUE@@am__include@ @am__quote@xercesc/dom/impl/$(DEPDIR)/DOMEntityReferenceImpl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@xercesc/dom/impl/$(DEPDIR)/DOMErrorImpl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@xercesc/dom/impl/$(DEPDIR)/DOMImplementationImpl.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@xercesc/dom/impl/$(DEPDIR)/DOMImplementationListImpl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@xercesc/dom/impl/$(DEPDIR)/DOMImplementationRegistry.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@xercesc/dom/impl/$(DEPDIR)/DOMLSSerializerImpl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@xercesc/dom/impl/$(DEPDIR)/DOMLocatorImpl.Plo@am__quote@
Added: xerces/c/trunk/src/xercesc/dom/DOMImplementationList.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/DOMImplementationList.hpp?rev=227060&view=auto
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/DOMImplementationList.hpp (added)
+++ xerces/c/trunk/src/xercesc/dom/DOMImplementationList.hpp Tue Aug 2 11:33:05 2005
@@ -0,0 +1,125 @@
+#ifndef DOMImplementationList_HEADER_GUARD_
+#define DOMImplementationList_HEADER_GUARD_
+
+/*
+ * Copyright 2001-2002,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id$
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMImplementation;
+
+
+/**
+ * The <code>DOMImplementationList</code> interface provides the abstraction of an ordered
+ * collection of DOM implementations, without defining or constraining how this collection
+ * is implemented. The items in the <code>DOMImplementationList</code> are accessible via
+ * an integral index, starting from 0.
+ */
+
+class CDOM_EXPORT DOMImplementationList {
+protected:
+ // -----------------------------------------------------------------------
+ // Hidden constructors
+ // -----------------------------------------------------------------------
+ /** @name Hidden constructors */
+ //@{
+ DOMImplementationList() {};
+ //@}
+
+private:
+ // -----------------------------------------------------------------------
+ // Unimplemented constructors and operators
+ // -----------------------------------------------------------------------
+ /** @name Unimplemented constructors and operators */
+ //@{
+ DOMImplementationList(const DOMImplementationList &);
+ DOMImplementationList & operator = (const DOMImplementationList &);
+ //@}
+
+public:
+ // -----------------------------------------------------------------------
+ // All constructors are hidden, just the destructor is available
+ // -----------------------------------------------------------------------
+ /** @name Destructor */
+ //@{
+ /**
+ * Destructor
+ *
+ */
+ virtual ~DOMImplementationList() {};
+ //@}
+
+ // -----------------------------------------------------------------------
+ // Virtual DOMImplementationList interface
+ // -----------------------------------------------------------------------
+ /** @name Functions introduced in DOM Level 3 */
+ //@{
+ // -----------------------------------------------------------------------
+ // Getter methods
+ // -----------------------------------------------------------------------
+ /**
+ * Returns the <code>index</code> item in the collection.
+ *
+ * If <code>index</code> is greater than or equal to the number of DOMImplementation in
+ * the list, this returns <code>null</code>.
+ *
+ * @param index Index into the collection.
+ * @return The DOMImplementation at the <code>index</code>th position in the
+ * <code>DOMImplementationList</code>, or <code>null</code> if that is not a valid
+ * index.
+ * @since DOM Level 3
+ */
+ virtual DOMImplementation *item(XMLSize_t index) const = 0;
+
+ /**
+ * Returns the number of DOMImplementation in the list.
+ *
+ * The range of valid child node indices is 0 to <code>length-1</code> inclusive.
+ * @since DOM Level 3
+ */
+ virtual XMLSize_t getLength() const = 0;
+ //@}
+
+ // -----------------------------------------------------------------------
+ // Non-standard Extension
+ // -----------------------------------------------------------------------
+ /** @name Non-standard Extension */
+ //@{
+ /**
+ * Called to indicate that this list is no longer in use
+ * and that the implementation may relinquish any resources associated with it and
+ * its associated children.
+ *
+ * Access to a released object will lead to unexpected result.
+ *
+ */
+ virtual void release() = 0;
+ //@}
+
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Propchange: xerces/c/trunk/src/xercesc/dom/DOMImplementationList.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xerces/c/trunk/src/xercesc/dom/DOMImplementationList.hpp
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: xerces/c/trunk/src/xercesc/dom/DOMImplementationRegistry.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/DOMImplementationRegistry.hpp?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/DOMImplementationRegistry.hpp (original)
+++ xerces/c/trunk/src/xercesc/dom/DOMImplementationRegistry.hpp Tue Aug 2 11:33:05 2005
@@ -30,6 +30,7 @@
* point.
*
* @see DOMImplementation
+ * @see DOMImplementationList
* @see DOMImplementationSource
* @since DOM Level 3
*/
@@ -41,6 +42,7 @@
class DOMImplementation;
class DOMImplementationSource;
+class DOMImplementationList;
class CDOM_EXPORT DOMImplementationRegistry
{
@@ -54,8 +56,6 @@
* Return the first registered implementation that has the desired features,
* or null if none is found.
*
- * <p><b>"Experimental - subject to change"</b></p>
- *
* @param features A string that specifies which features are required.
* This is a space separated list in which each feature is
* specified by its name optionally followed by a space
@@ -68,9 +68,21 @@
static DOMImplementation* getDOMImplementation(const XMLCh* features);
/**
- * Register an implementation.
+ * Return the list of registered implementation that have the desired features.
*
- * <p><b>"Experimental - subject to change"</b></p>
+ * @param features A string that specifies which features are required.
+ * This is a space separated list in which each feature is
+ * specified by its name optionally followed by a space
+ * and a version number.
+ * This is something like: "XML 1.0 Traversal 2.0"
+ * @return A DOMImplementationList object that contains the DOMImplementation
+ * that have the desired features
+ * @since DOM Level 3
+ */
+ static DOMImplementationList* getDOMImplementationList(const XMLCh* features);
+
+ /**
+ * Register an implementation.
*
* @param source A DOMImplementation Source object to be added to the registry.
* The registry does NOT adopt the source object. Users still own it.
Modified: xerces/c/trunk/src/xercesc/dom/DOMImplementationSource.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/DOMImplementationSource.hpp?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/DOMImplementationSource.hpp (original)
+++ xerces/c/trunk/src/xercesc/dom/DOMImplementationSource.hpp Tue Aug 2 11:33:05 2005
@@ -23,11 +23,10 @@
/**
* This interface permits a DOM implementer to supply one or more
- * implementations, based upon requested features. Each implemented
+ * implementations, based upon requested features and versions. Each implemented
* <code>DOMImplementationSource</code> object is listed in the
* binding-specific list of available sources so that its
* <code>DOMImplementation</code> objects are made available.
- * <p>See also the <a href='http://www.w3.org/TR/2002/WD-DOM-Level-3-Core-20020409'>Document Object Model (DOM) Level 3 Core Specification</a>.
*
* @since DOM Level 3
*/
@@ -37,6 +36,7 @@
class DOMImplementation;
+class DOMImplementationList;
class CDOM_EXPORT DOMImplementationSource
{
@@ -79,9 +79,7 @@
/** @name Functions introduced in DOM Level 3 */
//@{
/**
- * A method to request a DOM implementation.
- *
- * <p><b>"Experimental - subject to change"</b></p>
+ * A method to request the first DOM implementation that supports the specified features.
*
* @param features A string that specifies which features are required.
* This is a space separated list in which each feature is specified
@@ -92,6 +90,18 @@
* @since DOM Level 3
*/
virtual DOMImplementation* getDOMImplementation(const XMLCh* features) const = 0;
+
+ /**
+ * A method to request a list of DOM implementations that support the specified features and versions,
+ *
+ * @param features A string that specifies which features are required.
+ * This is a space separated list in which each feature is specified
+ * by its name optionally followed by a space and a version number.
+ * This is something like: "XML 1.0 Traversal 2.0"
+ * @return A list of DOM implementations that support the desired features
+ * @since DOM Level 3
+ */
+ virtual DOMImplementationList* getDOMImplementationList(const XMLCh* features) const = 0;
//@}
};
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.cpp?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.cpp Tue Aug 2 11:33:05 2005
@@ -22,6 +22,7 @@
#include "DOMDocumentImpl.hpp"
#include "DOMDocumentTypeImpl.hpp"
#include "DOMLSSerializerImpl.hpp"
+#include "DOMImplementationListImpl.hpp"
#include <xercesc/dom/DOMDocument.hpp>
#include <xercesc/dom/DOMDocumentType.hpp>
@@ -351,6 +352,14 @@
return impl;
}
+DOMImplementationList* DOMImplementationImpl::getDOMImplementationList(const XMLCh* features) const
+{
+ DOMImplementationListImpl* list = new DOMImplementationListImpl;
+ DOMImplementation* myImpl=getDOMImplementation(features);
+ if(myImpl)
+ list->add(myImpl);
+ return list;
+}
XERCES_CPP_NAMESPACE_END
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.hpp?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.hpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationImpl.hpp Tue Aug 2 11:33:05 2005
@@ -88,6 +88,7 @@
// DOMImplementationSource Virtual interface
// ------------------------------------------------------------
virtual DOMImplementation* getDOMImplementation(const XMLCh* features) const;
+ virtual DOMImplementationList* getDOMImplementationList(const XMLCh* features) const;
};
Added: xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.cpp?rev=227060&view=auto
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.cpp (added)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.cpp Tue Aug 2 11:33:05 2005
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2001-2002,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id$
+ */
+
+#include "DOMImplementationListImpl.hpp"
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+DOMImplementationListImpl::DOMImplementationListImpl()
+{
+ fList=new RefVectorOf<DOMImplementation>(3, false);
+}
+
+
+DOMImplementationListImpl:: ~DOMImplementationListImpl()
+{
+ delete fList;
+}
+
+
+void DOMImplementationListImpl::add(DOMImplementation* impl) {
+ fList->addElement(impl);
+}
+
+XMLSize_t DOMImplementationListImpl::getLength() const{
+ return fList->size();
+}
+
+
+DOMImplementation *DOMImplementationListImpl::item(XMLSize_t index) const{
+ if(index<fList->size())
+ return fList->elementAt(index);
+ return 0;
+}
+
+void DOMImplementationListImpl::release() {
+ delete this;
+}
+
+XERCES_CPP_NAMESPACE_END
+
+
Propchange: xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.cpp
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.hpp?rev=227060&view=auto
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.hpp (added)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.hpp Tue Aug 2 11:33:05 2005
@@ -0,0 +1,55 @@
+#ifndef DOMImplementationListImpl_HEADER_GUARD_
+#define DOMImplementationListImpl_HEADER_GUARD_
+/*
+ * Copyright 2001-2002,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * $Id$
+ */
+
+#include <xercesc/util/XercesDefs.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/dom/DOMImplementationList.hpp>
+
+XERCES_CPP_NAMESPACE_BEGIN
+
+
+class DOMImplementation;
+
+class CDOM_EXPORT DOMImplementationListImpl: public DOMImplementationList
+{
+private:
+ RefVectorOf<DOMImplementation> *fList;
+
+ // Unused, and unimplemented constructors, operators, etc.
+ DOMImplementationListImpl(const DOMImplementationListImpl & other);
+ DOMImplementationListImpl & operator = (const DOMImplementationListImpl & other);
+
+public:
+ DOMImplementationListImpl();
+ void add(DOMImplementation* impl);
+
+ virtual ~DOMImplementationListImpl();
+ virtual DOMImplementation * item(XMLSize_t index) const;
+ virtual XMLSize_t getLength() const;
+ virtual void release();
+};
+
+XERCES_CPP_NAMESPACE_END
+
+#endif
+
+
Propchange: xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.hpp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationListImpl.hpp
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationRegistry.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationRegistry.cpp?rev=227060&r1=227059&r2=227060&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationRegistry.cpp (original)
+++ xerces/c/trunk/src/xercesc/dom/impl/DOMImplementationRegistry.cpp Tue Aug 2 11:33:05 2005
@@ -26,6 +26,7 @@
#include <xercesc/dom/DOMImplementationSource.hpp>
#include <xercesc/dom/DOMImplementation.hpp>
#include "DOMImplementationImpl.hpp"
+#include "DOMImplementationListImpl.hpp"
XERCES_CPP_NAMESPACE_BEGIN
@@ -137,6 +138,32 @@
}
return 0;
+}
+
+DOMImplementationList* DOMImplementationRegistry::getDOMImplementationList(const XMLCh* features) {
+
+ DOMImplementationListImpl* list = new DOMImplementationListImpl;
+
+ XMLMutexLock lock(&getDOMImplSrcVectorMutex());
+
+ unsigned int len = getDOMImplSrcVector()->size();
+
+ // Put our defined source there
+ if (len == 0)
+ getDOMImplSrcVector()->addElement((DOMImplementationSource*)DOMImplementationImpl::getDOMImplementationImpl());
+
+ len = getDOMImplSrcVector()->size();
+
+ for (unsigned int i = len; i > 0; i--) {
+ DOMImplementationSource* source = getDOMImplSrcVector()->elementAt(i-1);
+ DOMImplementationList* oneList = source->getDOMImplementationList(features);
+ XMLSize_t oneListLen=oneList->getLength();
+ for(XMLSize_t j=0; j<oneListLen; j++)
+ list->add(oneList->item(j));
+ oneList->release();
+ }
+
+ return list;
}
void DOMImplementationRegistry::addSource (DOMImplementationSource* source) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org