This is the session interface, the nmad interface used to build sessions. More...
Typedefs | |
typedef struct nm_session_s * | nm_session_t |
typedef nm_drv_vect_t(* | nm_session_selector_t) (const char *url, void *_arg) |
Type for 'selector'. More... | |
Functions | |
int | nm_session_create (nm_session_t *pp_session, const char *label) |
Create an empty session object. More... | |
struct nm_core * | nm_session_get_core (nm_session_t p_session) |
int | nm_session_open (nm_session_t *pp_session, const char *label) |
Open a new session, assuming processes are already connected. More... | |
nm_drv_t | nm_session_add_driver (puk_component_t component, nm_trk_kind_t kind) |
Add a driver to the session. More... | |
void | nm_session_set_selector (nm_session_selector_t selector, void *_arg) |
Declare the selector to use to establish connections. More... | |
void | nm_session_set_launcher_info (int size, int rank, int wide_url_support) |
Declare the rank & size of session as a hint. More... | |
int | nm_session_init (nm_session_t p_session, const char **p_local_url) |
Initializes a session object. More... | |
int | nm_session_connect (nm_session_t p_session, nm_gate_t *pp_gate, const char *remote_url) |
Connect the given gate. More... | |
int | nm_session_connect_async (nm_session_t p_session, nm_gate_t *pp_gate, const char *remote_url) |
Asynchronously start connection establishment. More... | |
int | nm_session_connect_wait (nm_session_t p_session, nm_gate_t p_gate) |
Wait for a given async connection to get ready. More... | |
int | nm_session_destroy (nm_session_t p_session) |
Disconnect and destroy a session. More... | |
nm_session_t | nm_session_lookup (nm_session_hash_t hashcode) |
Lookup a session by hashcode. More... | |
const char * | nm_session_get_name (nm_session_t p_session) |
Get the name of the given session. More... | |
int | nm_session_homogeneous_network (void) |
Checks whether the networks are homogeneous across all nodes. More... | |
This is the session interface, the nmad interface used to build sessions.
It loads drivers and established connections. It expects an external entity to exchange urls. End-users are supposed to use the 'launcher' interface, a higher level interface that manages url exchange for them.
typedef nm_drv_vect_t(* nm_session_selector_t) (const char *url, void *_arg) |
Type for 'selector'.
Returns drivers to connect to given gate.
Definition at line 52 of file nm_session_interface.h.
typedef struct nm_session_s* nm_session_t |
Definition at line 32 of file nm_session_interface.h.
nm_drv_t nm_session_add_driver | ( | puk_component_t | component, |
nm_trk_kind_t | kind | ||
) |
Add a driver to the session.
Referenced by nm_launcher_gates_populate_ns().
int nm_session_connect | ( | nm_session_t | p_session, |
nm_gate_t * | pp_gate, | ||
const char * | remote_url | ||
) |
Connect the given gate.
'remote_url' is the url returned by the nm_session_init on the given peer.
int nm_session_connect_async | ( | nm_session_t | p_session, |
nm_gate_t * | pp_gate, | ||
const char * | remote_url | ||
) |
Asynchronously start connection establishment.
int nm_session_connect_wait | ( | nm_session_t | p_session, |
nm_gate_t | p_gate | ||
) |
Wait for a given async connection to get ready.
int nm_session_create | ( | nm_session_t * | pp_session, |
const char * | label | ||
) |
Create an empty session object.
int nm_session_destroy | ( | nm_session_t | p_session | ) |
Disconnect and destroy a session.
struct nm_core * nm_session_get_core | ( | nm_session_t | p_session | ) |
Referenced by nm_sr_recv_data_size_wait(), nm_sr_recv_data_wait(), nm_sr_recv_init(), nm_sr_recv_iprobe(), nm_sr_recv_match(), nm_sr_recv_match_event(), nm_sr_recv_offset(), nm_sr_recv_peek(), nm_sr_recv_peek_offset(), nm_sr_recv_post(), nm_sr_recv_unpack_data(), nm_sr_request_wait_all(), nm_sr_rwait_data(), nm_sr_send_dest(), nm_sr_send_header(), nm_sr_send_init(), nm_sr_send_issend(), nm_sr_send_pack_data(), nm_sr_send_rsend(), nm_sr_send_set_priority(), nm_sr_send_submit(), and nm_sr_send_submit_chunks().
const char * nm_session_get_name | ( | nm_session_t | p_session | ) |
Get the name of the given session.
int nm_session_homogeneous_network | ( | void | ) |
Checks whether the networks are homogeneous across all nodes.
int nm_session_init | ( | nm_session_t | p_session, |
const char ** | p_local_url | ||
) |
Initializes a session object.
'p_local_url' is a return parameter, pointing to an object allocated in the session- do not free nor modify!
nm_session_t nm_session_lookup | ( | nm_session_hash_t | hashcode | ) |
Lookup a session by hashcode.
int nm_session_open | ( | nm_session_t * | pp_session, |
const char * | label | ||
) |
Open a new session, assuming processes are already connected.
void nm_session_set_launcher_info | ( | int | size, |
int | rank, | ||
int | wide_url_support | ||
) |
Declare the rank & size of session as a hint.
void nm_session_set_selector | ( | nm_session_selector_t | selector, |
void * | _arg | ||
) |
Declare the selector to use to establish connections.
Referenced by nm_launcher_gates_populate_ns().