1    	/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2    	/*                                                                           */
3    	/*                  This file is part of the program and library             */
4    	/*         SCIP --- Solving Constraint Integer Programs                      */
5    	/*                                                                           */
6    	/*  Copyright (c) 2002-2023 Zuse Institute Berlin (ZIB)                      */
7    	/*                                                                           */
8    	/*  Licensed under the Apache License, Version 2.0 (the "License");          */
9    	/*  you may not use this file except in compliance with the License.         */
10   	/*  You may obtain a copy of the License at                                  */
11   	/*                                                                           */
12   	/*      http://www.apache.org/licenses/LICENSE-2.0                           */
13   	/*                                                                           */
14   	/*  Unless required by applicable law or agreed to in writing, software      */
15   	/*  distributed under the License is distributed on an "AS IS" BASIS,        */
16   	/*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17   	/*  See the License for the specific language governing permissions and      */
18   	/*  limitations under the License.                                           */
19   	/*                                                                           */
20   	/*  You should have received a copy of the Apache-2.0 license                */
21   	/*  along with SCIP; see the file LICENSE. If not visit scipopt.org.         */
22   	/*                                                                           */
23   	/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24   	
25   	/**@file   retcode.c
26   	 * @ingroup OTHER_CFILES
27   	 * @brief  methods for return codes for SCIP methods
28   	 * @author Tobias Achterberg
29   	 */
30   	
31   	/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32   	
33   	#include <stdio.h>
34   	
35   	#include "scip/retcode.h"
36   	
37   	/** prints error message for return code via message handler */
38   	void SCIPretcodePrint(
39   	   SCIP_MESSAGEHDLR*     messagehdlr,        /**< message handler */
40   	   FILE*                 file,               /**< file stream to write error message */
41   	   SCIP_RETCODE          retcode             /**< SCIP return code causing the error */
42   	   )
43   	{
44   	   switch( retcode )
45   	   {
46   	   case SCIP_OKAY:
47   	      SCIPmessageFPrintInfo(messagehdlr, file, "normal termination");
48   	      break;
49   	   case SCIP_ERROR:
50   	      SCIPmessageFPrintInfo(messagehdlr, file, "unspecified error");
51   	      break;
52   	   case SCIP_NOMEMORY:
53   	      SCIPmessageFPrintInfo(messagehdlr, file, "insufficient memory error");
54   	      break;
55   	   case SCIP_READERROR:
56   	      SCIPmessageFPrintInfo(messagehdlr, file, "read error");
57   	      break;
58   	   case SCIP_WRITEERROR:
59   	      SCIPmessageFPrintInfo(messagehdlr, file, "write error");
60   	      break;
61   	   case SCIP_NOFILE:
62   	      SCIPmessageFPrintInfo(messagehdlr, file, "file not found error");
63   	      break;
64   	   case SCIP_FILECREATEERROR:
65   	      SCIPmessageFPrintInfo(messagehdlr, file, "cannot create file");
66   	      break;
67   	   case SCIP_LPERROR:
68   	      SCIPmessageFPrintInfo(messagehdlr, file, "error in LP solver");
69   	      break;
70   	   case SCIP_NOPROBLEM:
71   	      SCIPmessageFPrintInfo(messagehdlr, file, "no problem exists");
72   	      break;
73   	   case SCIP_INVALIDCALL:
74   	      SCIPmessageFPrintInfo(messagehdlr, file, "method cannot be called at this time in solution process");
75   	      break;
76   	   case SCIP_INVALIDDATA:
77   	      SCIPmessageFPrintInfo(messagehdlr, file, "method cannot be called with this type of data");
78   	      break;
79   	   case SCIP_INVALIDRESULT:
80   	      SCIPmessageFPrintInfo(messagehdlr, file, "method returned an invalid result code");
81   	      break;
82   	   case SCIP_PLUGINNOTFOUND:
83   	      SCIPmessageFPrintInfo(messagehdlr, file, "a required plugin was not found");
84   	      break;
85   	   case SCIP_PARAMETERUNKNOWN:
86   	      SCIPmessageFPrintInfo(messagehdlr, file, "the parameter with the given name was not found");
87   	      break;
88   	   case SCIP_PARAMETERWRONGTYPE:
89   	      SCIPmessageFPrintInfo(messagehdlr, file, "the parameter is not of the expected type");
90   	      break;
91   	   case SCIP_PARAMETERWRONGVAL:
92   	      SCIPmessageFPrintInfo(messagehdlr, file, "the value is invalid for the given parameter");
93   	      break;
94   	   case SCIP_KEYALREADYEXISTING:
95   	      SCIPmessageFPrintInfo(messagehdlr, file, "the given key is already existing in table");
96   	      break;
97   	   case SCIP_MAXDEPTHLEVEL:
98   	      SCIPmessageFPrintInfo(messagehdlr, file, "maximal branching depth level exceeded");
99   	      break;
100  	   case SCIP_BRANCHERROR:
101  	      SCIPmessageFPrintInfo(messagehdlr, file, "branching could not be performed (e.g. too large values in variable domain)");
102  	      break;
103  	   case SCIP_NOTIMPLEMENTED:
104  	      SCIPmessageFPrintInfo(messagehdlr, file, "function not implemented");
105  	      break;
106  	   default:
107  	      SCIPmessageFPrintInfo(messagehdlr, file, "unknown error code");
108  	      break;
109  	   }
110  	}
111  	
112  	/** prints error message for return code via error message */
113  	void SCIPretcodePrintError(
114  	   SCIP_RETCODE          retcode             /**< SCIP return code causing the error */
115  	   )
116  	{
117  	   switch( retcode )
118  	   {
119  	   case SCIP_OKAY:
120  	      SCIPmessagePrintError("normal termination");
121  	      break;
122  	   case SCIP_ERROR:
123  	      SCIPmessagePrintError("unspecified error");
124  	      break;
125  	   case SCIP_NOMEMORY:
126  	      SCIPmessagePrintError("insufficient memory error");
127  	      break;
128  	   case SCIP_READERROR:
129  	      SCIPmessagePrintError("read error");
130  	      break;
131  	   case SCIP_WRITEERROR:
132  	      SCIPmessagePrintError("write error");
133  	      break;
134  	   case SCIP_NOFILE:
135  	      SCIPmessagePrintError("file not found error");
136  	      break;
137  	   case SCIP_FILECREATEERROR:
138  	      SCIPmessagePrintError("cannot create file");
139  	      break;
140  	   case SCIP_LPERROR:
141  	      SCIPmessagePrintError("error in LP solver");
142  	      break;
143  	   case SCIP_NOPROBLEM:
144  	      SCIPmessagePrintError("no problem exists");
145  	      break;
146  	   case SCIP_INVALIDCALL:
147  	      SCIPmessagePrintError("method cannot be called at this time in solution process");
148  	      break;
149  	   case SCIP_INVALIDDATA:
150  	      SCIPmessagePrintError("method cannot be called with this type of data");
151  	      break;
152  	   case SCIP_INVALIDRESULT:
153  	      SCIPmessagePrintError("method returned an invalid result code");
154  	      break;
155  	   case SCIP_PLUGINNOTFOUND:
156  	      SCIPmessagePrintError("a required plugin was not found");
157  	      break;
158  	   case SCIP_PARAMETERUNKNOWN:
159  	      SCIPmessagePrintError("the parameter with the given name was not found");
160  	      break;
161  	   case SCIP_PARAMETERWRONGTYPE:
162  	      SCIPmessagePrintError("the parameter is not of the expected type");
163  	      break;
164  	   case SCIP_PARAMETERWRONGVAL:
165  	      SCIPmessagePrintError("the value is invalid for the given parameter");
166  	      break;
167  	   case SCIP_KEYALREADYEXISTING:
168  	      SCIPmessagePrintError("the given key is already existing in table");
169  	      break;
170  	   case SCIP_MAXDEPTHLEVEL:
171  	      SCIPmessagePrintError("maximal branching depth level exceeded");
172  	      break;
173  	   case SCIP_BRANCHERROR:
174  	      SCIPmessagePrintError("branching could not be performed (e.g. too large values in variable domain)");
175  	      break;
176  	   case SCIP_NOTIMPLEMENTED:
177  	      SCIPmessagePrintError("function not implemented");
178  	      break;
179  	   default:
180  	      SCIPmessagePrintError("unknown error code");
181  	      break;
182  	   }
183  	}
184