If you simply want to terminate optimization under circumstances defined by your application, then you do not necessarily need to write a callback to do so. Instead, you can invoke termination by these means:
-
In the C++ API, pass an instance of the class
IloCplex::Aborter to an instance of IloCplex. Then call the method IloCplex::Aborter::abort to terminate optimization.
-
In the Java API, pass an instance of the class
IloCplex.Aborter to an instance of IloCplex. Then call the method IloCplex.Aborter.abort to terminate optimization.
-
In the .NET API, pass an instance of the class
Cplex.Aborter to an instance of Cplex. Then call the method Cplex.Aborter.Abort to terminate optimization.
-
In the Callable Library (C API), call the routine
CPXsetterminate to set a pointer to the termination signal. Initially, the value of the termination signal should be zero. When your application sets the termination signal to a nonzero value, then ILOG CPLEX will terminate optimization.