Loading...
Searching...
No Matches
eonc::IRAResource Class Reference

#include <IRAResource.h>

Public Types

using libira_match_fn
using libira_cshda_pbc_fn
using libira_compute_all_fn
using libira_get_nmax_fn = int (*)()

Public Member Functions

bool is_loaded () const noexcept
 True if libira was successfully loaded.
void require_loaded () const
 Throws std::runtime_error if libira is not available.
libira_match_fn get_match_fn () const
libira_cshda_pbc_fn get_cshda_pbc_fn () const
libira_compute_all_fn get_compute_all_fn () const
libira_get_nmax_fn get_get_nmax_fn () const
 IRAResource (const IRAResource &)=delete
 Non-copyable, non-movable.
IRAResourceoperator= (const IRAResource &)=delete

Static Public Member Functions

static IRAResourceinstance ()
 Singleton accessor (Meyer's pattern).

Public Attributes

std::mutex library_mutex
 Global mutex to ensure only one thread accesses IRA library at a time.

Private Member Functions

 IRAResource ()
 ~IRAResource ()
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 {}
libira_match_fn libira_match_ {nullptr}
libira_cshda_pbc_fn libira_cshda_pbc_ {nullptr}
libira_compute_all_fn libira_compute_all_ {nullptr}
libira_get_nmax_fn libira_get_nmax_ {nullptr}

Detailed Description

Definition at line 34 of file IRAResource.h.

Member Typedef Documentation

◆ libira_compute_all_fn

Initial value:
void (*)(int nat, const int *typ, const double *coords, double threshold,
int prescreenIh, int *n_mat, double **mat, int **perm, char **op,
int **n, int **p, double **ax, double **angle, double **dH,
char **pg, int *n_prin_ax, double **prin_ax, int *cerr)

Definition at line 49 of file IRAResource.h.

◆ libira_cshda_pbc_fn

Initial value:
void (*)(int nat1, const int *typ1,
const double *coords1, int nat2,
const int *typ2, const double *coords2,
const double *lat, double distThreshold,
int **found, double **dists)

Definition at line 44 of file IRAResource.h.

◆ libira_get_nmax_fn

Definition at line 54 of file IRAResource.h.

◆ libira_match_fn

Initial value:
void (*)(int nat1, const int *typ1,
const double *coords1, const int *cand1,
int nat2, const int *typ2,
const double *coords2, const int *cand2,
double distThreshold, double **rotMat,
double **trans, int **perm,
double *hausdorffDist, int *ierr)

Definition at line 37 of file IRAResource.h.

Constructor & Destructor Documentation

◆ IRAResource() [1/2]

eonc::IRAResource::IRAResource ( const IRAResource & )
delete

Non-copyable, non-movable.

◆ IRAResource() [2/2]

eonc::IRAResource::IRAResource ( )
private

◆ ~IRAResource()

eonc::IRAResource::~IRAResource ( )
private

Member Function Documentation

◆ get_compute_all_fn()

libira_compute_all_fn eonc::IRAResource::get_compute_all_fn ( ) const
inline

Definition at line 71 of file IRAResource.h.

71 {
73 }
libira_compute_all_fn libira_compute_all_
Definition IRAResource.h:90

◆ get_cshda_pbc_fn()

libira_cshda_pbc_fn eonc::IRAResource::get_cshda_pbc_fn ( ) const
inline

Definition at line 70 of file IRAResource.h.

70{ return libira_cshda_pbc_; }
libira_cshda_pbc_fn libira_cshda_pbc_
Definition IRAResource.h:89

◆ get_get_nmax_fn()

libira_get_nmax_fn eonc::IRAResource::get_get_nmax_fn ( ) const
inline

Definition at line 74 of file IRAResource.h.

74{ return libira_get_nmax_; }
libira_get_nmax_fn libira_get_nmax_
Definition IRAResource.h:91

◆ get_match_fn()

libira_match_fn eonc::IRAResource::get_match_fn ( ) const
inline

Definition at line 69 of file IRAResource.h.

69{ return libira_match_; }
libira_match_fn libira_match_
Definition IRAResource.h:88

◆ instance()

IRAResource & eonc::IRAResource::instance ( )
static

Singleton accessor (Meyer's pattern).

◆ is_loaded()

bool eonc::IRAResource::is_loaded ( ) const
inlinenodiscardnoexcept

True if libira was successfully loaded.

Definition at line 63 of file IRAResource.h.

63{ return m_loaded; }

◆ load_sym()

template<typename Fn>
Fn eonc::IRAResource::load_sym ( const char * name) const
inlineprivate

Try to load a symbol; returns nullptr on failure.

Definition at line 94 of file IRAResource.h.

94 {
95 return reinterpret_cast<Fn>(dynlib::sym(m_handle, name));
96 }
dynlib::Handle m_handle
Definition IRAResource.h:85
void * sym(Handle h, const char *name) noexcept
Definition DynLib.h:75

◆ operator=()

IRAResource & eonc::IRAResource::operator= ( const IRAResource & )
delete

◆ require_loaded()

void eonc::IRAResource::require_loaded ( ) const

Throws std::runtime_error if libira is not available.

Member Data Documentation

◆ libira_compute_all_

libira_compute_all_fn eonc::IRAResource::libira_compute_all_ {nullptr}
private

Definition at line 90 of file IRAResource.h.

90{nullptr};

◆ libira_cshda_pbc_

libira_cshda_pbc_fn eonc::IRAResource::libira_cshda_pbc_ {nullptr}
private

Definition at line 89 of file IRAResource.h.

89{nullptr};

◆ libira_get_nmax_

libira_get_nmax_fn eonc::IRAResource::libira_get_nmax_ {nullptr}
private

Definition at line 91 of file IRAResource.h.

91{nullptr};

◆ libira_match_

libira_match_fn eonc::IRAResource::libira_match_ {nullptr}
private

Definition at line 88 of file IRAResource.h.

88{nullptr};

◆ library_mutex

std::mutex eonc::IRAResource::library_mutex

Global mutex to ensure only one thread accesses IRA library at a time.

Definition at line 60 of file IRAResource.h.

◆ m_handle

dynlib::Handle eonc::IRAResource::m_handle {}
private

Definition at line 85 of file IRAResource.h.

85{};

◆ m_loaded

bool eonc::IRAResource::m_loaded {false}
private

Definition at line 84 of file IRAResource.h.

84{false};

The documentation for this class was generated from the following file: