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 "Switch.H"
00027 #include <OpenFOAM/IOstreams.H>
00028
00029
00030
00031 Foam::Switch::Switch(Istream& is)
00032 {
00033 is >> *this;
00034 }
00035
00036
00037
00038
00039 Foam::Istream& Foam::operator>>(Istream& is, Switch& s)
00040 {
00041 token t(is);
00042
00043 if (!t.good())
00044 {
00045 is.setBad();
00046 return is;
00047 }
00048
00049 if (t.isLabel())
00050 {
00051 s.switch_ = Switch::asEnum(bool(t.labelToken()));
00052 }
00053 else if (t.isWord())
00054 {
00055
00056 Switch::switchType sw = Switch::asEnum(t.wordToken(), true);
00057
00058 if (sw == Switch::INVALID)
00059 {
00060 is.setBad();
00061 FatalIOErrorIn("operator>>(Istream&, Switch&)", is)
00062 << "expected 'true/false', 'on/off' ... found " << t.wordToken()
00063 << exit(FatalIOError);
00064
00065 return is;
00066 }
00067 else
00068 {
00069 s.switch_ = sw;
00070 }
00071 }
00072 else
00073 {
00074 is.setBad();
00075 FatalIOErrorIn("operator>>(Istream&, bool/Switch&)", is)
00076 << "wrong token type - expected bool found " << t
00077 << exit(FatalIOError);
00078
00079 return is;
00080 }
00081
00082
00083
00084 is.check("Istream& operator>>(Istream&, Switch&)");
00085
00086 return is;
00087 }
00088
00089
00090 Foam::Ostream& Foam::operator<<(Ostream& os, const Switch& s)
00091 {
00092 os << Switch::names[s.switch_];
00093 os.check("Ostream& operator<<(Ostream&, const Switch&)");
00094 return os;
00095 }
00096
00097
00098