/usr/include/freefoam/OpenFOAM/PstreamImplI.H is in libfreefoam-dev 0.1.0+dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | /*----------------------------------------------------------------------------*\
______ _ ____ __ __
| ____| _| |_ / __ \ /\ | \/ |
| |__ _ __ ___ ___ / \| | | | / \ | \ / |
| __| '__/ _ \/ _ ( (| |) ) | | |/ /\ \ | |\/| |
| | | | | __/ __/\_ _/| |__| / ____ \| | | |
|_| |_| \___|\___| |_| \____/_/ \_\_| |_|
FreeFOAM: The Cross-Platform CFD Toolkit
Copyright (C) 2008-2012 Michael Wild <themiwi@users.sf.net>
Gerber van der Graaf <gerber_graaf@users.sf.net>
--------------------------------------------------------------------------------
License
This file is part of FreeFOAM.
FreeFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
FreeFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with FreeFOAM. If not, see <http://www.gnu.org/licenses/>.
\*----------------------------------------------------------------------------*/
#include <OpenFOAM/PstreamImpl.H>
#include <OpenFOAM/debug.H>
#include <OpenFOAM/OSspecific.H>
#include <OpenFOAM/dictionary.H>
#include <OpenFOAM/dlLibraryTable.H>
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam {
// * * * * * * * * * * * * * Local Helper Functions * * * * * * * * * * * * //
// helper function to find the config section name
word PstreamConfigSectionName();
// * * * * * * * * * * * * * Public Member Functions * * * * * * * * * * * * //
template<class T, class CTable>
autoPtr<T> PstreamImpl::loadPstreamInstance(const word& dictEntry, const word& envName, CTable* ctable)
{
word PstreamClassName;
// check whether the environment variable is set
if(env(envName))
{
PstreamClassName = getEnv(envName);
}
else
{
// otherwise check the global controlDict
word configName = PstreamConfigSectionName();
debug::controlDict().subDict("PstreamImplementation")
.subDict(configName).lookup(dictEntry) >> PstreamClassName;
}
if(PstreamImpl::debug)
{
Info<< "Trying to instantiate '" << PstreamClassName << "'" << endl;
}
typename CTable::iterator cstrIter =
ctable->find(PstreamClassName);
if (cstrIter == ctable->end())
{
FatalErrorIn
(
"PstreamImpl::loadPstreamInstance(const word&, const word&)"
) << "Unknown type '" << PstreamClassName << "'"
<< endl << endl
<< "Valid types are :" << endl
<< ctable->toc()
<< Foam::exit(FatalError);
}
// instantiate
return cstrIter()();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************ vim: set sw=4 sts=4 et: ************************ //
|