xref: /aosp_15_r20/external/lzma/CPP/Common/StdInStream.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // Common/StdInStream.h
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_COMMON_STD_IN_STREAM_H
4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_COMMON_STD_IN_STREAM_H
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include <stdio.h>
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker #include "MyString.h"
9*f6dc9357SAndroid Build Coastguard Worker #include "MyTypes.h"
10*f6dc9357SAndroid Build Coastguard Worker 
11*f6dc9357SAndroid Build Coastguard Worker class CStdInStream
12*f6dc9357SAndroid Build Coastguard Worker {
13*f6dc9357SAndroid Build Coastguard Worker   FILE *_stream;
14*f6dc9357SAndroid Build Coastguard Worker   // bool _streamIsOpen;
15*f6dc9357SAndroid Build Coastguard Worker public:
16*f6dc9357SAndroid Build Coastguard Worker   int CodePage;
17*f6dc9357SAndroid Build Coastguard Worker 
18*f6dc9357SAndroid Build Coastguard Worker   CStdInStream(FILE *stream = NULL):
_stream(stream)19*f6dc9357SAndroid Build Coastguard Worker       _stream(stream),
20*f6dc9357SAndroid Build Coastguard Worker       // _streamIsOpen(false),
21*f6dc9357SAndroid Build Coastguard Worker       CodePage(-1)
22*f6dc9357SAndroid Build Coastguard Worker       {}
23*f6dc9357SAndroid Build Coastguard Worker 
24*f6dc9357SAndroid Build Coastguard Worker   /*
25*f6dc9357SAndroid Build Coastguard Worker   ~CStdInStream() { Close(); }
26*f6dc9357SAndroid Build Coastguard Worker 
27*f6dc9357SAndroid Build Coastguard Worker   bool Open(LPCTSTR fileName) throw();
28*f6dc9357SAndroid Build Coastguard Worker   bool Close() throw();
29*f6dc9357SAndroid Build Coastguard Worker   */
30*f6dc9357SAndroid Build Coastguard Worker 
31*f6dc9357SAndroid Build Coastguard Worker   // returns:
32*f6dc9357SAndroid Build Coastguard Worker   //   false, if ZERO character in stream
33*f6dc9357SAndroid Build Coastguard Worker   //   true, if EOF or '\n'
34*f6dc9357SAndroid Build Coastguard Worker   bool ScanAStringUntilNewLine(AString &s);
35*f6dc9357SAndroid Build Coastguard Worker   bool ScanUStringUntilNewLine(UString &s);
36*f6dc9357SAndroid Build Coastguard Worker   // bool ReadToString(AString &resultString);
37*f6dc9357SAndroid Build Coastguard Worker 
Eof()38*f6dc9357SAndroid Build Coastguard Worker   bool Eof() const throw() { return (feof(_stream) != 0); }
Error()39*f6dc9357SAndroid Build Coastguard Worker   bool Error() const throw() { return (ferror(_stream) != 0); }
40*f6dc9357SAndroid Build Coastguard Worker 
41*f6dc9357SAndroid Build Coastguard Worker   int GetChar();
42*f6dc9357SAndroid Build Coastguard Worker };
43*f6dc9357SAndroid Build Coastguard Worker 
44*f6dc9357SAndroid Build Coastguard Worker extern CStdInStream g_StdIn;
45*f6dc9357SAndroid Build Coastguard Worker 
46*f6dc9357SAndroid Build Coastguard Worker #endif
47