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  

InputSource.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: InputSource.hpp,v $
00019  * Revision 1.12  2004/09/08 13:56:19  peiyongz
00020  * Apache License Version 2.0
00021  *
00022  * Revision 1.11  2003/12/17 00:18:35  cargilld
00023  * Update to memory management so that the static memory manager (one used to call Initialize) is only for static data.
00024  *
00025  * Revision 1.10  2003/12/01 23:23:26  neilg
00026  * fix for bug 25118; thanks to Jeroen Witmond
00027  *
00028  * Revision 1.9  2003/11/17 10:52:15  amassari
00029  * Fixed documentation bug#24746
00030  *
00031  * Revision 1.8  2003/05/30 16:11:45  gareth
00032  * Fixes so we compile under VC7.1. Patch by Alberto Massari.
00033  *
00034  * Revision 1.7  2003/05/16 21:36:59  knoaman
00035  * Memory manager implementation: Modify constructors to pass in the memory manager.
00036  *
00037  * Revision 1.6  2003/05/15 18:27:05  knoaman
00038  * Partial implementation of the configurable memory manager.
00039  *
00040  * Revision 1.5  2003/03/07 18:10:06  tng
00041  * Return a reference instead of void for operator=
00042  *
00043  * Revision 1.4  2002/11/04 14:56:26  tng
00044  * C++ Namespace Support.
00045  *
00046  * Revision 1.3  2002/09/30 18:26:18  tng
00047  * Since the derived class Wrapper4DOMInputSource has overwritten the set/getEncoding, SystemId, PublicId ... etc., these functions has to be virtual for them to work.
00048  *
00049  * Revision 1.2  2002/02/20 18:17:01  tng
00050  * [Bug 5977] Warnings on generating apiDocs.
00051  *
00052  * Revision 1.1.1.1  2002/02/01 22:22:08  peiyongz
00053  * sane_include
00054  *
00055  * Revision 1.10  2001/11/21 16:14:32  tng
00056  * Schema: New method InputSource::get/setIssueFatalErrorIfNotFound to tell the parser whether to issue fatal error or not if cannot find it (the InputSource).  This is required for schema processing as it shouldn't be a fatal error if the schema is not found.
00057  *
00058  * Revision 1.9  2000/03/02 19:54:35  roddey
00059  * This checkin includes many changes done while waiting for the
00060  * 1.1.0 code to be finished. I can't list them all here, but a list is
00061  * available elsewhere.
00062  *
00063  * Revision 1.8  2000/02/24 20:12:55  abagchi
00064  * Swat for removing Log from API docs
00065  *
00066  * Revision 1.7  2000/02/12 03:42:21  rahulj
00067  * Fixed DOC++ documentation formatting errors.
00068  *
00069  * Revision 1.6  2000/02/12 03:31:55  rahulj
00070  * Removed duplicate CVS Log entries.
00071  *
00072  * Revision 1.5  2000/02/12 01:27:19  aruna1
00073  * Documentation updated
00074  *
00075  * Revision 1.4  2000/02/09 02:15:28  abagchi
00076  * Documented destructor
00077  *
00078  * Revision 1.3  2000/02/06 07:47:58  rahulj
00079  * Year 2K copyright swat.
00080  *
00081  * Revision 1.2  2000/01/12 00:15:39  roddey
00082  * Changes to deal with multiply nested, relative pathed, entities and to deal
00083  * with the new URL class changes.
00084  *
00085  * Revision 1.1.1.1  1999/11/09 01:07:46  twl
00086  * Initial checkin
00087  *
00088  * Revision 1.2  1999/11/08 20:45:01  rahul
00089  * Swat for adding in Product name and CVS comment log variable.
00090  *
00091  */
00092 
00093 
00094 #ifndef INPUTSOURCE_HPP
00095 #define INPUTSOURCE_HPP
00096 
00097 #include <xercesc/util/PlatformUtils.hpp>
00098 
00099 XERCES_CPP_NAMESPACE_BEGIN
00100 
00101 class BinInputStream;
00102 
00103 
00134 class  InputSource : public XMemory
00135 {
00136 public:
00137     // -----------------------------------------------------------------------
00138     //  All constructors are hidden, just the destructor is available
00139     // -----------------------------------------------------------------------
00146     virtual ~InputSource();
00148 
00149 
00150     // -----------------------------------------------------------------------
00163     virtual BinInputStream* makeStream() const = 0;
00164 
00166 
00167 
00168     // -----------------------------------------------------------------------
00180     virtual const XMLCh* getEncoding() const;
00181 
00182 
00189     virtual const XMLCh* getPublicId() const;
00190 
00191 
00200     virtual const XMLCh* getSystemId() const;
00201 
00210     virtual bool getIssueFatalErrorIfNotFound() const;
00211 
00212     MemoryManager* getMemoryManager() const;
00213 
00215 
00216 
00217     // -----------------------------------------------------------------------
00220 
00232     virtual void setEncoding(const XMLCh* const encodingStr);
00233 
00234 
00246     virtual void setPublicId(const XMLCh* const publicId);
00247 
00264     virtual void setSystemId(const XMLCh* const systemId);
00265 
00275     virtual void setIssueFatalErrorIfNotFound(const bool flag);
00276 
00278 
00279 
00280 protected :
00281     // -----------------------------------------------------------------------
00282     //  Hidden constructors
00283     // -----------------------------------------------------------------------
00287     InputSource(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00288 
00294     InputSource(const XMLCh* const systemId,
00295                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00296 
00303     InputSource
00304     (
00305         const   XMLCh* const   systemId
00306         , const XMLCh* const   publicId
00307         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00308     );
00309 
00315     InputSource(const char* const systemId,
00316                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00317 
00324     InputSource
00325     (
00326         const   char* const systemId
00327         , const char* const publicId
00328         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00329     );
00330 
00332 
00333 
00334 
00335 
00336 
00337 private:
00338     // -----------------------------------------------------------------------
00339     //  Unimplemented constructors and operators
00340     // -----------------------------------------------------------------------
00341     InputSource(const InputSource&);
00342     InputSource& operator=(const InputSource&);
00343 
00344 
00345     // -----------------------------------------------------------------------
00346     //  Private data members
00347     //
00348     //  fEncoding
00349     //      This is the encoding to use. Usually this is null, which means
00350     //      to use the information found in the file itself. But, if set,
00351     //      this encoding will be used without question.
00352     //
00353     //  fPublicId
00354     //      This is the optional public id for the input source. It can be
00355     //      null if none is desired.
00356     //
00357     //  fSystemId
00358     //      This is the system id for the input source. This is what is
00359     //      actually used to open the source.
00360     //
00361     //  fFatalErrorIfNotFound
00362     // -----------------------------------------------------------------------
00363     MemoryManager* const fMemoryManager;
00364     XMLCh*         fEncoding;
00365     XMLCh*         fPublicId;
00366     XMLCh*         fSystemId;
00367     bool           fFatalErrorIfNotFound;
00368 };
00369 
00370 
00371 // ---------------------------------------------------------------------------
00372 //  InputSource: Getter methods
00373 // ---------------------------------------------------------------------------
00374 inline const XMLCh* InputSource::getEncoding() const
00375 {
00376     return fEncoding;
00377 }
00378 
00379 inline const XMLCh* InputSource::getPublicId() const
00380 {
00381     return fPublicId;
00382 }
00383 
00384 inline const XMLCh* InputSource::getSystemId() const
00385 {
00386     return fSystemId;
00387 }
00388 
00389 inline bool InputSource::getIssueFatalErrorIfNotFound() const
00390 {
00391     return fFatalErrorIfNotFound;
00392 }
00393 
00394 inline MemoryManager* InputSource::getMemoryManager() const
00395 {
00396     return fMemoryManager;
00397 }
00398 
00399 // ---------------------------------------------------------------------------
00400 //  InputSource: Setter methods
00401 // ---------------------------------------------------------------------------
00402 inline void InputSource::setIssueFatalErrorIfNotFound(const bool flag)
00403 {
00404     fFatalErrorIfNotFound = flag;
00405 }
00406 
00407 XERCES_CPP_NAMESPACE_END
00408 
00409 #endif


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