⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iof_svc_sub.h

📁 MPI stands for the Message Passing Interface. Written by the MPI Forum (a large committee comprising
💻 H
字号:
/* * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana *                         University Research and Technology *                         Corporation.  All rights reserved. * Copyright (c) 2004-2006 The University of Tennessee and The University *                         of Tennessee Research Foundation.  All rights *                         reserved. * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, *                         University of Stuttgart.  All rights reserved. * Copyright (c) 2004-2005 The Regents of the University of California. *                         All rights reserved. * $COPYRIGHT$ * * Additional copyrights may follow * * $HEADER$ */#ifndef MCA_IOF_SVC_SUBSCRIPT_H#define MCA_IOF_SVC_SUBSCRIPT_H/** * A subscription routes data from a specified set * of source endpoints to one or more destination * endpoints. */#include "opal/class/opal_hash_table.h"#if defined(c_plusplus) || defined(__cplusplus)extern "C" {#endifstruct orte_iof_svc_fwd_t {    opal_list_item_t super;    orte_iof_svc_pub_t* fwd_pub;    opal_hash_table_t fwd_seq_hash;};typedef struct orte_iof_svc_fwd_t orte_iof_svc_fwd_t;OBJ_CLASS_DECLARATION(orte_iof_svc_fwd_t);struct orte_iof_svc_sub_t {    opal_list_item_t super;    orte_process_name_t           origin_name;    orte_ns_cmp_bitmask_t         origin_mask;    orte_iof_base_tag_t           origin_tag;    orte_process_name_t           target_name;    orte_ns_cmp_bitmask_t         target_mask;    orte_iof_base_tag_t           target_tag;    orte_iof_base_endpoint_t*     sub_endpoint;    opal_list_t                   sub_forward;    bool                          has_been_acked;    uint32_t                      last_ack_forwarded;};typedef struct orte_iof_svc_sub_t orte_iof_svc_sub_t;OBJ_CLASS_DECLARATION(orte_iof_svc_sub_t);/** *  Lookup an existing subscription. */orte_iof_svc_sub_t* orte_iof_svc_sub_lookup(    const orte_process_name_t* origin);/** *  Create a subscription */int orte_iof_svc_sub_create(    const orte_process_name_t *origin_name,    orte_ns_cmp_bitmask_t origin_mask,    orte_iof_base_tag_t origin_tag,    const orte_process_name_t *target_name,    orte_ns_cmp_bitmask_t target_mask,    orte_iof_base_tag_t target_tag);/** * Receive an ACK from a single endpoint on a subscription */void orte_iof_svc_sub_ack(    const orte_process_name_t* peer,    orte_iof_base_msg_header_t* hdr,    bool do_close);/** * Cleanup/remove a subscription */int orte_iof_svc_sub_delete(    const orte_process_name_t *origin_name,    orte_ns_cmp_bitmask_t origin_mask,    orte_iof_base_tag_t origin_tag,    const orte_process_name_t *target_name,    orte_ns_cmp_bitmask_t target_mask,    orte_iof_base_tag_t target_tag);int orte_iof_svc_sub_delete_all(    const orte_process_name_t *target_name);/** * Forward message to any endpoints that * match the subscription. */int orte_iof_svc_sub_forward(    orte_iof_svc_sub_t* sub,    const orte_process_name_t* src,    orte_iof_base_msg_header_t* hdr,    const unsigned char* data,    bool *forward);/** * Check to see if the published endpoint matches * the subscription. */bool orte_iof_svc_fwd_match(    orte_iof_svc_sub_t* sub,    orte_iof_svc_pub_t* pub);/** * Create or remove a forwarding entry on the  * current subscription. */int orte_iof_svc_fwd_create(    orte_iof_svc_sub_t* sub,    orte_iof_svc_pub_t* pub);int orte_iof_svc_fwd_delete(    orte_iof_svc_sub_t* sub,    orte_iof_svc_pub_t* pub);#if defined(c_plusplus) || defined(__cplusplus)}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -