OpenMPI  0.1.1
rml_ftrm.h
Go to the documentation of this file.
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$
13  *
14  * Additional copyrights may follow
15  *
16  * $HEADER$
17  */
18 /**
19  * ORTE RML Fault Tolerance Wrapper - Ready Message Protocol (FTRM)
20  *
21  * @file
22  */
23 #ifndef MCA_RML_FTRM_H
24 #define MCA_RML_FTRM_H
25 
26 #include "orte_config.h"
27 #include "orte/mca/rml/rml.h"
28 #include "orte/mca/rml/rml_types.h"
29 
30 BEGIN_C_DECLS
31 
32  extern int rml_ftrm_output_handle;
33 
34  /*
35  * Component Information
36  */
37  ORTE_MODULE_DECLSPEC extern orte_rml_component_t mca_rml_ftrm_component;
38  ORTE_MODULE_DECLSPEC extern orte_rml_module_t orte_rml_ftrm_module;
39 
40  ORTE_MODULE_DECLSPEC extern orte_rml_component_t mca_rml_ftrm_wrapped_component;
41  ORTE_MODULE_DECLSPEC extern orte_rml_module_t orte_rml_ftrm_wrapped_module;
42 
43  /*
44  * Init (Component)
45  */
46  orte_rml_module_t* orte_rml_ftrm_component_init(int *priority);
47 
48  /*
49  * Init (Module)
50  */
51  int orte_rml_ftrm_module_enable_comm(void);
52 
53  /*
54  * Finalize (Module)
55  */
56  int orte_rml_ftrm_module_finalize(void);
57 
58  /*
59  * Get URI
60  */
61  char * orte_rml_ftrm_get_contact_info(void);
62 
63  /*
64  * Set URI
65  */
66  int orte_rml_ftrm_set_contact_info(const char* uri);
67 
68  /*
69  * Ping
70  */
71  int orte_rml_ftrm_ping(const char* uri, const struct timeval* tv);
72 
73  /*
74  * Send
75  */
76  int orte_rml_ftrm_send(orte_process_name_t* peer,
77  struct iovec *msg,
78  int count,
79  int tag,
80  int flags);
81 
82  /*
83  * Send Non-blocking
84  */
85  int orte_rml_ftrm_send_nb(orte_process_name_t* peer,
86  struct iovec* msg,
87  int count,
88  orte_rml_tag_t tag,
89  int flags,
91  void* cbdata);
92 
93  /*
94  * Send Buffer
95  */
96  int orte_rml_ftrm_send_buffer(orte_process_name_t* peer,
97  opal_buffer_t* buffer,
98  orte_rml_tag_t tag,
99  int flags);
100 
101  /*
102  * Send Buffer Non-blocking
103  */
104  int orte_rml_ftrm_send_buffer_nb(orte_process_name_t* peer,
105  opal_buffer_t* buffer,
106  orte_rml_tag_t tag,
107  int flags,
109  void* cbdata);
110 
111  /*
112  * Recv
113  */
114  int orte_rml_ftrm_recv(orte_process_name_t* peer,
115  struct iovec *msg,
116  int count,
117  orte_rml_tag_t tag,
118  int flags);
119 
120  /*
121  * Recv Non-blocking
122  */
123  int orte_rml_ftrm_recv_nb(orte_process_name_t* peer,
124  struct iovec* msg,
125  int count,
126  orte_rml_tag_t tag,
127  int flags,
128  orte_rml_callback_fn_t cbfunc,
129  void* cbdata);
130 
131  /*
132  * Recv Buffer
133  */
134  int orte_rml_ftrm_recv_buffer(orte_process_name_t* peer,
135  opal_buffer_t *buf,
136  orte_rml_tag_t tag,
137  int flags);
138 
139  /*
140  * Recv Buffer Non-blocking
141  */
142  int orte_rml_ftrm_recv_buffer_nb(orte_process_name_t* peer,
143  orte_rml_tag_t tag,
144  int flags,
146  void* cbdata);
147 
148  /*
149  * Recv Cancel
150  */
151  int orte_rml_ftrm_recv_cancel(orte_process_name_t* peer, orte_rml_tag_t tag);
152 
153  /*
154  * Register a callback on loss of connection
155  */
156  int orte_rml_ftrm_add_exception_handler(orte_rml_exception_callback_t cbfunc);
157  int orte_rml_ftrm_del_exception_handler(orte_rml_exception_callback_t cbfunc);
158 
159  /*
160  * FT Event
161  */
162  int orte_rml_ftrm_ft_event(int state);
163 
164  int orte_rml_ftrm_purge(orte_process_name_t *peer);
165 
166 END_C_DECLS
167 
168 #endif
RML module interface.
Definition: rml.h:577
RML component interface.
Definition: rml.h:89
Definition: types.h:146
void(* orte_rml_callback_fn_t)(int status, struct orte_process_name_t *peer, struct iovec *msg, int count, orte_rml_tag_t tag, void *cbdata)
Funtion prototype for callback from non-blocking iovec send and receive.
Definition: rml.h:123
Runtime Messaging Layer (RML) Communication Interface.
Definition: ompi_uio.h:29
ORTE_MODULE_DECLSPEC orte_rml_component_t mca_rml_ftrm_component
Component definition.
Definition: rml_ftrm_component.c:38
uint32_t orte_rml_tag_t
Message matching tag.
Definition: rml_types.h:220
void(* orte_rml_buffer_callback_fn_t)(int status, struct orte_process_name_t *peer, struct opal_buffer_t *buffer, orte_rml_tag_t tag, void *cbdata)
Funtion prototype for callback from non-blocking buffer send and receive.
Definition: rml.h:149
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159
void(* orte_rml_exception_callback_t)(const orte_process_name_t *peer, orte_rml_exception_t exception)
Function prototype for exception callback.
Definition: rml.h:167
Contains the typedefs for the use of the rml.