📄 base.h
字号:
*** This version of oob_recv is as above except it does NOT take a iovec list* but instead hands back a orte_buffer_t* buffer with the message in it.* The user is responsible for releasing the buffer when finished w/ it.**/ORTE_DECLSPEC int mca_oob_recv_packed ( orte_process_name_t* peer, orte_buffer_t *buf, int tag);/* * Non-blocking versions of send/recv.*//*** Callback function on send/recv completion.** @param status (IN) Completion status - equivalent to the return value from blocking send/recv.* @param peer (IN) Opaque name of peer process.* @param msg (IN) Array of iovecs describing user buffers and lengths.* @param count (IN) Number of elements in iovec array.* @param tag (IN) User defined tag for matching send/recv.* @param cbdata (IN) User data.*/typedef void (*mca_oob_callback_fn_t)( int status, orte_process_name_t* peer, struct iovec* msg, int count, int tag, void* cbdata);/*** Callback function on send/recv completion for buffer PACKED message only.* i.e. only mca_oob_send_packed_nb and mca_oob_recv_packed_nb USE this.** @param status (IN) Completion status - equivalent to the return value from blocking send/recv.* @param peer (IN) Opaque name of peer process.* @param buffer (IN) For sends, this is a pointer to a prepacked buffer For recvs, OOB creates and returns a buffer* @param tag (IN) User defined tag for matching send/recv.* @param cbdata (IN) User data.*/typedef void (*mca_oob_callback_packed_fn_t)( int status, orte_process_name_t* peer, orte_buffer_t* buffer, int tag, void* cbdata);/*** Non-blocking version of mca_oob_send().** @param peer (IN) Opaque name of peer process.* @param msg (IN) Array of iovecs describing user buffers and lengths.* @param count (IN) Number of elements in iovec array.* @param tag (IN) User defined tag for matching send/recv.* @param flags (IN) Currently unused.* @param cbfunc (IN) Callback function on send completion.* @param cbdata (IN) User data that is passed to callback function.* @return OMPI error code (<0) on error number of bytes actually sent.** The user supplied callback function is called when the send completes. Note that* the callback may occur before the call to mca_oob_send returns to the caller,* if the send completes during the call.**/ORTE_DECLSPEC int mca_oob_send_nb( orte_process_name_t* peer, struct iovec* msg, int count, int tag, int flags, mca_oob_callback_fn_t cbfunc, void* cbdata);/*** Non-blocking version of mca_oob_send_packed().** @param peer (IN) Opaque name of peer process.* @param buffer (IN) Opaque buffer handle.* @param tag (IN) User defined tag for matching send/recv.* @param flags (IN) Currently unused.* @param cbfunc (IN) Callback function on send completion.* @param cbdata (IN) User data that is passed to callback function.* @return OMPI error code (<0) on error number of bytes actually sent.** The user supplied callback function is called when the send completes. Note that* the callback may occur before the call to mca_oob_send returns to the caller,* if the send completes during the call.**/ORTE_DECLSPEC int mca_oob_send_packed_nb( orte_process_name_t* peer, orte_buffer_t* buffer, int tag, int flags, mca_oob_callback_packed_fn_t cbfunc, void* cbdata);/*** Non-blocking version of mca_oob_recv().** @param peer (IN) Opaque name of peer process or ORTE_NAME_WILDCARD for wildcard receive.* @param msg (IN) Array of iovecs describing user buffers and lengths.* @param count (IN) Number of elements in iovec array.* @param tag (IN) User defined tag for matching send/recv.* @param flags (IN) May be MCA_OOB_PEEK to return up to size bytes of msg w/out removing it from the queue,* @param cbfunc (IN) Callback function on recv completion.* @param cbdata (IN) User data that is passed to callback function.* @return OMPI error code (<0) on error or number of bytes actually received.** The user supplied callback function is called asynchronously when a message is received* that matches the call parameters.*/ORTE_DECLSPEC int mca_oob_recv_nb( orte_process_name_t* peer, struct iovec* msg, int count, int tag, int flags, mca_oob_callback_fn_t cbfunc, void* cbdata);/*** Routine to cancel pending non-blocking recvs.** @param peer (IN) Opaque name of peer process or ORTE_NAME_WILDCARD for wildcard receive.* @param tag (IN) User defined tag for matching send/recv.* @return OMPI error code (<0) on error or number of bytes actually received.*/ORTE_DECLSPEC int mca_oob_recv_cancel( orte_process_name_t* peer, int tag);/*** Non-blocking version of mca_oob_recv_packed().** @param peer (IN) Opaque name of peer process or ORTE_NAME_WILDCARD for wildcard receive.* @param buffer (IN) Array of iovecs describing user buffers and lengths.* @param count (IN) Number of elements in iovec array.* @param tag (IN) User defined tag for matching send/recv.* @param flags (IN) May be MCA_OOB_PEEK to return up to size bytes of msg w/out removing it from the queue,* @param cbfunc (IN) Callback function on recv completion.* @param cbdata (IN) User data that is passed to callback function.* @return OMPI error code (<0) on error or number of bytes actually received.** The user supplied callback function is called asynchronously when a message is received* that matches the call parameters.*/ORTE_DECLSPEC int mca_oob_recv_packed_nb( orte_process_name_t* peer, int tag, int flags, mca_oob_callback_packed_fn_t cbfunc, void* cbdata);/** * A "broadcast-like" function over the specified set of peers. * @param root The process acting as the root of the broadcast. * @param peers The list of processes receiving the broadcast (excluding root). * @param buffer The data to broadcast - only significant at root. * @param cbfunc Callback function on receipt of data - not significant at root. * * Note that the callback function is provided so that the data can be * received and interpreted by the application prior to the broadcast * continuing to forward data along the distribution tree. */ORTE_DECLSPEC int mca_oob_xcast(orte_jobid_t job, bool process_first, orte_buffer_t* buffer, orte_gpr_trigger_cb_fn_t cbfunc);/* * Callback on exception condition. */typedef enum { MCA_OOB_PEER_UNREACH, MCA_OOB_PEER_DISCONNECTED} mca_oob_base_exception_t;typedef int (*mca_oob_base_exception_fn_t)(const orte_process_name_t* peer, int exception);/** * Register a callback function on loss of a connection. */ORTE_DECLSPEC int mca_oob_add_exception_handler( mca_oob_base_exception_fn_t cbfunc);/** * Remove a callback */ORTE_DECLSPEC int mca_oob_del_exception_handler( mca_oob_base_exception_fn_t cbfunc);/** * Invoke exception handlers */ORTE_DECLSPEC void mca_oob_call_exception_handlers( orte_process_name_t* peer, int exception);#if defined(c_plusplus) || defined(__cplusplus)}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -