00001 /* 00002 * Copyright 1999-2000,2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 /* 00018 * $Log: XMLReaderFactory.hpp,v $ 00019 * Revision 1.7 2004/09/08 13:56:20 peiyongz 00020 * Apache License Version 2.0 00021 * 00022 * Revision 1.6 2004/01/29 11:46:32 cargilld 00023 * Code cleanup changes to get rid of various compiler diagnostic messages. 00024 * 00025 * Revision 1.5 2003/06/20 18:56:45 peiyongz 00026 * Stateless Grammar Pool :: Part I 00027 * 00028 * Revision 1.4 2003/05/15 18:27:11 knoaman 00029 * Partial implementation of the configurable memory manager. 00030 * 00031 * Revision 1.3 2002/11/04 14:55:45 tng 00032 * C++ Namespace Support. 00033 * 00034 * Revision 1.2 2002/05/07 17:45:52 knoaman 00035 * SAX2 documentation update. 00036 * 00037 * Revision 1.1.1.1 2002/02/01 22:22:09 peiyongz 00038 * sane_include 00039 * 00040 * Revision 1.3 2000/08/30 22:21:37 andyh 00041 * Unix Build script fixes. Clean up some UNIX compiler warnings. 00042 * 00043 * Revision 1.2 2000/08/07 18:21:27 jpolast 00044 * change module to 00045 * 00046 * Revision 1.1 2000/08/02 18:02:35 jpolast 00047 * initial checkin of sax2 implementation 00048 * submitted by Simon Fell (simon@fell.com) 00049 * and Joe Polastre (jpolast@apache.org) 00050 * 00051 * 00052 */ 00053 00054 #ifndef XMLREADERFACTORY_HPP 00055 #define XMLREADERFACTORY_HPP 00056 00057 #include <xercesc/parsers/SAX2XMLReaderImpl.hpp> 00058 #include <xercesc/sax/SAXException.hpp> 00059 00060 XERCES_CPP_NAMESPACE_BEGIN 00061 00062 class MemoryManager; 00063 class XMLGrammarPool; 00064 00074 class XMLReaderFactory 00075 { 00076 protected: // really should be private, but that causes compiler warnings. 00077 XMLReaderFactory() ; 00078 ~XMLReaderFactory() ; 00079 00080 public: 00081 static SAX2XMLReader * createXMLReader( 00082 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager 00083 , XMLGrammarPool* const gramPool = 0 00084 ) ; 00085 static SAX2XMLReader * createXMLReader(const XMLCh* className) ; 00086 00087 private: 00088 // ----------------------------------------------------------------------- 00089 // Unimplemented constructors and operators 00090 // ----------------------------------------------------------------------- 00091 XMLReaderFactory(const XMLReaderFactory&); 00092 XMLReaderFactory& operator=(const XMLReaderFactory&); 00093 }; 00094 00095 00096 inline SAX2XMLReader * XMLReaderFactory::createXMLReader(MemoryManager* const manager 00097 , XMLGrammarPool* const gramPool) 00098 { 00099 return (SAX2XMLReader*)(new (manager) SAX2XMLReaderImpl(manager, gramPool)); 00100 } 00101 00102 inline SAX2XMLReader * XMLReaderFactory::createXMLReader(const XMLCh *) 00103 { 00104 throw SAXNotSupportedException(); 00105 // unimplemented 00106 return 0; 00107 } 00108 00109 XERCES_CPP_NAMESPACE_END 00110 00111 #endif