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

Home

Readme
Charter
Release Info

Installation
Download
Build Instructions

FAQs
Samples
API Docs

DOM C++ Binding
Programming
Migration Guide

Feedback
Bug-Reporting
PDF Document

Source Repository
User Mail Archive
Devel Mail Archive

API Docs for SAX and DOM
 

LocalFileFormatTarget.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright 2002,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  * $Id: LocalFileFormatTarget.hpp 191054 2005-06-17 02:56:35Z jberry $
00019  */
00020 
00021 #ifndef LocalFileFormatTarget_HEADER_GUARD_
00022 #define LocalFileFormatTarget_HEADER_GUARD_
00023 
00024 #include <xercesc/framework/XMLFormatter.hpp>
00025 
00026 XERCES_CPP_NAMESPACE_BEGIN
00027 
00028 class  LocalFileFormatTarget : public XMLFormatTarget {
00029 public:
00030 
00033     LocalFileFormatTarget
00034     (
00035         const XMLCh* const
00036         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00037     );
00038 
00039     LocalFileFormatTarget
00040     (
00041         const char* const
00042         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00043     );
00044 
00045     ~LocalFileFormatTarget();
00047 
00048     // -----------------------------------------------------------------------
00049     //  Implementations of the format target interface
00050     // -----------------------------------------------------------------------
00051     virtual void writeChars(const XMLByte* const toWrite
00052                           , const unsigned int   count
00053                           , XMLFormatter* const  formatter);
00054 
00055     virtual void flush();
00056 
00057 private:
00058     // -----------------------------------------------------------------------
00059     //  Unimplemented methods.
00060     // -----------------------------------------------------------------------
00061     LocalFileFormatTarget(const LocalFileFormatTarget&);
00062     LocalFileFormatTarget& operator=(const LocalFileFormatTarget&);
00063 
00064     // -----------------------------------------------------------------------
00065     //  Private helpers
00066     // -----------------------------------------------------------------------
00067     void flushBuffer();
00068     bool insureCapacity(const unsigned int extraNeeded);
00069 
00070     // -----------------------------------------------------------------------
00071     //  Private data members
00072     //
00073     //  fSource
00074     //      The source file that we represent. The FileHandle type is defined
00075     //      per platform.
00076     //
00077     //  fDataBuf
00078     //      The pointer to the buffer data. Its always
00079     //      one larger than fCapacity, to leave room for the null terminator.
00080     //
00081     //  fIndex
00082     //      The current index into the buffer, as characters are appended
00083     //      to it. If its zero, then the buffer is empty.
00084     //
00085     //  fCapacity
00086     //      The current capacity of the buffer. Its actually always one
00087     //      larger, to leave room for the null terminator.
00088     // -----------------------------------------------------------------------
00089     FileHandle      fSource;
00090     XMLByte*        fDataBuf;
00091     unsigned int    fIndex;
00092     unsigned int    fCapacity;
00093     MemoryManager*  fMemoryManager;
00094 };
00095 
00096 
00097 XERCES_CPP_NAMESPACE_END
00098 
00099 #endif
00100 


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