fixed writing out entries in advective bc
[OpenFOAM-1.6-ext.git] / src / OpenFOAM / db / error / messageStream.C
blobbefc92081f48f5b470c1e6ed36d57d85a24f3242
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 \*---------------------------------------------------------------------------*/
27 #include "error.H"
28 #include "dictionary.H"
29 #include "Pstream.H"
31 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33 int Foam::messageStream::level(Foam::debug::debugSwitch("level", 2));
36 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
38 Foam::messageStream::messageStream
40     const string& title,
41     errorSeverity sev,
42     const int maxErrors
45     title_(title),
46     severity_(sev),
47     maxErrors_(maxErrors),
48     errorCount_(0)
52 Foam::messageStream::messageStream(const dictionary& dict)
54     title_(dict.lookup("title")),
55     severity_(FATAL),
56     maxErrors_(0),
57     errorCount_(0)
61 Foam::OSstream& Foam::messageStream::operator()
63     const char* functionName,
64     const char* sourceFileName,
65     const int sourceFileLineNumber
68     OSstream& os = operator OSstream&();
70     os  << endl
71         << "    From function " << functionName << endl
72         << "    in file " << sourceFileName
73         << " at line " << sourceFileLineNumber << endl
74         << "    ";
76     return os;
80 Foam::OSstream& Foam::messageStream::operator()
82     const string& functionName,
83     const char* sourceFileName,
84     const int sourceFileLineNumber
87     return operator()
88     (
89         functionName.c_str(),
90         sourceFileName,
91         sourceFileLineNumber
92     );
96 Foam::OSstream& Foam::messageStream::operator()
98     const char* functionName,
99     const char* sourceFileName,
100     const int sourceFileLineNumber,
101     const string& ioFileName,
102     const label ioStartLineNumber,
103     const label ioEndLineNumber
106     OSstream& os = operator OSstream&();
108     os  << endl
109         << "    From function " << functionName << endl
110         << "    in file " << sourceFileName
111         << " at line " << sourceFileLineNumber << endl
112         << "    Reading " << ioFileName;
114     if (ioStartLineNumber >= 0 && ioEndLineNumber >= 0)
115     {
116         os  << " from line " << ioStartLineNumber
117             << " to line " << ioEndLineNumber;
118     }
119     else if (ioStartLineNumber >= 0)
120     {
121         os  << " at line " << ioStartLineNumber;
122     }
124     os << endl  << "    ";
126     return os;
130 Foam::OSstream& Foam::messageStream::operator()
132     const char* functionName,
133     const char* sourceFileName,
134     const int sourceFileLineNumber,
135     const IOstream& ioStream
138     return operator()
139     (
140         functionName,
141         sourceFileName,
142         sourceFileLineNumber,
143         ioStream.name(),
144         ioStream.lineNumber(),
145         -1
146     );
150 Foam::OSstream& Foam::messageStream::operator()
152     const char* functionName,
153     const char* sourceFileName,
154     const int sourceFileLineNumber,
155     const dictionary& dict
158     return operator()
159     (
160         functionName,
161         sourceFileName,
162         sourceFileLineNumber,
163         dict.name(),
164         dict.startLineNumber(),
165         dict.endLineNumber()
166     );
170 Foam::messageStream::operator Foam::OSstream&()
172     if (level)
173     {
174         bool collect = (severity_ == INFO || severity_ == WARNING);
176         // Report the error
177         if (!Pstream::master() && collect)
178         {
179             return Snull;
180         }
181         else
182         {
183             if (title().size())
184             {
185                 if (Pstream::parRun() && !collect)
186                 {
187                     Pout<< title().c_str();
188                 }
189                 else
190                 {
191                     Sout<< title().c_str();
192                 }
193             }
195             if (maxErrors_)
196             {
197                 errorCount_++;
199                 if (errorCount_ >= maxErrors_)
200                 {
201                     FatalErrorIn("messageStream::operator OSstream&()")
202                         << "Too many errors"
203                         << abort(FatalError);
204                 }
205             }
207             if (Pstream::parRun() && !collect)
208             {
209                 return Pout;
210             }
211             else
212             {
213                 return Sout;
214             }
215         }
216     }
218     return Snull;
222 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
223 // Global messageStream definitions
225 Foam::messageStream Foam::SeriousError
227     "--> FOAM Serious Error : ",
228     messageStream::SERIOUS,
229     100
232 Foam::messageStream Foam::Warning
234     "--> FOAM Warning : ",
235     messageStream::WARNING
238 Foam::messageStream Foam::Info("", messageStream::INFO);
241 // ************************************************************************* //