Xerces-C++  3.1.2
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 
27 
29 
31 {
32 public :
33  // -----------------------------------------------------------------------
34  // Constructors and Destructor
35  // -----------------------------------------------------------------------
37  (
38  const XMLCh* const fileName
40  );
41 
43  (
44  const char* const fileName
46  );
47 
49  (
50  const FileHandle toUse
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  // -----------------------------------------------------------------------
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 
106 
107 #endif
virtual const XMLCh * getContentType() const =0
Return the "out-of-band" content type for the data supplied by this input stream in the form of the m...
XMLUInt64 XMLFilePos
Definition: Xerces_autoconf_config.borland.hpp:111
virtual XMLFilePos curPos() const =0
static MemoryManager * fgMemoryManager
The configurable memory manager.
Definition: PlatformUtils.hpp:121
bool getIsOpen() const
Definition: BinFileInputStream.hpp:100
Configurable memory manager.
Definition: MemoryManager.hpp:39
SIZE_T XMLSize_t
Definition: Xerces_autoconf_config.borland.hpp:86
#define XERCES_CPP_NAMESPACE_BEGIN
Definition: XercesDefs.hpp:112
wchar_t XMLCh
Definition: Xerces_autoconf_config.borland.hpp:92
XERCES_CPP_NAMESPACE_BEGIN typedef void * FileHandle
Definition: XMLFileMgr.hpp:30
unsigned char XMLByte
Definition: XercesDefs.hpp:65
#define XERCES_Invalid_File_Handle
Definition: XMLFileMgr.hpp:31
#define XMLUTIL_EXPORT
Definition: XercesDefs.hpp:162
#define XERCES_CPP_NAMESPACE_END
Definition: XercesDefs.hpp:113
Definition: BinFileInputStream.hpp:30
Definition: BinInputStream.hpp:29
virtual XMLSize_t readBytes(XMLByte *const toFill, const XMLSize_t maxToRead)=0