blob: 5a958e3bd9cba153223fc73b6ac977f63f54f67b [file] [log] [blame]
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
.. CAUTION: this document is generated from source in doc/src/rtd.
.. To make changes edit the source and recompile the document.
.. Do NOT make changes directly to .rst or .md files.
============================================================================================
Man Page: rmr_wh_open
============================================================================================
RMR Library Functions
============================================================================================
NAME
--------------------------------------------------------------------------------------------
rmr_wh_open
SYNOPSIS
--------------------------------------------------------------------------------------------
::
#include <rmr/rmr.h>
void* rmr_wh_open( void* vctx, char* target )
DESCRIPTION
--------------------------------------------------------------------------------------------
The rmr_wh_open function creates a direct link for sending, a
wormhole, to another RMr based process. Sending messages
through a wormhole requires that the connection be
established overtly by the user application (via this
function), and that the ID returned by rmr_wh_open be passed
to the rmr_wh_send_msg function.
*Target* is the *name* or *IP-address* combination of the
processess that the wormhole should be connected to. *Vctx*
is the RMr void context pointer that was returned by the
rmr_init function.
When invoked, this function immediatly attempts to connect to
the target process. If the connection cannot be established,
an error is returned to the caller, and no direct messages
can be sent to the target. Once a wormhole is connected, the
underlying transport mechanism (e.g. NNG) will provide
reconnects should the connection be lost, however the
handling of messages sent when a connection is broken is
undetermined as each underlying transport mechanism may
handle buffering and retries differently.
RETURN VALUE
--------------------------------------------------------------------------------------------
The rmr_wh_open function returns a type rmr_whid_t which must
be passed to the rmr_wh_send_msg function when sending a
message. The id may also be tested to determine success or
failure of the connection by using the RMR_WH_CONNECTED macro
and passing the ID as the parameter; a result of 1 indicates
that the connection was esablished and that the ID is valid.
ERRORS
--------------------------------------------------------------------------------------------
The following error values are specifically set by this RMR
function. In some cases the error message of a system call is
propagated up, and thus this list might be incomplete.
EINVAL
A parameter passed was not valid.
EACCESS
The user application does not have the ability to
establish a wormhole to the indicated target (or maybe any
target).
ECONNREFUSED
The connection was refused.
EXAMPLE
--------------------------------------------------------------------------------------------
::
void* rmc;
rmr_whid_t wh;
rmc = rmr_init( "43086", 4096, 0 ); // init context
wh = rmr_wh_open( rmc, "localhost:6123" );
if( !RMR_WH_CONNECTED( wh ) ) {
fprintf( stderr, "unable to connect wormhole: %s\\n",
strerror( errno ) );
}
SEE ALSO
--------------------------------------------------------------------------------------------
rmr_alloc_msg(3), rmr_call(3), rmr_free_msg(3),
rmr_get_rcvfd(3), rmr_payload_size(3), rmr_send_msg(3),
rmr_rcv_msg(3), rmr_rcv_specific(3), rmr_rts_msg(3),
rmr_ready(3), rmr_fib(3), rmr_has_str(3), rmr_tokenise(3),
rmr_mk_ring(3), rmr_ring_free(3), rmr_wh_close(3),
rmr_wh_send_msg(3), rmr_wh_state(3)