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 "includeEntry.H"
00027 #include <OpenFOAM/dictionary.H>
00028 #include <OpenFOAM/IFstream.H>
00029 #include <OpenFOAM/addToMemberFunctionSelectionTable.H>
00030
00031
00032
00033 const Foam::word Foam::functionEntries::includeEntry::typeName
00034 (
00035 Foam::functionEntries::includeEntry::typeName_()
00036 );
00037
00038
00039
00040 int Foam::functionEntries::includeEntry::debug(0);
00041
00042 namespace Foam
00043 {
00044 namespace functionEntries
00045 {
00046 addToMemberFunctionSelectionTable
00047 (
00048 functionEntry,
00049 includeEntry,
00050 execute,
00051 dictionaryIstream
00052 );
00053
00054 addToMemberFunctionSelectionTable
00055 (
00056 functionEntry,
00057 includeEntry,
00058 execute,
00059 primitiveEntryIstream
00060 );
00061 }
00062 }
00063
00064
00065
00066 Foam::fileName Foam::functionEntries::includeEntry::includeFileName
00067 (
00068 Istream& is
00069 )
00070 {
00071 fileName fName(is);
00072 fName.expand();
00073
00074
00075 if (fName.size() && fName[0] != '/')
00076 {
00077 fName = fileName(is.name()).path()/fName;
00078 }
00079
00080 return fName;
00081 }
00082
00083
00084
00085
00086 bool Foam::functionEntries::includeEntry::execute
00087 (
00088 dictionary& parentDict,
00089 Istream& is
00090 )
00091 {
00092 IFstream ifs(includeFileName(is));
00093
00094 if (ifs)
00095 {
00096 parentDict.read(ifs);
00097 return true;
00098 }
00099 else
00100 {
00101 FatalIOErrorIn
00102 (
00103 "functionEntries::includeEntry::includeEntry"
00104 "(dictionary& parentDict, Istream&)",
00105 is
00106 ) << "Cannot open include file " << ifs.name()
00107 << " while reading dictionary " << parentDict.name()
00108 << exit(FatalIOError);
00109
00110 return false;
00111 }
00112 }
00113
00114
00115 bool Foam::functionEntries::includeEntry::execute
00116 (
00117 const dictionary& parentDict,
00118 primitiveEntry& entry,
00119 Istream& is
00120 )
00121 {
00122 IFstream ifs(includeFileName(is));
00123
00124 if (ifs)
00125 {
00126 entry.read(parentDict, ifs);
00127 return true;
00128 }
00129 else
00130 {
00131 FatalIOErrorIn
00132 (
00133 "functionEntries::includeEntry::includeEntry"
00134 "(dictionary& parentDict, primitiveEntry&, Istream&)",
00135 is
00136 ) << "Cannot open include file " << ifs.name()
00137 << " while reading dictionary " << parentDict.name()
00138 << exit(FatalIOError);
00139
00140 return false;
00141 }
00142 }
00143
00144