Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
FORMUS3IC_LAS3
/
embb
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
22ca84f2
authored
10 years ago
by
Marcus Winter
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mtapi_network_c: added doxygen documentation
parent
78f5b6c8
global_scheduling
…
development
embb-0.3
embb269-performance_test
embb327_llx_scx
embb334_lockfree_tree
embb375_dataflow_priorities_and_affinities
embb413_network_plugin_improvements
embb428_cuda_plugin
embb434_waitfree_queue
embb440-external_project_cmake
embb453_rwlock
embb454_document_install_config
embb456_zip_release_files
embb458_mtapi_initialization
embb499_blocking_data_structures
embb513-vmware_affinity
embb516_thread_sanitizer
embb516_threadsanitizer
embb517_mutex_based_atomics
embb530_linearizability_tester
embb533_worker_thread_os_priorities
embb546_low_performance_on_arm
embb555_blocking_queue
embb556_blocking_stack
embb561_solving_warnings
embb562_install_pdb_files
embb566_blocking_set
embb567_documentation_condition_variable
embb570_blocking_priority_queue
embb571_blocking_map
embb580_extend_changelog
embb581_mtapi_task_wait_timing_fix
embb582_contributing_readme_file
embb603_outdated_headers
embb607_error_with_include_file
embb609_doxygen_warnings
embb_520_prepare_valuepool_for_herlihy_object_pool
embb_525_fix_pool_init_bug
master
v0.4.0
v0.3.2
v0.3.1
v0.3.0
chromatic_tree_master_thesis
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
151 additions
and
9 deletions
+151
-9
mtapi_network_c/include/embb/mtapi/c/mtapi_network.h
+151
-9
No files found.
mtapi_network_c/include/embb/mtapi/c/mtapi_network.h
View file @
22ca84f2
...
...
@@ -36,25 +36,167 @@ extern "C" {
#endif
/**
* \defgroup C_MTAPI_NETWORK MTAPI Network Plugin
*
* \ingroup C_MTAPI_EXT
*
*
*/
/**
* Initializes the MTAPI network environment on a previously initialized MTAPI
* node.
*
* It must be called on all nodes using the MTAPI network plugin.
*
* Application software using MTAPI network must call
* mtapi_network_plugin_initialize() once per node. It is an error to call
* mtapi_network_plugin_initialize() multiple times
* from a given node, unless mtapi_network_plugin_finalize() is called in
* between.
*
* On success, \c *status is set to \c MTAPI_SUCCESS. On error, \c *status is
* set to the appropriate error defined below.
* Error code | Description
* --------------------------- | ----------------------------------------------
* \c MTAPI_ERR_UNKNOWN | MTAPI network couldn't be initialized.
*
* \see mtapi_network_plugin_finalize()
*
* \notthreadsafe
* \ingroup C_MTAPI_NETWORK
*/
void
mtapi_network_plugin_initialize
(
MTAPI_IN
char
*
host
,
MTAPI_IN
mtapi_uint16_t
port
,
MTAPI_IN
char
*
host
,
/**< [in] The interface to listen on, if
MTAPI_NULL is given the plugin will
listen on all available
interfaces. */
MTAPI_IN
mtapi_uint16_t
port
,
/**< [in] The port to listen on. */
MTAPI_IN
mtapi_uint16_t
max_connections
,
MTAPI_IN
mtapi_size_t
buffer_size
,
MTAPI_OUT
mtapi_status_t
*
status
/**< [in] Maximum concurrent connections
accepted by the plugin. */
MTAPI_IN
mtapi_size_t
buffer_size
,
/**< [in] Capacity of the transfer
buffers, this should be chosen big
enough to hold argument and result
buffers.*/
MTAPI_OUT
mtapi_status_t
*
status
/**< [out] Pointer to error code,
may be \c MTAPI_NULL */
);
/**
* Finalizes the MTAPI network environment on the local MTAPI node.
*
* It has to be called by each node using MTAPI network. It is an error to call
* mtapi_network_plugin_finalize() without first calling
* mtapi_network_plugin_initialize(). An MTAPI node can call
* mtapi_network_plugin_finalize() once for each call to
* mtapi_network_plugin_initialize(), but it is an error to call
* mtapi_network_plugin_finalize() multiple times from a given node
* unless mtapi_network_plugin_initialize() has been called prior to each
* mtapi_network_plugin_finalize() call.
*
* All network tasks that have not completed and that have been started on the
* node where mtapi_network_plugin_finalize() is called will be canceled
* (see mtapi_task_cancel()). mtapi_network_plugin_finalize() blocks until all
* tasks that have been started on the same node return. Tasks that execute
* actions on the node where mtapi_network_plugin_finalize() is called, also
* block finalization of the MTAPI network system on that node.
*
* On success, \c *status is set to \c MTAPI_SUCCESS. On error, \c *status is
* set to the appropriate error defined below.
* Error code | Description
* ----------------------------- | --------------------------------------------
* \c MTAPI_ERR_UNKNOWN | MTAPI network couldn't be finalized.
*
* \see mtapi_network_plugin_initialize(), mtapi_task_cancel()
*
* \notthreadsafe
* \ingroup C_MTAPI_NETWORK
*/
void
mtapi_network_plugin_finalize
(
MTAPI_OUT
mtapi_status_t
*
status
MTAPI_OUT
mtapi_status_t
*
status
/**< [out] Pointer to error code,
may be \c MTAPI_NULL */
);
/**
* This function creates a network action.
*
* It is called on the node where the user wants to execute an action on a
* remote node where the actual action is implemented. A network action
* contains a reference to a local job, a remote job and a remote domain as
* well as a host and port to connect to.
* After a network action is created, it is referenced by the application using
* a node-local handle of type \c mtapi_action_hndl_t, or indirectly through a
* node-local job handle of type \c mtapi_job_hndl_t. A network action's
* life-cycle begins with mtapi_network_action_create(), and ends when
* mtapi_action_delete() or mtapi_finalize() is called.
*
* To create an action, the application must supply the domain-wide job ID of
* the job associated with the action. Job IDs must be predefined in the
* application and runtime, of type \c mtapi_job_id_t, which is an
* implementation-defined type. The job ID is unique in the sense that it is
* unique for the job implemented by the action. However several actions may
* implement the same job for load balancing purposes.
*
* A network action defines no node local data, instead the node local data of
* the remote action is used. The user has to make sure that the remote node
* local data matches what he expects the remote action to use if invoked
* through the network.
*
* On success, an action handle is returned and \c *status is set to
* \c MTAPI_SUCCESS. On error, \c *status is set to the appropriate error
* defined below. In the case where the action already exists, \c status will
* be set to \c MTAPI_ERR_ACTION_EXISTS and the handle returned will not be a
* valid handle.
* <table>
* <tr>
* <th>Error code</th>
* <th>Description</th>
* </tr>
* <tr>
* <td>\c MTAPI_ERR_JOB_INVALID</td>
* <td>The \c job_id is not a valid job ID, i.e., no action was created for
* that ID or the action has been deleted.</td>
* </tr>
* <tr>
* <td>\c MTAPI_ERR_ACTION_EXISTS</td>
* <td>This action is already created.</td>
* </tr>
* <tr>
* <td>\c MTAPI_ERR_ACTION_LIMIT</td>
* <td>Exceeded maximum number of actions allowed.</td>
* </tr>
* <tr>
* <td>\c MTAPI_ERR_NODE_NOTINIT</td>
* <td>The calling node is not initialized.</td>
* </tr>
* <tr>
* <td>\c MTAPI_ERR_UNKNOWN</td>
* <td>The remote node could not be reached or there was no local
* interface available.</td>
* </tr>
* </table>
*
* \see mtapi_action_delete(), mtapi_finalize()
*
* \returns Handle to newly created network action, invalid handle on error
* \threadsafe
* \ingroup C_MTAPI_NETWORK
*/
mtapi_action_hndl_t
mtapi_network_action_create
(
MTAPI_IN
mtapi_domain_t
domain_id
,
MTAPI_IN
mtapi_domain_t
domain_id
,
/**< [in] The domain the action is
associated with */
MTAPI_IN
mtapi_job_id_t
local_job_id
,
/**< [in] The ID of the local job */
MTAPI_IN
mtapi_job_id_t
remote_job_id
,
MTAPI_IN
char
*
host
,
MTAPI_IN
mtapi_uint16_t
port
,
MTAPI_OUT
mtapi_status_t
*
status
/**< [in] The ID of the remote job */
MTAPI_IN
char
*
host
,
/**< [in] The host to connect to */
MTAPI_IN
mtapi_uint16_t
port
,
/**< [in] The port the host is listening
on */
MTAPI_OUT
mtapi_status_t
*
status
/**< [out] Pointer to error code,
may be \c MTAPI_NULL */
);
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment