write shit
This commit is contained in:
65
BasaltPresenter/Shared/basalt/kernel.cpp
Normal file
65
BasaltPresenter/Shared/basalt/kernel.cpp
Normal file
@@ -0,0 +1,65 @@
|
||||
#include "kernel.hpp"
|
||||
#include <stdexcept>
|
||||
|
||||
namespace Basalt::Shared::Kernel {
|
||||
|
||||
#pragma region Engine
|
||||
|
||||
IEngine::IEngine() : config(), status(EngineStatus::Ready) {}
|
||||
|
||||
IEngine::~IEngine() {
|
||||
if (this->status != EngineStatus::Stop) {
|
||||
this->Shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
Guid IEngine::GetGuid() const {
|
||||
throw std::logic_error("unimplemented function");
|
||||
}
|
||||
|
||||
void IEngine::Startup(EngineConfig &&config) {
|
||||
if (this->status != EngineStatus::Ready) throw std::runtime_error("unexpected engine status");
|
||||
this->config = std::move(config);
|
||||
this->status = EngineStatus::Running;
|
||||
}
|
||||
|
||||
bool IEngine::Tick() {
|
||||
if (this->status != EngineStatus::Running) throw std::runtime_error("unexpected engine status");
|
||||
return false;
|
||||
}
|
||||
|
||||
void IEngine::Shutdown() {
|
||||
if (this->status != EngineStatus::Running) throw std::runtime_error("unexpected engine status");
|
||||
this->status = EngineStatus::Stop;
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Deliver
|
||||
|
||||
IDeliver::IDeliver() {}
|
||||
|
||||
IDeliver::~IDeliver() {}
|
||||
|
||||
Guid IDeliver::GetGuid() const {
|
||||
throw std::logic_error("unimplemented function");
|
||||
}
|
||||
|
||||
void IDeliver::Startup(DeliverConfig &&config) {
|
||||
if (this->status != DeliverStatus::Ready) throw std::runtime_error("unexpected deliver status");
|
||||
this->config = std::move(config);
|
||||
this->status = DeliverStatus::Running;
|
||||
}
|
||||
|
||||
void IDeliver::Transmit() {
|
||||
if (this->status != DeliverStatus::Running) throw std::runtime_error("unexpected deliver status");
|
||||
}
|
||||
|
||||
void IDeliver::Shutdown() {
|
||||
if (this->status != DeliverStatus::Running) throw std::runtime_error("unexpected deliver status");
|
||||
this->status = DeliverStatus::Stop;
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
} // namespace Basalt::Shared::Kernel
|
||||
Reference in New Issue
Block a user