Xerces-C++: LocalFileFormatTarget.hpp Source File

| API Docs for SAX and DOM |
| Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages # 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.