#include <ARTnResource.h>
Public Types | |
| using | artn_create_fn = int (*)() |
| using | setup_artn_fn = void (*)(const int nat, bool *cerr) |
| using | artn_fn |
| using | artn_destroy_fn = void (*)() |
| using | set_param_fn |
| using | get_param_fn = int (*)(const char *name, void *cval) |
| using | get_runparam_fn = int (*)(const char *name, void *cval) |
| using | get_data_fn = int (*)(const char *name, void **cval) |
| using | print_caller_fn = void (*)() |
| using | artn_step_fn |
| using | get_error_fn = int (*)(void **cmsg) |
| Retrieve pARTn error code + c_malloc'd message pointer. | |
Public Member Functions | |
| bool | is_loaded () const noexcept |
| True if libartn was successfully loaded. | |
| void | require_loaded () const |
| Throws std::runtime_error if libartn is not available. | |
| artn_create_fn | get_create_fn () const |
| setup_artn_fn | get_setup_fn () const |
| artn_fn | get_artn_fn () const |
| artn_destroy_fn | get_destroy_fn () const |
| set_param_fn | get_set_param_fn () const |
| get_param_fn | get_get_param_fn () const |
| get_runparam_fn | get_get_runparam_fn () const |
| get_data_fn | get_get_data_fn () const |
| print_caller_fn | get_print_caller_fn () const |
| artn_step_fn | get_artn_step_fn () const |
| get_error_fn | get_get_error_fn () const |
| May be null on older pARTn builds that predate the C get_error wrapper; callers must null-check before dispatching. | |
| ARTnResource (const ARTnResource &)=delete | |
| Non-copyable, non-movable. | |
| ARTnResource & | operator= (const ARTnResource &)=delete |
Static Public Member Functions | |
| static ARTnResource & | instance () |
| Singleton accessor (Meyer's pattern). | |
Public Attributes | |
| std::mutex | library_mutex |
| Global mutex to ensure only one thread accesses ARTn library at a time. | |
Private Member Functions | |
| ARTnResource () | |
| ~ARTnResource () | |
| template<typename Fn> | |
| Fn | load_sym (const char *name) const |
| Try to load a symbol; returns nullptr on failure. | |
Private Attributes | |
| bool | m_loaded {false} |
| dynlib::Handle | m_handle {} |
| artn_create_fn | artn_create_ {nullptr} |
| setup_artn_fn | setup_artn_ {nullptr} |
| artn_fn | artn_ {nullptr} |
| artn_destroy_fn | artn_destroy_ {nullptr} |
| set_param_fn | set_param_ {nullptr} |
| get_param_fn | get_param_ {nullptr} |
| get_runparam_fn | get_runparam_ {nullptr} |
| get_data_fn | get_data_ {nullptr} |
| print_caller_fn | print_caller_ {nullptr} |
| artn_step_fn | artn_step_ {nullptr} |
| get_error_fn | get_error_ {nullptr} |
Definition at line 34 of file ARTnResource.h.
| using eonc::ARTnResource::artn_create_fn = int (*)() |
Definition at line 37 of file ARTnResource.h.
| using eonc::ARTnResource::artn_destroy_fn = void (*)() |
Definition at line 43 of file ARTnResource.h.
Definition at line 39 of file ARTnResource.h.
Definition at line 50 of file ARTnResource.h.
| using eonc::ARTnResource::get_data_fn = int (*)(const char *name, void **cval) |
Definition at line 48 of file ARTnResource.h.
| using eonc::ARTnResource::get_error_fn = int (*)(void **cmsg) |
Retrieve pARTn error code + c_malloc'd message pointer.
Defined in m_artn_error.f90 as bind(C, name="get_error"): int get_error(void** cmsg); Non-zero return indicates an error; *cmsg then points at a C-string the caller must std::free. Zero leaves *cmsg null.
Definition at line 60 of file ARTnResource.h.
| using eonc::ARTnResource::get_param_fn = int (*)(const char *name, void *cval) |
Definition at line 46 of file ARTnResource.h.
| using eonc::ARTnResource::get_runparam_fn = int (*)(const char *name, void *cval) |
Definition at line 47 of file ARTnResource.h.
| using eonc::ARTnResource::print_caller_fn = void (*)() |
Definition at line 49 of file ARTnResource.h.
Definition at line 44 of file ARTnResource.h.
| using eonc::ARTnResource::setup_artn_fn = void (*)(const int nat, bool *cerr) |
Definition at line 38 of file ARTnResource.h.
|
delete |
Non-copyable, non-movable.
|
private |
|
private |
|
inline |
Definition at line 77 of file ARTnResource.h.
|
inline |
Definition at line 84 of file ARTnResource.h.
|
inline |
Definition at line 75 of file ARTnResource.h.
|
inline |
Definition at line 78 of file ARTnResource.h.
|
inline |
Definition at line 82 of file ARTnResource.h.
|
inline |
May be null on older pARTn builds that predate the C get_error wrapper; callers must null-check before dispatching.
Definition at line 87 of file ARTnResource.h.
|
inline |
Definition at line 80 of file ARTnResource.h.
|
inline |
Definition at line 81 of file ARTnResource.h.
|
inline |
Definition at line 83 of file ARTnResource.h.
|
inline |
Definition at line 79 of file ARTnResource.h.
|
inline |
Definition at line 76 of file ARTnResource.h.
|
static |
Singleton accessor (Meyer's pattern).
|
inlinenodiscardnoexcept |
|
inlineprivate |
Try to load a symbol; returns nullptr on failure.
Definition at line 114 of file ARTnResource.h.
|
delete |
| void eonc::ARTnResource::require_loaded | ( | ) | const |
Throws std::runtime_error if libartn is not available.
|
private |
Definition at line 103 of file ARTnResource.h.
|
private |
Definition at line 101 of file ARTnResource.h.
|
private |
Definition at line 104 of file ARTnResource.h.
|
private |
Definition at line 110 of file ARTnResource.h.
|
private |
Definition at line 108 of file ARTnResource.h.
|
private |
Definition at line 111 of file ARTnResource.h.
|
private |
Definition at line 106 of file ARTnResource.h.
|
private |
Definition at line 107 of file ARTnResource.h.
| std::mutex eonc::ARTnResource::library_mutex |
Global mutex to ensure only one thread accesses ARTn library at a time.
Definition at line 66 of file ARTnResource.h.
|
private |
Definition at line 98 of file ARTnResource.h.
|
private |
Definition at line 97 of file ARTnResource.h.
|
private |
Definition at line 109 of file ARTnResource.h.
|
private |
Definition at line 105 of file ARTnResource.h.
|
private |
Definition at line 102 of file ARTnResource.h.