Initializing help system before first use

problem.setcbmessage

problem.setcbmessage


Purpose
Set a user callback to be called whenever Xpress Nonlinear outputs a line of text
Synopsis

problem.setcbmessage(callback, object)

callback(my_prob, my_object, msg, msgtype)


Arguments
callback 
The function to be called whenever Xpress Nonlinear outputs a line of text. callback does not return a value.
my_prob 
The problem passed to the callback function.
my_object 
The user-defined object passed as object to setcbmessage.
msg 
String to be output.
msgtype 
Type of message. The following are system-defined:
Information message
Warning message
Error message

A negative value indicates that the Optimizer is about to finish and any buffers should be flushed at this time.

User-defined values are also possible for msgtype.

object 
Address of a user-defined object, which can be used for any purpose by the function. object is passed to callback as my_object.
Example
The following example creates a log file into which all messages are placed. System messages are also printed on standard output:
log = ''
p.setcbmessage(CBMessage, log)
A suitable callback function could resemble the following:
def CBMessage(Obj, msg, msgtype):
  if msgtype < 0:
    print(log)
    log = ''
    return
  if msgtype >= 1 and msgtype <= 4:
    print(msg)
  else:
    log += msg + ';'
Further information

If a user message callback is defined, screen output is automatically disabled.

Output can be directed into a log file by using problem.setlogfile.

Also, because of Python's garbage collection functions, it is advised to explicitly delete a problem at the end of its use (with the del command) if a message callback was set for that problem using setcbmessage.

def CBMessage(Obj, msg, msgtype): pass p = xp.problem() p.setcbmessage(CBMessage, None) [...] del p
Related topics