initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / postProcessing / functionObjects / IO / writeRegisteredObject / writeRegisteredObject.C
blobb5ad785ab164d7fb424ea8310066d415c372cf0f
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
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 "writeRegisteredObject.H"
28 #include "dictionary.H"
29 #include "Time.H"
31 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33 namespace Foam
35     defineTypeNameAndDebug(writeRegisteredObject, 0);
39 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
41 Foam::writeRegisteredObject::writeRegisteredObject
43     const word& name,
44     const objectRegistry& obr,
45     const dictionary& dict,
46     const bool loadFromFiles
49     name_(name),
50     obr_(obr),
51     active_(true),
52     objectNames_()
54     read(dict);
58 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
60 Foam::writeRegisteredObject::~writeRegisteredObject()
64 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
66 void Foam::writeRegisteredObject::read(const dictionary& dict)
68     if (active_)
69     {
70         dict.lookup("objectNames") >> objectNames_;
72         forAll(objectNames_, i)
73         {
74             if (obr_.foundObject<regIOobject>(objectNames_[i]))
75             {
76                 regIOobject& obj =
77                     const_cast<regIOobject&>
78                     (
79                         obr_.lookupObject<regIOobject>(objectNames_[i])
80                     );
81                 obj.writeOpt() = IOobject::NO_WRITE;
82             }
83             else
84             {
85                 FatalErrorIn
86                 (
87                     "Foam::writeRegisteredObject::read(const dictionary&)"
88                 )   << "Object " << objectNames_[i] << " not found in "
89                     << "database. Available objects are:" << nl << obr_.toc()
90                     << nl << exit(FatalError);
91             }
92         }
93     }
97 void Foam::writeRegisteredObject::execute()
99     // Do nothing - only valid on write
103 void Foam::writeRegisteredObject::end()
105     // Do nothing - only valid on write
109 void Foam::writeRegisteredObject::write()
111     if (active_)
112     {
113         forAll(objectNames_, i)
114         {
115             const regIOobject& obj =
116                 obr_.lookupObject<regIOobject>(objectNames_[i]);
117             obj.write();
118         }
119     }
123 // ************************************************************************* //