Skip to content

Latest commit

 

History

History
932 lines (678 loc) · 24.3 KB

public_api.rst

File metadata and controls

932 lines (678 loc) · 24.3 KB

Public API

All names below are also available in the top-level hpx namespace unless otherwise noted. The names in hpx should be preferred. The names in sub-namespaces will eventually be removed.

Header hpx/algorithm.hpp

This header includes :ref:`public_api_header_hpx_local_algorithm` and contains overloads of the algorithms for segmented iterators.

Header hpx/local/algorithm.hpp

Corresponds to the C++ standard library header :cppreference-header:`algorithm`. See :ref:`parallel_algorithms` for more information about the parallel algorithms.

Classes

Functions

Header hpx/any.hpp

This header includes :ref:`public_api_header_hpx_local_any`.

Header hpx/local/any.hpp

Corresponds to the C++ standard library header :cppreference-header:`any`. :cpp:type:`hpx::any` is compatible with std::any.

Classes

Functions

Header hpx/assert.hpp

Corresponds to the C++ standard library header :cppreference-header:`cassert`. :c:macro:`HPX_ASSERT` is the |hpx| equivalent to assert in cassert. :c:macro:`HPX_ASSERT` can also be used in CUDA device code.

Macros

Header hpx/barrier.hpp

This header includes :ref:`public_api_header_hpx_local_barrier` and contains a distributed barrier implementation. This functionality is also exposed through the hpx::distributed namespace. The name in hpx::distributed should be preferred.

Classes

Header hpx/local/barrier.hpp

Corresponds to the C++ standard library header :cppreference-header:`barrier`.

Classes

Header hpx/channel.hpp

This header includes :ref:`public_api_header_hpx_local_channel` and contains a distributed channel implementation. This functionality is also exposed through the hpx::distributed namespace. The name in hpx::distributed should be preferred.

Classes

Header hpx/local/channel.hpp

Contains a local channel implementation.

Classes

Header hpx/chrono.hpp

This header includes :ref:`public_api_header_hpx_local_chrono`.

Header hpx/local/chrono.hpp

Corresponds to the C++ standard library header :cppreference-header:`chrono`. The following replacements and extensions are provided compared to :cppreference-header:`chrono`. The classes below are also available in the hpx::chrono namespace, not in the top-level hpx namespace.

Classes

Header hpx/condition_variable.hpp

This header includes :ref:`public_api_header_hpx_local_condition_variable`.

Header hpx/local/condition_variable.hpp

Corresponds to the C++ standard library header :cppreference-header:`condition_variable`.

Classes

Header hpx/exception.hpp

This header includes :ref:`public_api_header_hpx_local_exception`.

Header hpx/local/exception.hpp

Corresponds to the C++ standard library header :cppreference-header:`exception`. :cpp:class:`hpx::exception` extends std::exception and is the base class for all exceptions thrown in |hpx|. :c:macro:`HPX_THROW_EXCEPTION` can be used to throw |hpx| exceptions with file and line information attached to the exception.

Macros

Classes

Header hpx/execution.hpp

This header includes :ref:`public_api_header_hpx_local_execution`.

Header hpx/local/execution.hpp

Corresponds to the C++ standard library header :cppreference-header:`execution`. See :ref:`parallel`, :ref:`parallel_algorithms` and :ref:`executor_parameters` for more information about execution policies and executor parameters.

Note

These names are only available in the hpx::execution namespace, not in the top-level hpx namespace.

Constants

Classes

Header hpx/functional.hpp

This header includes :ref:`public_api_header_hpx_local_functional`.

Header hpx/local/functional.hpp

Corresponds to the C++ standard library header :cppreference-header:`functional`. :cpp:class:`hpx::util::function` is a more efficient and serializable replacement for std::function.

Constants

The following constants are also available in hpx::placeholders, not the top-level hpx namespace.

Classes

Functions

Header hpx/future.hpp

This header includes :ref:`public_api_header_hpx_local_future` and contains overloads of :cpp:func:`hpx::async`, :cpp:func:`hpx::apply`, :cpp:func:`hpx::sync`, and :cpp:func:`hpx::dataflow` that can be used with actions. See :ref:`action_invocation` for more information about invoking actions.

Note

The alias from hpx::promise to :cpp:class:`hpx::lcos::promise` is deprecated and will be removed in a future release. The alias hpx::distributed::promise should be used in new applications.

Classes

Functions

Header hpx/local/future.hpp

Corresponds to the C++ standard library header :cppreference-header:`future`. See :ref:`extend_futures` for more information about extensions to futures compared to the C++ standard library.

Note

All names except :cpp:class:`hpx::lcos::local::promise` are also available in the top-level hpx namespace. hpx::promise refers to :cpp:class:`hpx::lcos::promise`, a distributed variant of :cpp:class:`hpx::lcos::local::promise`, but will eventually refer to :cpp:class:`hpx::lcos::local::promise` after a deprecation period.

Classes

Functions

Examples

.. literalinclude:: ../../libs/full/include/tests/unit/api_future.cpp
   :language: c++
   :lines: 7-

Header hpx/init.hpp

This header contains functionality for starting, stopping, suspending, and resuming the |hpx| runtime. This is the main way to explicitly start the |hpx| runtime. See :ref:`starting_hpx` for more details on starting the |hpx| runtime.

Classes

Functions

Header hpx/latch.hpp

This header includes :ref:`public_api_header_hpx_local_latch` and contains a distributed latch implementation. This functionality is also exposed through the hpx::distributed namespace. The name in hpx::distributed should be preferred.

Classes

Header hpx/local/latch.hpp

Corresponds to the C++ standard library header :cppreference-header:`latch`.

Classes

Header hpx/mutex.hpp

This header includes :ref:`public_api_header_hpx_local_mutex`.

Header hpx/local/mutex.hpp

Corresponds to the C++ standard library header :cppreference-header:`mutex`.

Classes

Functions

Header hpx/memory.hpp

This header includes :ref:`public_api_header_hpx_local_memory`.

Header hpx/local/memory.hpp

Corresponds to the C++ standard library header :cppreference-header:`memory`. It contains parallel versions of the copy, fill, move, and construct helper functions in :cppreference-header:`memory`. See :ref:`parallel_algorithms` for more information about the parallel algorithms.

Functions

Header hpx/numeric.hpp

This header includes :ref:`public_api_header_hpx_local_numeric`.

Header hpx/local/numeric.hpp

Corresponds to the C++ standard library header :cppreference-header:`numeric`. See :ref:`parallel_algorithms` for more information about the parallel algorithms.

Functions

Header hpx/optional.hpp

This header includes :ref:`public_api_header_hpx_local_optional`.

Header hpx/local/optional.hpp

Corresponds to the C++ standard library header :cppreference-header:`optional`. :cpp:type:`hpx::util::optional` is compatible with std::optional.

Constants

Classes

Functions

Header hpx/runtime.hpp

This header includes :ref:`public_api_header_hpx_local_runtime` and contains functions for accessing distributed runtime information.

Functions

Header hpx/local/runtime.hpp

This header contains functions for accessing local runtime information.

Typedefs

Functions

Header hpx/system_error.hpp

This header includes :ref:`public_api_header_hpx_local_system_error`.

Header hpx/local/system_error.hpp

Corresponds to the C++ standard library header :cppreference-header:`system_error`.

Classes

Header hpx/task_block.hpp

This header includes :ref:`public_api_header_hpx_local_task_block`.

Header hpx/local/task_black.hpp

Corresponds to the task_block feature in |cpp11_n4088|_. See :ref:`using_task_block` for more details on using task blocks.

Classes

Functions

Header hpx/thread.hpp

This header includes :ref:`public_api_header_hpx_local_thread`.

Header hpx/local/thread.hpp

Corresponds to the C++ standard library header :cppreference-header:`thread`. The functionality in this header is equivalent to the standard library thread functionality, with the exception that the |hpx| equivalents are implemented on top of lightweight threads and the |hpx| runtime.

Classes

Functions

Header hpx/semaphore.hpp

This header includes :ref:`public_api_header_hpx_local_semaphore`.

Header hpx/local/semaphore.hpp

Corresponds to the C++ standard library header :cppreference-header:`semaphore`.

Classes

Header hpx/shared_mutex.hpp

This header includes :ref:`public_api_header_hpx_local_shared_mutex`.

Header hpx/local/shared_mutex.hpp

Corresponds to the C++ standard library header :cppreference-header:`shared_mutex`.

Classes

Header hpx/stop_token.hpp

This header includes :ref:`public_api_header_hpx_local_stop_token`.

Header hpx/local/stop_token.hpp

Corresponds to the C++ standard library header :cppreference-header:`stop_token`.

Constants

Classes

Header hpx/tuple.hpp

This header includes :ref:`public_api_header_hpx_local_tuple`.

Header hpx/local/tuple.hpp

Corresponds to the C++ standard library header :cppreference-header:`tuple`. :cpp:class:`hpx::tuple` can be used in CUDA device code, unlike std::tuple.

Constants

Classes

Functions

Header hpx/type_traits.hpp

This header includes :ref:`public_api_header_hpx_local_type_traits`.

Header hpx/local/type_traits.hpp

Corresponds to the C++ standard library header :cppreference-header:`type_traits`.

Classes

Header hpx/unwrap.hpp

This header includes :ref:`public_api_header_hpx_local_unwrap`.

Header hpx/local/unwrap.hpp

Contains utilities for unwrapping futures.

Classes

Functions

Header hpx/version.hpp

This header provides version information about |hpx|.

Macros

Functions

Header hpx/wrap_main.hpp

This header does not provide any direct functionality but is used for implicitly using main as the runtime entry point. See :ref:`minimal` for more details on implicitly starting the |hpx| runtime.