Scippy

SCIP

Solving Constraint Integer Programs

scip_message.h
Go to the documentation of this file.
1/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2/* */
3/* This file is part of the program and library */
4/* SCIP --- Solving Constraint Integer Programs */
5/* */
6/* Copyright (c) 2002-2024 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 scip_message.h
26 * @ingroup PUBLICCOREAPI
27 * @brief public methods for message handling
28 * @author Tobias Achterberg
29 * @author Timo Berthold
30 * @author Thorsten Koch
31 * @author Alexander Martin
32 * @author Marc Pfetsch
33 * @author Kati Wolter
34 * @author Gregor Hendel
35 * @author Leona Gottwald
36 */
37
38/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
39
40#ifndef __SCIP_SCIP_MESSAGE_H__
41#define __SCIP_SCIP_MESSAGE_H__
42
43
44#include "scip/def.h"
45#include "scip/type_message.h"
46#include "scip/type_retcode.h"
47#include "scip/type_scip.h"
48
49#ifdef __cplusplus
50extern "C" {
51#endif
52
53/**@addtogroup MessageOutputMethods
54 *
55 * @{
56 */
57
58/* if we have a C99 compiler */
59#ifdef SCIP_HAVE_VARIADIC_MACROS
60
61/** prints a debugging message if SCIP_DEBUG flag is set */
62#ifdef SCIP_DEBUG
63#define SCIPdebugMsg(scip, ...) SCIPprintDebugMessage(scip, __FILE__, __LINE__, __VA_ARGS__)
64#define SCIPdebugMsgPrint(scip, ...) SCIPdebugMessagePrint(scip, __VA_ARGS__)
65#else
66#define SCIPdebugMsg(scip, ...) while ( FALSE ) SCIPprintDebugMessage(scip, __FILE__, __LINE__, __VA_ARGS__)
67#define SCIPdebugMsgPrint(scip, ...) while ( FALSE ) SCIPdebugMessagePrint(scip, __VA_ARGS__)
68#endif
69
70#else
71/* if we do not have a C99 compiler, use a workaround that prints a message, but not the file and linenumber */
72
73/** prints a debugging message if SCIP_DEBUG flag is set */
74#ifdef SCIP_DEBUG
75#define SCIPdebugMsg printf("debug: "), SCIPdebugMessagePrint
76#define SCIPdebugMsgPrint SCIPdebugMessagePrint
77#else
78#define SCIPdebugMsg while ( FALSE ) SCIPdebugMessagePrint
79#define SCIPdebugMsgPrint while ( FALSE ) SCIPdebugMessagePrint
80#endif
81
82#endif
83
84
85/** installs the given message handler, such that all messages are passed to this handler. A messages handler can be
86 * created via SCIPmessagehdlrCreate().
87 *
88 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
89 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
90 *
91 * @pre this method can be called in one of the following stages of the SCIP solving process:
92 * - \ref SCIP_STAGE_INIT
93 * - \ref SCIP_STAGE_PROBLEM
94 *
95 * @note The currently installed messages handler gets freed if this SCIP instance is its last user (w.r.t. capture/release).
96 */
97SCIP_EXPORT
99 SCIP* scip, /**< SCIP data structure */
100 SCIP_MESSAGEHDLR* messagehdlr /**< message handler to install, or NULL to suppress all output */
101 );
102
103/** returns the currently installed message handler
104 *
105 * @return the currently installed message handler, or NULL if messages are currently suppressed
106 */
107SCIP_EXPORT
109 SCIP* scip /**< SCIP data structure */
110 );
111
112/** sets the log file name for the currently installed message handler */
113SCIP_EXPORT
115 SCIP* scip, /**< SCIP data structure */
116 const char* filename /**< name of log file, or NULL (no log) */
117 );
118
119/** sets the currently installed message handler to be quiet (or not) */
120SCIP_EXPORT
122 SCIP* scip, /**< SCIP data structure */
123 SCIP_Bool quiet /**< should screen messages be suppressed? */
124 );
125
126/** prints a warning message via the message handler */
127#ifdef __GNUC__
128__attribute__((format(printf, 2, 3)))
129#endif
130SCIP_EXPORT
132 SCIP* scip, /**< SCIP data structure */
133 const char* formatstr, /**< format string like in printf() function */
134 ... /**< format arguments line in printf() function */
135 );
136
137/** prints a debug message */
138#ifdef __GNUC__
139__attribute__((format(printf, 4, 5)))
140#endif
141SCIP_EXPORT
143 SCIP* scip, /**< SCIP data structure */
144 const char* sourcefile, /**< name of the source file that called the function */
145 int sourceline, /**< line in the source file where the function was called */
146 const char* formatstr, /**< format string like in printf() function */
147 ... /**< format arguments line in printf() function */
148 );
149
150/** prints a debug message without precode */
151#ifdef __GNUC__
152__attribute__((format(printf, 2, 3)))
153#endif
154SCIP_EXPORT
156 SCIP* scip, /**< SCIP data structure */
157 const char* formatstr, /**< format string like in printf() function */
158 ... /**< format arguments line in printf() function */
159 );
160
161/** prints a dialog message that requests user interaction or is a direct response to a user interactive command */
162#ifdef __GNUC__
163__attribute__((format(printf, 3, 4)))
164#endif
165SCIP_EXPORT
167 SCIP* scip, /**< SCIP data structure */
168 FILE* file, /**< file stream to print into, or NULL for stdout */
169 const char* formatstr, /**< format string like in printf() function */
170 ... /**< format arguments line in printf() function */
171 );
172
173/** prints a message */
174#ifdef __GNUC__
175__attribute__((format(printf, 3, 4)))
176#endif
177SCIP_EXPORT
178void SCIPinfoMessage(
179 SCIP* scip, /**< SCIP data structure */
180 FILE* file, /**< file stream to print into, or NULL for stdout */
181 const char* formatstr, /**< format string like in printf() function */
182 ... /**< format arguments line in printf() function */
183 );
184
185/** prints a message depending on the verbosity level */
186#ifdef __GNUC__
187__attribute__((format(printf, 4, 5)))
188#endif
189SCIP_EXPORT
190void SCIPverbMessage(
191 SCIP* scip, /**< SCIP data structure */
192 SCIP_VERBLEVEL msgverblevel, /**< verbosity level of this message */
193 FILE* file, /**< file stream to print into, or NULL for stdout */
194 const char* formatstr, /**< format string like in printf() function */
195 ... /**< format arguments line in printf() function */
196 );
197
198/** returns the current message verbosity level
199 *
200 * @return message verbosity level of SCIP
201 *
202 * @see \ref SCIP_VerbLevel "SCIP_VERBLEVEL" for a list of all verbosity levels
203 */
204SCIP_EXPORT
206 SCIP* scip /**< SCIP data structure */
207 );
208
209
210/**@} */
211
212#ifdef __cplusplus
213}
214#endif
215
216#endif
common defines and data types used in all packages of SCIP
#define SCIP_Bool
Definition: def.h:91
void SCIPinfoMessage(SCIP *scip, FILE *file, const char *formatstr,...)
Definition: scip_message.c:208
void SCIPprintDebugMessage(SCIP *scip, const char *sourcefile, int sourceline, const char *formatstr,...)
Definition: scip_message.c:136
SCIP_RETCODE SCIPsetMessagehdlr(SCIP *scip, SCIP_MESSAGEHDLR *messagehdlr)
Definition: scip_message.c:64
void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...)
Definition: scip_message.c:225
SCIP_VERBLEVEL SCIPgetVerbLevel(SCIP *scip)
Definition: scip_message.c:249
SCIP_MESSAGEHDLR * SCIPgetMessagehdlr(SCIP *scip)
Definition: scip_message.c:88
void SCIPdialogMessage(SCIP *scip, FILE *file, const char *formatstr,...)
Definition: scip_message.c:191
void SCIPsetMessagehdlrLogfile(SCIP *scip, const char *filename)
Definition: scip_message.c:96
void SCIPsetMessagehdlrQuiet(SCIP *scip, SCIP_Bool quiet)
Definition: scip_message.c:108
void SCIPdebugMessagePrint(SCIP *scip, const char *formatstr,...)
Definition: scip_message.c:175
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
Definition: scip_message.c:120
type definitions for message output methods
enum SCIP_VerbLevel SCIP_VERBLEVEL
Definition: type_message.h:59
type definitions for return codes for SCIP methods
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:63
type definitions for SCIP's main datastructure