Loading...
Searching...
No Matches
Runtime.cpp
Go to the documentation of this file.
1/*
2** This file is part of eOn.
3**
4** SPDX-License-Identifier: BSD-3-Clause
5**
6** Copyright (c) 2010--present, eOn Development Team
7** All rights reserved.
8**
9** Repo:
10** https://github.com/TheochemUI/eOn
11*/
12#include "eon/Runtime.h"
13
14#include "eon/PotRegistry.h"
19
20namespace eonc {
21
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())) {}
28
29Runtime::Runtime(Runtime &&) noexcept = default;
30Runtime &Runtime::operator=(Runtime &&) noexcept = default;
31Runtime::~Runtime() = default;
32
33PotRegistry &Runtime::pots() noexcept { return *pots_; }
34const PotRegistry &Runtime::pots() const noexcept { return *pots_; }
35IRAResource &Runtime::ira() noexcept { return *ira_; }
36const IRAResource &Runtime::ira() const noexcept { return *ira_; }
37ARTnResource &Runtime::artn() noexcept { return *artn_; }
38const ARTnResource &Runtime::artn() const noexcept { return *artn_; }
39PluginLoader &Runtime::plugins() noexcept { return *plugins_; }
40const PluginLoader &Runtime::plugins() const noexcept { return *plugins_; }
42const MetatomicLoader &Runtime::metatomic() const noexcept {
43 return *metatomic_;
44}
45
46} // namespace eonc
Move-only composition root for process resources (dlopen loaders and the potential registry).
Definition Runtime.h:27
PotRegistry & pots() noexcept
Definition Runtime.cpp:33
PluginLoader & plugins() noexcept
Definition Runtime.cpp:39
ARTnResource & artn() noexcept
Definition Runtime.cpp:37
std::unique_ptr< IRAResource > ira_
Definition Runtime.h:50
std::unique_ptr< PluginLoader > plugins_
Definition Runtime.h:52
MetatomicLoader & metatomic() noexcept
Definition Runtime.cpp:41
std::unique_ptr< MetatomicLoader > metatomic_
Definition Runtime.h:53
IRAResource & ira() noexcept
Definition Runtime.cpp:35
std::unique_ptr< ARTnResource > artn_
Definition Runtime.h:51
std::unique_ptr< PotRegistry > pots_
Definition Runtime.h:49
RAII resource manager for the ARTn C library with global synchronization.