lumiera_documentation/src/vault/enginefacade.cpp
Ichthyostega 8e250839f4 Application: Adjustments to the Layer structure
During the last months, a lot of gradual changes to policies and guidelines
had been finalised and documented. Moreover, recent clarifications regarding
memory management in the render engine will lead to a clearer definition
of the »Vault« Layer's role, with some ''engine code'' expected to move down.

On this occasion, I reworked relevant sections in the documentation to
confirm the role that now falls to central parts of the overall architecture.
Notably I decided to rename those parts related to the application backbone
as »Vessel« — to underpin the more active and defining role they assumed.
2026-03-03 22:16:09 +01:00

89 lines
2.1 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
EngineFacade - access point for communicating with the render engine
Copyright (C)
2008, Hermann Vosseler <Ichthyostega@web.de>
  **Lumiera** is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published by the
  Free Software Foundation; either version 2 of the License, or (at your
  option) any later version. See the file COPYING for further details.
* *****************************************************************/
/** @file enginefacade.cpp
** Subsystem descriptor and configuration for the render engine.
** This is the implementation part to manage render engine lifecycle
** as a Subsystem of the whole application.
**
** @todo placeholder/draft as of 1/2017
** @warning as of 4/2023 Render-Engine integration work is underway ////////////////////////////////////////TICKET #1280
** @see main.cpp
**
*/
#include "vault/enginefacade.hpp"
#include "lib/depend.hpp"
#include <string>
namespace vault {
using std::string;
using vessel::Subsys;
using vessel::Option;
class EngineSubsysDescriptor
: public Subsys
{
operator string () const { return "Engine"; }
bool
shouldStart (Option&) override
{
TODO ("determine, if renderengine should be started");
return false;
}
bool
start (Option&, Subsys::SigTerm termination) override
{
UNIMPLEMENTED ("pull up renderengine and register shutdown hook");
return false;
}
void
triggerShutdown () noexcept override
{
UNIMPLEMENTED ("initiate halting the engine");
}
bool
checkRunningState () noexcept override
{
//Lock guard{*this};
TODO ("implement detecting running state");
return false;
}
};
namespace {
lib::Depend<EngineSubsysDescriptor> theDescriptor;
}
/** @internal intended for use by main(). */
Subsys&
EngineFacade::getDescriptor()
{
return theDescriptor();
}
} // namespace vault