Xerces-C++: LocalFileFormatTarget.hpp Source File

| API Docs for SAX and DOM |
| Main Page Classes Files Related Pages # LocalFileFormatTarget.hpp Go to the documentation of this file.
    00001 /*
    00002  * Licensed to the Apache Software Foundation (ASF) under one or more
    00003  * contributor license agreements.  See the NOTICE file distributed with
    00004  * this work for additional information regarding copyright ownership.
    00005  * The ASF licenses this file to You under the Apache License, Version 2.0
    00006  * (the "License"); you may not use this file except in compliance with
    00007  * the License.  You may obtain a copy of the License at
    00008  *
    00009  *      http://www.apache.org/licenses/LICENSE-2.0
    00010  *
    00011  * Unless required by applicable law or agreed to in writing, software
    00012  * distributed under the License is distributed on an "AS IS" BASIS,
    00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00014  * See the License for the specific language governing permissions and
    00015  * limitations under the License.
    00016  */
    00017
    00018 /*
    00019  * $Id: LocalFileFormatTarget.hpp 568078 2007-08-21 11:43:25Z amassari $
    00020  */
    00021
    00022 #ifndef LocalFileFormatTarget_HEADER_GUARD_
    00023 #define LocalFileFormatTarget_HEADER_GUARD_
    00024
    00025 #include <xercesc/framework/XMLFormatter.hpp>
    00026
    00027 XERCES_CPP_NAMESPACE_BEGIN
    00028
    00029 class  LocalFileFormatTarget : public XMLFormatTarget {
    00030 public:
    00031
    00034     LocalFileFormatTarget
    00035     (
    00036         const XMLCh* const
    00037         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
    00038     );
    00039
    00040     LocalFileFormatTarget
    00041     (
    00042         const char* const
    00043         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
    00044     );
    00045
    00046     ~LocalFileFormatTarget();
    00048
    00049     // -----------------------------------------------------------------------
    00050     //  Implementations of the format target interface
    00051     // -----------------------------------------------------------------------
    00052     virtual void writeChars(const XMLByte* const toWrite
    00053                           , const unsigned int   count
    00054                           , XMLFormatter* const  formatter);
    00055
    00056     virtual void flush();
    00057
    00058 private:
    00059     // -----------------------------------------------------------------------
    00060     //  Unimplemented methods.
    00061     // -----------------------------------------------------------------------
    00062     LocalFileFormatTarget(const LocalFileFormatTarget&);
    00063     LocalFileFormatTarget& operator=(const LocalFileFormatTarget&);
    00064
    00065     // -----------------------------------------------------------------------
    00066     //  Private helpers
    00067     // -----------------------------------------------------------------------
    00068     void flushBuffer();
    00069     bool insureCapacity(const unsigned int extraNeeded);
    00070
    00071     // -----------------------------------------------------------------------
    00072     //  Private data members
    00073     //
    00074     //  fSource
    00075     //      The source file that we represent. The FileHandle type is defined
    00076     //      per platform.
    00077     //
    00078     //  fDataBuf
    00079     //      The pointer to the buffer data. Its always
    00080     //      one larger than fCapacity, to leave room for the null terminator.
    00081     //
    00082     //  fIndex
    00083     //      The current index into the buffer, as characters are appended
    00084     //      to it. If its zero, then the buffer is empty.
    00085     //
    00086     //  fCapacity
    00087     //      The current capacity of the buffer. Its actually always one
    00088     //      larger, to leave room for the null terminator.
    00089     // -----------------------------------------------------------------------
    00090     FileHandle      fSource;
    00091     XMLByte*        fDataBuf;
    00092     unsigned int    fIndex;
    00093     unsigned int    fCapacity;
    00094     MemoryManager*  fMemoryManager;
    00095 };
    00096
    00097
    00098 XERCES_CPP_NAMESPACE_END
    00099
    00100 #endif
    00101

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