Most of the USERD
routines operate passively. They wait
for the server to call them and then hand up data. However, there are five USERD
routines that call upwards into the server to pass information messages designed for feedback
to you from the reader. These routines are active and can be called at any location in any
portion of a user-defined reader.
At this point, these routines will print their output to the EnSight console. The names of the routines and when to call them are as follows.
USERD_info(const char format, ....)
Normal informational output typically to the console. It is a good idea to have a reader Format Option pulldown that is None, Normal, Verbose and Debug to control the amount of informational output that the user experiences.
USERD_warn(const char format, ....)
Encountered a problem but still proceeding with the read. This is either console or message window.
USERD_error(const char format, ....)
Encountered a problem in which an error will be returned up to the
server. This should be in a message window in the future. This calls a sample routine named
cvf_stop_here
that you can use as a break
location.
USERD_fatal(const char format, ....)
A message indicating a fatal error which should not be called unless
a crash is imminent as it may result in the future in with a message window and a graceful
shutdown of EnSight. This calls a sample routine named cvf_stop_here
that you can use as a break location.
USERD_log(const char format, ....)
All the output that you wish to go to a log, which should be the standard log file.
Example 4.1: Usage
USERD_info("Reading file number
%d\n",fnum);
USERD_warn("Warning: missing element
%d\n",elem_num);
USERD_error("Error, var value %12.5g
exceeded %12.5g. Aborting\n",var_val,max_val);
Implementation
In your reader, after your include of
global_extern.h
, you must include
global_extern_functions.h
(in one C/C++ source file and one file
only) in order to use these functions.
#include
global_extern.h
#include
global_extern_functions.h