1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (C) 2002-2021 Konrad-Zuse-Zentrum */ 7 /* fuer Informationstechnik Berlin */ 8 /* */ 9 /* SCIP is distributed under the terms of the ZIB Academic License. */ 10 /* */ 11 /* You should have received a copy of the ZIB Academic License */ 12 /* along with SCIP; see the file COPYING. If not visit scipopt.org. */ 13 /* */ 14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /**@file type_message.h 17 * @ingroup TYPEDEFINITIONS 18 * @brief type definitions for message output methods 19 * @author Tobias Achterberg 20 * 21 * This file defines the interface for message handlers implemented in C. 22 * 23 * - \ref scip::ObjMessagehdlr "C++ wrapper class" 24 */ 25 26 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 27 28 #ifndef __SCIP_TYPE_MESSAGE_H__ 29 #define __SCIP_TYPE_MESSAGE_H__ 30 31 32 #include <stdio.h> 33 34 #ifdef __cplusplus 35 extern "C" { 36 #endif 37 38 /** verbosity levels of output */ 39 enum SCIP_VerbLevel 40 { 41 SCIP_VERBLEVEL_NONE = 0, /**< only error and warning messages are displayed */ 42 SCIP_VERBLEVEL_DIALOG = 1, /**< only interactive dialogs, errors, and warnings are displayed */ 43 SCIP_VERBLEVEL_MINIMAL = 2, /**< only important messages are displayed */ 44 SCIP_VERBLEVEL_NORMAL = 3, /**< standard messages are displayed */ 45 SCIP_VERBLEVEL_HIGH = 4, /**< a lot of information is displayed */ 46 SCIP_VERBLEVEL_FULL = 5 /**< all messages are displayed */ 47 }; 48 typedef enum SCIP_VerbLevel SCIP_VERBLEVEL; 49 50 typedef struct SCIP_Messagehdlr SCIP_MESSAGEHDLR; /**< message handler */ 51 typedef struct SCIP_MessagehdlrData SCIP_MESSAGEHDLRDATA; /**< message handler data */ 52 53 /** generic messagehandler output function 54 * 55 * Should be equal to SCIP_DECL_MESSAGEWARNING, SCIP_DECL_MESSAGEDIALOG, and SCIP_DECL_MESSAGEINFO 56 */ 57 #define SCIP_DECL_MESSAGEOUTPUTFUNC(x) void x (SCIP_MESSAGEHDLR* messagehdlr, FILE* file, const char* msg) 58 59 60 /** error message print method 61 * 62 * This method is invoked, if SCIP wants to display an error message to the screen or a file. 63 * 64 * @note This function is independent of any message handler. 65 * 66 * input: 67 * - data : data pointer 68 * - file : file stream to print into 69 * - msg : string to output into the file (or NULL to flush) 70 */ 71 #define SCIP_DECL_ERRORPRINTING(x) void x (void* data, FILE* file, const char* msg) 72 73 /** warning message print method of message handler 74 * 75 * This method is invoked, if SCIP wants to display a warning message to the screen or a file. 76 * 77 * input: 78 * - messagehdlr : the message handler itself 79 * - file : file stream to print into 80 * - msg : string to output into the file (or NULL to flush) 81 */ 82 #define SCIP_DECL_MESSAGEWARNING(x) void x (SCIP_MESSAGEHDLR* messagehdlr, FILE* file, const char* msg) 83 84 /** dialog message print method of message handler 85 * 86 * This method is invoked, if SCIP wants to display a dialog message to the screen or a file. 87 * 88 * input: 89 * - messagehdlr : the message handler itself 90 * - file : file stream to print into 91 * - msg : string to output into the file (or NULL to flush) 92 */ 93 #define SCIP_DECL_MESSAGEDIALOG(x) void x (SCIP_MESSAGEHDLR* messagehdlr, FILE* file, const char* msg) 94 95 /** info message print method of message handler 96 * 97 * This method is invoked, if SCIP wants to display an information message to the screen or a file. 98 * 99 * input: 100 * - messagehdlr : the message handler itself 101 * - file : file stream to print into 102 * - msg : string to output into the file (or NULL to flush) 103 */ 104 #define SCIP_DECL_MESSAGEINFO(x) void x (SCIP_MESSAGEHDLR* messagehdlr, FILE* file, const char* msg) 105 106 /** destructor of message handler to free message handler data 107 * 108 * This method is invoked, if SCIP wants to free a message handler. 109 * 110 * input: 111 * - messagehdlr : the message handler itself 112 */ 113 #define SCIP_DECL_MESSAGEHDLRFREE(x) SCIP_RETCODE x (SCIP_MESSAGEHDLR* messagehdlr) 114 115 #ifdef __cplusplus 116 } 117 #endif 118 119 #endif 120