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