1 /*
2 * Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2006 The University of Tennessee and The University
6 * of Tennessee Research Foundation. All rights
7 * reserved.
8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9 * University of Stuttgart. All rights reserved.
10 * Copyright (c) 2004-2005 The Regents of the University of California.
11 * All rights reserved.
12 * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
13 * Copyright (c) 2012 Los Alamos National Security, LLC.
14 * All rights reserved.
15 * Copyright (c) 2014 Research Organization for Information Science
16 * and Technology (RIST). All rights reserved.
17 * Copyright (c) 2014-2019 Intel, Inc. All rights reserved.
18 * $COPYRIGHT$
19 *
20 * Additional copyrights may follow
21 *
22 * $HEADER$
23 */
24
25 #ifndef MCA_RML_OOB_RML_OOB_H
26 #define MCA_RML_OOB_RML_OOB_H
27
28 #include "orte_config.h"
29
30 #include "opal/dss/dss_types.h"
31 #include "opal/mca/event/event.h"
32
33 #include "orte/mca/oob/oob.h"
34
35 #include "orte/mca/rml/base/base.h"
36
37 BEGIN_C_DECLS
38
39 typedef struct {
40 orte_rml_base_module_t api;
41 opal_list_t queued_routing_messages;
42 opal_event_t *timer_event;
43 struct timeval timeout;
44 char *routed; // name of routed module to be used
45 } orte_rml_oob_module_t;
46
47 ORTE_MODULE_DECLSPEC extern orte_rml_component_t mca_rml_oob_component;
48
49 void orte_rml_oob_fini(struct orte_rml_base_module_t *mod);
50
51 int orte_rml_oob_send_nb(orte_process_name_t* peer,
52 struct iovec* msg,
53 int count,
54 orte_rml_tag_t tag,
55 orte_rml_callback_fn_t cbfunc,
56 void* cbdata);
57
58 int orte_rml_oob_send_buffer_nb(orte_process_name_t* peer,
59 opal_buffer_t* buffer,
60 orte_rml_tag_t tag,
61 orte_rml_buffer_callback_fn_t cbfunc,
62 void* cbdata);
63
64 END_C_DECLS
65
66 #endif