Previous Topic Next topic Print topic


Start of Response Processing (Exit Point 5)

Syntax:

typedef cblt_rtncode (*PFI_IDP_EXIT)(mf_uns32      exit_point,
                                     IDP_EXIT_INFO *exit_info);

On Entry:

exit point
5 = Start of response processing
exit_info
version
Version of structure format
flags
0
funcs
User exit support functions
request_cxt
version Version of structure format
argc Parameter count of loaded service
return_code Service's return code, or run-time error generated by service
service_type Type of client request
display_buf_len Length of data in display_buf
flags Request context control flags
protocol_attrs An array of pointers to protocol-specifc attributes
argv Parameter list of loaded service
service_name Name of loaded service
pgm_name Name of the main program associated with the service
display_buf Concatenation of strings output by ANSI DISPLAY statements
response
flagss Control flags
response_type Server's response type
exit_data
User exit-specific data

On Exit:

exit_info
flags
0
response
response_len Length of response_buf
flags Control flags
response_buf Server's response buffer
content_type NULL-terminated content type string (HTTP) only
exit_data
User exit-specific data

Return codes:

IDP_EXIT_CONTINUE
0 = Continue with default response processing
IDP_EXIT_STOP
1 = Terminate mapping processing. An error response will be required
IDP_EXIT_HANDLED
2 = The entire response has been built by the exit. No further processing is required. The response is ready to be sent back to the client.

Comments:

This exit gives you the opportunity to bypass completely the default response processing. If the exit wants the default response processing to be bypassed, it must set up the response fields indicated above as being returned fields, using the fn_alloc_mem support function of the exit_info funcs structure to allocate the memory for the response buffer, and return IDP_EXIT_HANDLED.

The user exit program owns the exit_data field of the IDP_EXIT_INFO structure. You would typically use it to preserve context information between exit point invocations. You can use it when returning any of the IDP_EXIT_ return values.

Previous Topic Next topic Print topic