Brenta Engine 1.2
Loading...
Searching...
No Matches
subsystem.hpp
1// SPDX-License-Identifier: MIT
2// Author: Giovanni Santini
3// Mail: giovanni.santini@proton.me
4// Github: @San7o
5
6#pragma once
7
8#include <expected>
9#include <string>
10
11namespace brenta
12{
13
22{
23public:
24
25 using error = std::string;
26
27 class builder;
28
29 virtual ~subsystem() = default;
30
31 virtual std::expected<void, subsystem::error> initialize() = 0;
32 virtual std::expected<void, subsystem::error> terminate() = 0;
36 virtual std::string name() = 0;
40 virtual bool is_initialized() = 0;
41};
42
49{
50public:
51 virtual ~builder() = default;
52
53 virtual subsystem &build() = 0;
54};
55
56} // namepsace brenta
Builder interface.
Definition subsystem.hpp:49
Subsystem interface.
Definition subsystem.hpp:22
virtual bool is_initialized()=0
Returns true if the subsystem is initialized.
virtual std::string name()=0
Returns the name of the sybsystem.