Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:53

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  * 
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  * 
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_BINFILEOUTPUTSTREAM_HPP)
0023 #define XERCESC_INCLUDE_GUARD_BINFILEOUTPUTSTREAM_HPP
0024 
0025 #include <xercesc/framework/BinOutputStream.hpp>
0026 #include <xercesc/util/PlatformUtils.hpp>
0027 
0028 XERCES_CPP_NAMESPACE_BEGIN
0029 
0030 class XMLUTIL_EXPORT BinFileOutputStream : public BinOutputStream
0031 {
0032 public :
0033     // -----------------------------------------------------------------------
0034     //  Constructors and Destructor
0035     // -----------------------------------------------------------------------
0036 
0037     ~BinFileOutputStream();
0038 
0039     BinFileOutputStream
0040     (
0041         const   XMLCh* const    fileName
0042         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
0043     );
0044 
0045     BinFileOutputStream
0046     (
0047          const   char* const     fileName
0048        , MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
0049     );
0050 
0051     // -----------------------------------------------------------------------
0052     //  Getter methods
0053     // -----------------------------------------------------------------------
0054     bool getIsOpen() const;
0055     XMLFilePos getSize() const;
0056     void reset();
0057 
0058 
0059     // -----------------------------------------------------------------------
0060     //  Implementation of the input stream interface
0061     // -----------------------------------------------------------------------
0062     virtual XMLFilePos curPos() const;
0063 
0064     virtual void writeBytes
0065     (
0066           const XMLByte* const      toGo
0067         , const XMLSize_t        maxToWrite
0068     );
0069 
0070 
0071 private :
0072     // -----------------------------------------------------------------------
0073     //  Unimplemented constructors and operators
0074     // -----------------------------------------------------------------------
0075     BinFileOutputStream(const BinFileOutputStream&);
0076     BinFileOutputStream& operator=(const BinFileOutputStream&); 
0077 
0078     // -----------------------------------------------------------------------
0079     //  Private data members
0080     //
0081     //  fSource
0082     //      The source file that we represent. The FileHandle type is defined
0083     //      per platform.
0084     // -----------------------------------------------------------------------
0085     FileHandle              fSource;
0086     MemoryManager* const    fMemoryManager;
0087 };
0088 
0089 
0090 // ---------------------------------------------------------------------------
0091 //  BinFileOutputStream: Getter methods
0092 // ---------------------------------------------------------------------------
0093 inline bool BinFileOutputStream::getIsOpen() const
0094 {
0095     return (fSource != (FileHandle) XERCES_Invalid_File_Handle);
0096 }
0097 
0098 XERCES_CPP_NAMESPACE_END
0099 
0100 #endif