Xerces-C++ 3.1.3

- Main Page
- Related Pages
- Classes
- Files

- File List
- File Members

BinFileInputStream.hpp
Go to the documentation of this file.
1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 /*
19 * $Id: BinFileInputStream.hpp 670359 2008-06-22 13:43:45Z borisk $
20 */
21
22 #if !defined(XERCESC_INCLUDE_GUARD_BINFILEINPUTSTREAM_HPP)
23 #define XERCESC_INCLUDE_GUARD_BINFILEINPUTSTREAM_HPP
24
25 #include <xercesc/util/BinInputStream.hpp>
26 #include <xercesc/util/PlatformUtils.hpp>
27
28 XERCES_CPP_NAMESPACE_BEGIN
29
30 class XMLUTIL_EXPORT BinFileInputStream : public BinInputStream
31 {
32 public :
33 // -----------------------------------------------------------------------
34 // Constructors and Destructor
35 // -----------------------------------------------------------------------
36 BinFileInputStream
37 (
38 const XMLCh* const fileName
39 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
40 );
41
42 BinFileInputStream
43 (
44 const char* const fileName
45 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
46 );
47
48 BinFileInputStream
49 (
50 const FileHandle toUse
51 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
52 );
53
54 virtual ~BinFileInputStream();
55
56
57 // -----------------------------------------------------------------------
58 // Getter methods
59 // -----------------------------------------------------------------------
60 bool getIsOpen() const;
61 XMLFilePos getSize() const;
62 void reset();
63
64
65 // -----------------------------------------------------------------------
66 // Implementation of the input stream interface
67 // -----------------------------------------------------------------------
68 virtual XMLFilePos curPos() const;
69
70 virtual XMLSize_t readBytes
71 (
72 XMLByte* const toFill
73 , const XMLSize_t maxToRead
74 );
75
76 virtual const XMLCh* getContentType() const;
77
78 private :
79 // -----------------------------------------------------------------------
80 // Unimplemented constructors and operators
81 // -----------------------------------------------------------------------
82 BinFileInputStream(const BinFileInputStream&);
83 BinFileInputStream& operator=(const BinFileInputStream&);
84
85 // -----------------------------------------------------------------------
86 // Private data members
87 //
88 // fSource
89 // The source file that we represent. The FileHandle type is defined
90 // per platform.
91 // -----------------------------------------------------------------------
92 FileHandle fSource;
93 MemoryManager* const fMemoryManager;
94 };
95
96
97 // ---------------------------------------------------------------------------
98 // BinFileInputStream: Getter methods
99 // ---------------------------------------------------------------------------
100 inline bool BinFileInputStream::getIsOpen() const
101 {
102 return (fSource != (FileHandle) XERCES_Invalid_File_Handle);
103 }
104
105 XERCES_CPP_NAMESPACE_END
106
107 #endif