Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:27:23

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_BINFILEINPUTSTREAM_HPP)
0023 #define XERCESC_INCLUDE_GUARD_BINFILEINPUTSTREAM_HPP
0024 
0025 #include <xercesc/util/BinInputStream.hpp>
0026 #include <xercesc/util/PlatformUtils.hpp>
0027 
0028 XERCES_CPP_NAMESPACE_BEGIN
0029 
0030 class XMLUTIL_EXPORT BinFileInputStream : public BinInputStream
0031 {
0032 public :
0033     // -----------------------------------------------------------------------
0034     //  Constructors and Destructor
0035     // -----------------------------------------------------------------------
0036     BinFileInputStream
0037     (
0038         const   XMLCh* const    fileName
0039         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
0040     );
0041 
0042     BinFileInputStream
0043     (
0044         const   char* const     fileName
0045         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
0046     );
0047 
0048     BinFileInputStream
0049     (
0050         const   FileHandle      toUse
0051         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
0052     );
0053 
0054     virtual ~BinFileInputStream();
0055 
0056 
0057     // -----------------------------------------------------------------------
0058     //  Getter methods
0059     // -----------------------------------------------------------------------
0060     bool getIsOpen() const;
0061     XMLFilePos getSize() const;
0062     void reset();
0063 
0064 
0065     // -----------------------------------------------------------------------
0066     //  Implementation of the input stream interface
0067     // -----------------------------------------------------------------------
0068     virtual XMLFilePos curPos() const;
0069 
0070     virtual XMLSize_t readBytes
0071     (
0072                 XMLByte* const      toFill
0073         , const XMLSize_t           maxToRead
0074     );
0075 
0076     virtual const XMLCh* getContentType() const;
0077 
0078 private :
0079     // -----------------------------------------------------------------------
0080     //  Unimplemented constructors and operators
0081     // -----------------------------------------------------------------------
0082     BinFileInputStream(const BinFileInputStream&);
0083     BinFileInputStream& operator=(const BinFileInputStream&);
0084 
0085     // -----------------------------------------------------------------------
0086     //  Private data members
0087     //
0088     //  fSource
0089     //      The source file that we represent. The FileHandle type is defined
0090     //      per platform.
0091     // -----------------------------------------------------------------------
0092     FileHandle              fSource;
0093     MemoryManager* const    fMemoryManager;
0094 };
0095 
0096 
0097 // ---------------------------------------------------------------------------
0098 //  BinFileInputStream: Getter methods
0099 // ---------------------------------------------------------------------------
0100 inline bool BinFileInputStream::getIsOpen() const
0101 {
0102     return (fSource != (FileHandle) XERCES_Invalid_File_Handle);
0103 }
0104 
0105 XERCES_CPP_NAMESPACE_END
0106 
0107 #endif