http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Home

Readme
Release Info

Installation
Download
Build

FAQs
Samples
API Docs

DOM C++ Binding
Programming
Migration Guide

Feedback
Bug-Reporting
PDF Document

CVS Repository
Mail Archive

API Docs for SAX and DOM
 

Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

XMLReaderFactory.hpp

Go to the documentation of this file.
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


Copyright © 1994-2004 The Apache Software Foundation. All Rights Reserved.