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

Move-only composition root for process resources (dlopen loaders and the potential registry). More...

#include <Runtime.h>

Public Member Functions

 Runtime ()
 Runtime (Runtime &&) noexcept
Runtime & operator= (Runtime &&) noexcept
 ~Runtime ()
 Runtime (const Runtime &)=delete
Runtime & operator= (const Runtime &)=delete
PotRegistry & pots () noexcept
const PotRegistry & pots () const noexcept
IRAResource & ira () noexcept
const IRAResource & ira () const noexcept
ARTnResource & artn () noexcept
const ARTnResource & artn () const noexcept
PluginLoader & plugins () noexcept
const PluginLoader & plugins () const noexcept
MetatomicLoader & metatomic () noexcept
const MetatomicLoader & metatomic () const noexcept

Private Attributes

std::unique_ptr< PotRegistry > pots_
std::unique_ptr< IRAResource > ira_
std::unique_ptr< ARTnResource > artn_
std::unique_ptr< PluginLoader > plugins_
std::unique_ptr< MetatomicLoader > metatomic_

Detailed Description

Move-only composition root for process resources (dlopen loaders and the potential registry).

ClientEON constructs one and Job borrows it; one-shot makeJob owns a unique_ptr<Runtime>. Python Session is this type.

Definition at line 27 of file Runtime.h.

Constructor & Destructor Documentation

◆ Runtime() [1/3]

eonc::Runtime::Runtime ( )

Definition at line 22 of file Runtime.cpp.

23 : pots_(std::make_unique<PotRegistry>()),
24 ira_(std::unique_ptr<IRAResource>(new IRAResource())),
25 artn_(std::unique_ptr<ARTnResource>(new ARTnResource())),
26 plugins_(std::unique_ptr<PluginLoader>(new PluginLoader())),
27 metatomic_(std::unique_ptr<MetatomicLoader>(new MetatomicLoader())) {}
std::unique_ptr< IRAResource > ira_
Definition Runtime.h:50
std::unique_ptr< PluginLoader > plugins_
Definition Runtime.h:52
std::unique_ptr< MetatomicLoader > metatomic_
Definition Runtime.h:53
std::unique_ptr< ARTnResource > artn_
Definition Runtime.h:51
std::unique_ptr< PotRegistry > pots_
Definition Runtime.h:49

◆ Runtime() [2/3]

eonc::Runtime::Runtime ( Runtime && )
defaultnoexcept

◆ ~Runtime()

eonc::Runtime::~Runtime ( )
default

◆ Runtime() [3/3]

eonc::Runtime::Runtime ( const Runtime & )
delete

Member Function Documentation

◆ artn() [1/2]

const ARTnResource & eonc::Runtime::artn ( ) const
nodiscardnoexcept

Definition at line 38 of file Runtime.cpp.

38{ return *artn_; }

◆ artn() [2/2]

ARTnResource & eonc::Runtime::artn ( )
nodiscardnoexcept

Definition at line 37 of file Runtime.cpp.

37{ return *artn_; }

◆ ira() [1/2]

const IRAResource & eonc::Runtime::ira ( ) const
nodiscardnoexcept

Definition at line 36 of file Runtime.cpp.

36{ return *ira_; }

◆ ira() [2/2]

IRAResource & eonc::Runtime::ira ( )
nodiscardnoexcept

Definition at line 35 of file Runtime.cpp.

35{ return *ira_; }

◆ metatomic() [1/2]

const MetatomicLoader & eonc::Runtime::metatomic ( ) const
nodiscardnoexcept

Definition at line 42 of file Runtime.cpp.

42 {
43 return *metatomic_;
44}

◆ metatomic() [2/2]

MetatomicLoader & eonc::Runtime::metatomic ( )
nodiscardnoexcept

Definition at line 41 of file Runtime.cpp.

41{ return *metatomic_; }

◆ operator=() [1/2]

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

◆ operator=() [2/2]

Runtime & eonc::Runtime::operator= ( Runtime && )
defaultnoexcept

◆ plugins() [1/2]

const PluginLoader & eonc::Runtime::plugins ( ) const
nodiscardnoexcept

Definition at line 40 of file Runtime.cpp.

40{ return *plugins_; }

◆ plugins() [2/2]

PluginLoader & eonc::Runtime::plugins ( )
nodiscardnoexcept

Definition at line 39 of file Runtime.cpp.

39{ return *plugins_; }

◆ pots() [1/2]

const PotRegistry & eonc::Runtime::pots ( ) const
nodiscardnoexcept

Definition at line 34 of file Runtime.cpp.

34{ return *pots_; }

◆ pots() [2/2]

PotRegistry & eonc::Runtime::pots ( )
nodiscardnoexcept

Definition at line 33 of file Runtime.cpp.

33{ return *pots_; }

Member Data Documentation

◆ artn_

std::unique_ptr<ARTnResource> eonc::Runtime::artn_
private

Definition at line 51 of file Runtime.h.

◆ ira_

std::unique_ptr<IRAResource> eonc::Runtime::ira_
private

Definition at line 50 of file Runtime.h.

◆ metatomic_

std::unique_ptr<MetatomicLoader> eonc::Runtime::metatomic_
private

Definition at line 53 of file Runtime.h.

◆ plugins_

std::unique_ptr<PluginLoader> eonc::Runtime::plugins_
private

Definition at line 52 of file Runtime.h.

◆ pots_

std::unique_ptr<PotRegistry> eonc::Runtime::pots_
private

Definition at line 49 of file Runtime.h.


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