We distribute the ConSolve runtime system as a dynamic link library, which can be embedded into every programming environment with a C or C++ interface.
Our smart programming interface offers maximum comfort and high productivity: We offer ConStrukt-concepts for C++ access, by generating C++ classes and methods from the given problem description through a code generation process. The actual calls of the runtime library are part of the generated code and therefore they are hidden from the application software developer.
Apart from the built-in functions of the programming interface (e.g. the enumerating of solutions by iterators and the selection of a search method), the programming interface offers a set of extended functions:
In the course of the search process it can be necessary to keep the application system informed about the status of the search, e.g. to be able to intervene in the search proccess. Therefore observer classes (named after the underlying design pattern) are provided, to ensure the information exchange between runtime system and the application. For example an observer can be used to indicate the progress or for the premature abort of a search proccess.
It is often necessary to modify the description of a ConStrukt problem during runtime. This can be achieved by using a programming interface, as the application system adds new conditions to the problem description.
If a problem description contains conditions of different priority which cannot be fulfilled all at the same time, it is desirable to represent the quality of the computed solutions. By using the programming interface you are able to query the conditions which are not fulfilled by a computed solution, e.g. in order to show the quality of the solution to the user.