OpenMPI  0.1.1
rml_contact.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2007 Los Alamos National Security, LLC. All rights
3  * reserved.
4  * $COPYRIGHT$
5  *
6  * Additional copyrights may follow
7  *
8  * $HEADER$
9  */
10 
11 /**
12  * @file
13  *
14  * Interface for manipulating how the RML receives contact information
15  *
16  * Interface for manipulating how the RML receives contact
17  * information. These functions are generally used during orte_init
18  * and orte_finalize.
19  */
20 
21 
22 #include "orte_config.h"
23 #include "orte/types.h"
24 
25 #include "opal/dss/dss_types.h"
26 
27 BEGIN_C_DECLS
28 
29 /**
30  * Create packed RML contact information for the given process names
31  *
32  * Create packed RML contact information for a given job.
33  * The information is provided packed in an opal_buffer_t
34  * structure.
35  *
36  * @param[in] jobid Job whose contact information is needed
37  * @param[out] data Contact information packed in buffer for
38  * \c name.
39  *
40  * @retval ORTE_SUCCESS Successfully found contact information
41  * @retval ORTE_ERROR Contact information could not be found or shared
42  */
43 ORTE_DECLSPEC int orte_rml_base_get_contact_info(orte_jobid_t job,
44  opal_buffer_t *data);
45 
46 
47 /**
48  * Update the RML with contact information
49  *
50  * Update the RML with contact information provided from a call to
51  * orte_rml_base_get_contact_info(), likely on another host.
52  *
53  * @param[in] data Contact information in a packed buffer,
54  * obtained by call to orte_rml_base_get_contact_info()
55  *
56  * @retval ORTE_SUCCESS Successfully updated contact information
57  */
58 ORTE_DECLSPEC int orte_rml_base_update_contact_info(opal_buffer_t* data);
59 
60 /**
61  * Parse a contact information string
62  *
63  * Parse a contact infromation string, such as that returned by
64  * orte_rml.get_contact_info(). Generally used to extract the peer
65  * name from a contact information string. It can also be used to
66  * extract the contact URI strings, although this is slightly less
67  * useful as the URIs may be RML componenent specific and not have
68  * general meaning.
69  *
70  * @param[in] contact_info Contact information string for peer
71  * @param[out] peer Peer name in contact_info
72  * @param[out] uris URI strings for peer. May be NULL if
73  * information is not needed
74  *
75  * @retval ORTE_SUCCESS Information successfully extraced
76  * @retval ORTE_ERR_BAD_PARAM The contact_info was not a valid string
77  * @retval ORTE_ERROR An unspecified error occurred
78  */
79 ORTE_DECLSPEC int orte_rml_base_parse_uris(const char* contact_inf,
80  orte_process_name_t* peer,
81  char*** uris);
82 
83 END_C_DECLS
BEGIN_C_DECLS ORTE_DECLSPEC int orte_rml_base_get_contact_info(orte_jobid_t job, opal_buffer_t *data)
Create packed RML contact information for the given process names.
Definition: rml_base_contact.c:39
uint32_t orte_jobid_t
Set the allowed range for ids in each space.
Definition: types.h:76
Definition: types.h:146
ORTE_DECLSPEC int orte_rml_base_update_contact_info(opal_buffer_t *data)
Update the RML with contact information.
Definition: rml_base_contact.c:71
ORTE_DECLSPEC int orte_rml_base_parse_uris(const char *contact_inf, orte_process_name_t *peer, char ***uris)
Parse a contact information string.
Definition: rml_base_contact.c:157
Buffer management types.
Structure for holding a buffer to be used with the RML or OOB subsystems.
Definition: dss_types.h:159