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 pub_conflict.h 26 * @ingroup PUBLICCOREAPI 27 * @brief public methods for conflict analysis handlers 28 * @author Tobias Achterberg 29 */ 30 31 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 32 33 #ifndef __SCIP_PUB_CONFLICT_H__ 34 #define __SCIP_PUB_CONFLICT_H__ 35 36 37 38 #include "scip/def.h" 39 #include "scip/type_misc.h" 40 #include "scip/type_conflict.h" 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 /**@addtogroup PublicConflictMethods 47 * 48 * @{ 49 */ 50 51 /** compares two conflict handlers w. r. to their priority */ 52 SCIP_EXPORT 53 SCIP_DECL_SORTPTRCOMP(SCIPconflicthdlrComp); 54 55 /** comparison method for sorting conflict handler w.r.t. to their name */ 56 SCIP_EXPORT 57 SCIP_DECL_SORTPTRCOMP(SCIPconflicthdlrCompName); 58 59 /** gets user data of conflict handler */ 60 SCIP_EXPORT 61 SCIP_CONFLICTHDLRDATA* SCIPconflicthdlrGetData( 62 SCIP_CONFLICTHDLR* conflicthdlr /**< conflict handler */ 63 ); 64 65 /** sets user data of conflict handler; user has to free old data in advance! */ 66 SCIP_EXPORT 67 void SCIPconflicthdlrSetData( 68 SCIP_CONFLICTHDLR* conflicthdlr, /**< conflict handler */ 69 SCIP_CONFLICTHDLRDATA* conflicthdlrdata /**< new conflict handler user data */ 70 ); 71 72 /** gets name of conflict handler */ 73 SCIP_EXPORT 74 const char* SCIPconflicthdlrGetName( 75 SCIP_CONFLICTHDLR* conflicthdlr /**< conflict handler */ 76 ); 77 78 /** gets description of conflict handler */ 79 SCIP_EXPORT 80 const char* SCIPconflicthdlrGetDesc( 81 SCIP_CONFLICTHDLR* conflicthdlr /**< conflict handler */ 82 ); 83 84 /** gets priority of conflict handler */ 85 SCIP_EXPORT 86 int SCIPconflicthdlrGetPriority( 87 SCIP_CONFLICTHDLR* conflicthdlr /**< conflict handler */ 88 ); 89 90 /** is conflict handler initialized? */ 91 SCIP_EXPORT 92 SCIP_Bool SCIPconflicthdlrIsInitialized( 93 SCIP_CONFLICTHDLR* conflicthdlr /**< conflict handler */ 94 ); 95 96 /** gets time in seconds used in this conflict handler for setting up for next stages */ 97 SCIP_EXPORT 98 SCIP_Real SCIPconflicthdlrGetSetupTime( 99 SCIP_CONFLICTHDLR* conflicthdlr /**< conflict handler */ 100 ); 101 102 /** gets time in seconds used in this conflict handler */ 103 SCIP_EXPORT 104 SCIP_Real SCIPconflicthdlrGetTime( 105 SCIP_CONFLICTHDLR* conflicthdlr /**< conflict handler */ 106 ); 107 108 /** @} */ 109 110 #ifdef __cplusplus 111 } 112 #endif 113 114 #endif 115