Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "ISstream.H"
00027
00028
00029
00030 inline Foam::ISstream::ISstream
00031 (
00032 istream& is,
00033 const string& name,
00034 streamFormat format,
00035 versionNumber version,
00036 compressionType compression
00037 )
00038 :
00039 Istream(format, version, compression),
00040 name_(name),
00041 is_(is)
00042 {
00043 if (is_.good())
00044 {
00045 setOpened();
00046 setGood();
00047 }
00048 else
00049 {
00050 setState(is_.rdstate());
00051 }
00052 }
00053
00054
00055
00056
00057 inline Foam::ISstream& Foam::ISstream::get(char& c)
00058 {
00059 is_.get(c);
00060 setState(is_.rdstate());
00061
00062 if (c == '\n')
00063 {
00064 lineNumber_++;
00065 }
00066
00067 return *this;
00068 }
00069
00070
00071 inline Foam::ISstream& Foam::ISstream::getLine(string& s)
00072 {
00073 getline(is_, s);
00074 setState(is_.rdstate());
00075 lineNumber_++;
00076
00077 return *this;
00078 }
00079
00080
00081 inline Foam::ISstream& Foam::ISstream::putback(const char& c)
00082 {
00083 if (c == '\n')
00084 {
00085 lineNumber_--;
00086 }
00087
00088 if (!is_.putback(c))
00089 {
00090 setBad();
00091 }
00092
00093 setState(is_.rdstate());
00094
00095 return *this;
00096 }
00097
00098
00099