ham_connect(), ham_connect_nd(), ham_connect_node()
Connect to the HAM
Synopsis:
#include <ha/ham.h> int ham_connect( unsigned flags); int ham_connect_nd( int nd, unsigned flags); int ham_connect_node( const char *nodename, unsigned flags);
Arguments:
- flags
- Currently not used.
- nd
- (ham_connect_nd() only) The node identifier of the targeted remote node.
- nodename
- (ham_connect_node() only) The targeted remote HAM.
Library:
libham
Description:
The ham_connect() function initializes a connection to a HAM. The ham_connect_nd() and ham_connect_node() functions initialize connections to remote HAMs.
The nd specified to ham_connect_nd is the node identifier of the remote node at the time the ham_connect_nd() call is made.
The ham_connect_node() function takes as a parameter a fully qualified node name (FQNN).
You can call these functions any number of times, but because the library maintains a reference count, you need to call ham_disconnect() the same number of times to release the connection.
Connections are associated with a specific process ID (pid). If a process performs ham_connect() and then calls fork(), the child process needs to reconnect to the HAM by calling ham_connect() again.
But if a process only calls any of the following:
- ham_attach_self()
- ham_attach()
- ham_attach_node()
- ham_detach()
- ham_detach_self()
- ham_detach_name()
- ham_detach_name_node()
- ham_stop()
- ham_stop_nd()
- ham_stop_node()
- ham_entity()
- ham_entity_node()
- ham_verbose()
it doesn't need to call ham_connect*(), since those functions create their own temporary connection.
There are no flags defined at this time.
Returns:
- 0
- Success.
- -1
- An error occurred (errno is set).
Errors:
Upon failure, the ham_connect*() functions return the error as set by the underlying open() library call that failed.
Classification:
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | No |
| Thread | Yes |
