Close OCB I/O function handler

Updated: April 19, 2023

Prototype:

int (*close_ocb) ( resmgr_context_t *ctp,
                  void *reserved,
                  RESMGR_OCB_T *ocb ) 

Classification:

I/O function (synthesized by library)

Default handler:

iofunc_close_ocb_default()

Helper functions:

none

Client function:

none—synthesized by library

Messages:

none—synthesized by library

Data structure:

// synthesized by library
struct _io_close {
  uint16_t type;
  uint16_t combine_len;
};

typedef union {
  struct _io_close i;
} io_close_t;

Description:

This is the function that gets synthesized by the base-layer library when the last close() has been received for a particular OCB. This is where you'd perform any final cleanup you needed to do before the OCB is destroyed. Note that the receive ID present in ctp->rcvid is zero, because this function is synthesized by the library and doesn't necessarily correspond to any particular message.

Returns:

The status via the helper macro _RESMGR_STATUS().

Referenced by:

resmgr_io_funcs_t I/O table

Permission checking:

The default implementation iofunc_close_ocb_default() and helper function iofunc_close_ocb() do not do permission checking. No permission checking is required. You should only need to implement this function if you created your own OCB (see also iofunc_close_ocb_calloc and iofunc_close_ocb_free).