Remove trailing whitespace systematically
[foam-extend-3.2.git] / src / foam / global / profiling / profilingInfo.C
blobb7a3791607163e5a1e24d2d11c073694db83a9d8
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     |
5     \\  /    A nd           | For copyright notice see file Copyright
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend 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 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "profilingInfo.H"
28 #include "dictionary.H"
30 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
32 Foam::label Foam::profilingInfo::nextId_(0);
34 Foam::label Foam::profilingInfo::getID()
36     nextId_++;
37     return nextId_;
40 void Foam::profilingInfo::raiseID(label maxVal)
42     if(maxVal>nextId_) {
43         nextId_=maxVal;
44     }
47 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
50 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
52 Foam::profilingInfo::profilingInfo()
54     calls_(0),
55     totalTime_(0.),
56     childTime_(0.),
57     id_(getID()),
58     parent_(*this),
59     description_("application::main"),
60     onStack_(false)
64 Foam::profilingInfo::profilingInfo(profilingInfo &parent,const string &descr)
66     calls_(0),
67     totalTime_(0.),
68     childTime_(0.),
69     id_(getID()),
70     parent_(parent),
71     description_(descr),
72     onStack_(false)
75 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
77 Foam::profilingInfo::~profilingInfo()
81 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
83 void Foam::profilingInfo::update(scalar elapsedTimee)
85     calls_++;
86     totalTime_+=elapsedTimee;
87     if(id()!=parent().id()) {
88         parent_.childTime_+=elapsedTimee;
89     }
92 void Foam::profilingInfo::writeWithOffset(Ostream &os,bool offset,scalar time,scalar childTimes) const
94     dictionary tmp;
96     tmp.add("id",id());
97     if(id()!=parent().id()) {
98         tmp.add("parentId",parent().id());
99     }
100     tmp.add("description",description());
101     tmp.add("calls",calls()+(offset ? 1 : 0));
102     tmp.add("totalTime",totalTime()+time);
103     tmp.add("childTime",childTime()+childTimes);
104     tmp.add("onStack",onStack());
106     os << tmp;
109 // * * * * * * * * * * * * * * * Friend Functions  * * * * * * * * * * * * * //
112 // * * * * * * * * * * * * * * * Friend Operators  * * * * * * * * * * * * * //
114 Foam::Ostream& Foam::operator<<(Ostream& os, const profilingInfo& info)
116     info.writeWithOffset(os);
118     return os;
121 // ************************************************************************* //