Remove the public C++ interface of the GUI-starter plugin

This plugin is essentially an implementation detail, and there is no
mechanism yet to use several different implementations of the interface.

Thus it is pointless to expose the lifecycle methods on a public interface,
while there is no way to obtain an instance of this interface, since the
latter is confined to the internals of the UI subsystem lifecycle
This commit is contained in:
Fischlurch 2017-08-03 23:11:01 +02:00
parent 9cf868c9cd
commit 74ca087cd3
2 changed files with 17 additions and 19 deletions

View file

@ -57,7 +57,7 @@ namespace gui {
/** load and start the GUI as a plugin */
struct GuiRunner
: public GuiFacade
: boost::noncopyable
{
typedef InstanceHandle<LUMIERA_INTERFACE_INAME(lumieraorg_Gui, 1)> GuiHandle;
@ -75,7 +75,16 @@ namespace gui {
}
bool launchUI (Subsys::SigTerm& terminationHandle) override
/* ===== control interface for the GuiStarterPlugin ======= */
/** start the actual GUI thread(s), after successfully loading
* the GuiStarterPlugin, that is. The implementation of this function
* must ensure to invoke the given termination signal reliably after
* shutting down the GUI, otherwise the application will hang on exit.
* @internal this function is invoked automatically during the GUI
* loading and startup process. Don't call it manually.
*/
bool launchUI (Subsys::SigTerm& terminationHandle)
{
return theGUI_->launchUI (reinterpret_cast<void*> (&terminationHandle));
}

View file

@ -64,15 +64,16 @@ namespace gui {
* and wired internally such as to allow transparent access from
* within the core.
*
* \par implementation notes
* This is an facade interface to the GUI subsystem, but it is setup
* somewhat special, as its sole purpose is to expose the subsystem
* ## intended usage
* This is an facade interface to the GUI subsystem, but it's setup
* is somewhat special, as its sole purpose is to expose the subsystem
* descriptor, which, when started, loads the GUI as a plugin and
* invokes `launchUI(term)` there. For the implementation see
* gui::GuiRunner (guifacade.cpp) and gtk-lumiera.cpp (the plugin).
*
* @note this facade is intended to be used by Lumiera main solely.
* client code should always use the "business" interface(s).
* client code should always use the "business" interface(s):
* - gui::GuiNotification
*
*/
class GuiFacade
@ -90,20 +91,8 @@ namespace gui {
static bool isUp();
/* ===== control interface for the GuiStarterPlugin ======= */
/** start the actual GUI thread(s), after successfully loading
* the GuiStarterPlugin, that is. The implementation of this function
* must ensure to invoke the given termination signal reliably after
* shutting down the GUI, otherwise the application will hang on exit.
* @internal this function is invoked automatically during the GUI
* loading and startup process. Don't call it manually.
*/
virtual bool launchUI (lumiera::Subsys::SigTerm&) =0;
protected:
virtual ~GuiFacade() {}
GuiFacade() = delete;
};
/** interface of the GuiStarterPlugin */