ccmInternal.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2016 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*----------------------------------------------------------------------------*/
27 
28 #include "Pstream.H"
29 #include "ccmInternal.H" // include last to avoid any strange interactions
30 
31 
32 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33 
34 namespace Foam
35 {
37 }
38 
39 
40 // * * * * * * * * * * * * * * Static Functions * * * * * * * * * * * * * * //
41 
42 // \cond file-scope
43 // Return the string corresponding to the error
44 static const char* errorMsg(CCMIOError err)
45 {
46  switch (err)
47  {
48  case kCCMIONoErr:
49  return "";
50  break;
51  case kCCMIONoFileErr:
52  return "No File Error";
53  break;
54  case kCCMIOPermissionErr:
55  return "Permission Error";
56  break;
57  case kCCMIOCorruptFileErr:
58  return "Corrupt File Error";
59  break;
60  case kCCMIOBadLinkErr:
61  return "Bad Link Error";
62  break;
63  case kCCMIONoNodeErr:
64  return "No Node Error";
65  break;
66  case kCCMIODuplicateNodeErr:
67  return "Duplicate Node Error";
68  break;
69  case kCCMIOWrongDataTypeErr:
70  return "Wrong Data Type Error";
71  break;
72  case kCCMIONoDataErr:
73  return "NoData Error";
74  break;
75  case kCCMIOWrongParentErr:
76  return "Wrong Parent Error";
77  break;
78  case kCCMIOBadParameterErr:
79  return "Bad Parameter Error";
80  break;
81  case kCCMIONoMemoryErr:
82  return "No Memory Error";
83  break;
84  case kCCMIOIOErr:
85  return "IO Error";
86  break;
87  case kCCMIOTooManyFacesErr:
88  return "Too Many Faces Error";
89  break;
90  case kCCMIOVersionErr:
91  return "Version Error";
92  break;
93  case kCCMIOArrayDimensionToLargeErr:
94  return "Array Dimension To Large Error";
95  break;
96  case kCCMIOInternalErr:
97  return "Internal Error";
98  break;
99  default:
100  return "unclassified error";
101  break;
102  }
103 }
105 
106 
107 // * * * * * * * * * * * * * * Public Member Functions * * * * * * * * * * * //
108 
109 bool Foam::ccm::ccmGlobalState::assertNoError
110 (
111  CCMIOError err,
112  const char* msg
113 )
114 {
115  if (err != kCCMIONoErr)
116  {
117  Perr<< endl
118  << "--> FATAL ERROR:"
119  << "\n " << msg
120  << "\n libccmio reports -> " << errorMsg(err) << " <-\n"
121  << endl;
122 
123  std::exit(1);
124  }
125 
126  return (err == kCCMIONoErr);
127 }
128 
129 
130 bool Foam::ccm::ccmGlobalState::assertNoError
131 (
132  CCMIOError err,
133  const std::string& msg
134 )
135 {
136  if (err != kCCMIONoErr)
137  {
138  assertNoError(err, msg.c_str());
139  }
140 
141  return (err == kCCMIONoErr);
142 }
143 
144 
145 bool Foam::ccm::ccmGlobalState::assertNoError
146 (
147  const char* msg
148 ) const
149 {
150  return assertNoError(error, msg);
151 }
152 
153 
154 bool Foam::ccm::ccmGlobalState::assertNoError
155 (
156  const std::string& msg
157 ) const
158 {
159  return assertNoError(error, msg);
160 }
161 
162 
163 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
164 
165 Foam::ccm::ccmGlobalState::ccmGlobalState()
166 :
167  error(kCCMIONoErr)
168 {
169  CCMIOInvalidateEntity(&root);
170 }
171 
172 
173 // ************************************************************************* //
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:369
ccmInternal.H
Internal bits for wrapping libccmio - do not use directly.
Pstream.H
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::exit
errorManipArg< error, int > exit(error &err, const int errNo=1)
Definition: errorManip.H:130
Foam::Perr
prefixOSstream Perr
OSstream wrapped stderr (std::cerr) with parallel prefix.
Foam::defineTypeNameAndDebug
defineTypeNameAndDebug(combustionModel, 0)