Rework Interface-Proxy definition to fit with the new scheme
everything works now after the switch. BUT this solution is ugly, we need to trigger template instantiation explicitly
This commit is contained in:
parent
f24c548443
commit
18d0970a86
19 changed files with 166 additions and 109 deletions
|
|
@ -30,7 +30,7 @@
|
|||
** @see display-facade.hpp
|
||||
** @see display-service.hpp actual implementation within the GUI
|
||||
** @deprecated obsolete early design draft from 2009;
|
||||
** as of 2018 only kept in source to compile some likewise obsolete UI widgets.
|
||||
** as of 2018 only kept in source to compile some likewise obsolete UI widgets.
|
||||
*/
|
||||
|
||||
|
||||
|
|
@ -48,6 +48,9 @@ namespace lumiera {
|
|||
/// emit the vtable here into this translation unit within liblumieracommon.so...
|
||||
Display::~Display() { }
|
||||
|
||||
/** static storage for the facade access front-end */
|
||||
lib::Depend<Display> Display::facade;
|
||||
|
||||
} // namespace lumiera
|
||||
|
||||
|
||||
|
|
@ -55,14 +58,12 @@ namespace lumiera {
|
|||
namespace lumiera {
|
||||
namespace facade {
|
||||
|
||||
typedef InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_Display, 0)
|
||||
, lumiera::Display
|
||||
> IHandle_Display;
|
||||
|
||||
|
||||
using IHandle = InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_Display, 0)
|
||||
, lumiera::Display
|
||||
>;
|
||||
template<>
|
||||
class Proxy<IHandle_Display>
|
||||
: public Binding<IHandle_Display>
|
||||
class Proxy<IHandle>
|
||||
: public Binding<IHandle>
|
||||
{
|
||||
//----Proxy-Implementation-of-lumiera::Display--------
|
||||
|
||||
|
|
@ -84,7 +85,12 @@ namespace facade {
|
|||
};
|
||||
|
||||
|
||||
// template void openProxy<IHandle_Display> (IHandle_Display const&);
|
||||
// template void closeProxy<IHandle_Display> (void);
|
||||
|
||||
}} // namespace lumiera::facade
|
||||
} //namespace facade
|
||||
|
||||
|
||||
// emit code for the proxy implementation here...
|
||||
template
|
||||
class InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_Display, 0)
|
||||
, lumiera::Display
|
||||
>;
|
||||
} // namespace lumiera
|
||||
|
|
@ -127,7 +127,6 @@ namespace lumiera {
|
|||
: ServiceHandle<I,FA>
|
||||
{
|
||||
using IH = InstanceHandle<I,FA>;
|
||||
using SH = ServiceHandle<I,FA>;
|
||||
|
||||
Link (IH const& iha);
|
||||
~Link ();
|
||||
|
|
@ -148,7 +147,7 @@ namespace lumiera {
|
|||
using IH = InstanceHandle<I,I>;
|
||||
IH& ih_;
|
||||
|
||||
Link (IH const& ih)
|
||||
Link (IH& ih)
|
||||
: ih_{ih}
|
||||
{ }
|
||||
|
||||
|
|
@ -227,7 +226,7 @@ namespace lumiera {
|
|||
|
||||
/** act as smart pointer providing access through the facade.
|
||||
* @note we don't provide operator* */
|
||||
FA * operator-> () const { return facadeLink_; }
|
||||
FA * operator-> () const { return facadeLink_.operator ->(); }
|
||||
|
||||
/** directly access the instance via the CL interface */
|
||||
I& get () const { ENSURE(instance_); return *instance_; }
|
||||
|
|
|
|||
|
|
@ -40,19 +40,22 @@
|
|||
#include "include/gui-notification-facade.h"
|
||||
#include "include/interfaceproxy.hpp"
|
||||
|
||||
namespace gui {
|
||||
/** static storage for the facade access front-end */
|
||||
lib::Depend<GuiNotification> GuiNotification::facade;
|
||||
}
|
||||
namespace lumiera {
|
||||
namespace facade {
|
||||
using gui::ID;
|
||||
using lib::diff::MutationMessage;
|
||||
|
||||
typedef InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_GuiNotification, 0)
|
||||
, gui::GuiNotification
|
||||
> IHandle_GuiNotification;
|
||||
|
||||
|
||||
template
|
||||
class Proxy<IHandle_GuiNotification>
|
||||
: public Binding<IHandle_GuiNotification>
|
||||
using IHandle = InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_GuiNotification, 0)
|
||||
, gui::GuiNotification
|
||||
>;
|
||||
template<>
|
||||
class Proxy<IHandle>
|
||||
: public Binding<IHandle>
|
||||
{
|
||||
using Level = gui::NotifyLevel;
|
||||
|
||||
|
|
@ -69,9 +72,12 @@ namespace facade {
|
|||
using IBinding::IBinding;
|
||||
};
|
||||
|
||||
|
||||
// template void openProxy<IHandle_GuiNotification> (IHandle_GuiNotification const&);
|
||||
// template void closeProxy<IHandle_GuiNotification> (void);
|
||||
|
||||
|
||||
}} // namespace lumiera::facade
|
||||
} //namespace facade
|
||||
|
||||
|
||||
// emit code for the proxy implementation here...
|
||||
template
|
||||
class InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_GuiNotification, 0)
|
||||
, gui::GuiNotification
|
||||
>;
|
||||
} // namespace lumiera
|
||||
|
|
@ -120,7 +120,7 @@ namespace gui {
|
|||
|
||||
|
||||
|
||||
using lumiera::facade::LUMIERA_ERROR_FACADE_LIFECYCLE;
|
||||
using lumiera::error::LERR_(LIFECYCLE);
|
||||
|
||||
lib::Depend<DisplayService> _instance; ///< a backdoor for the C Language impl to access the actual SessionCommand implementation...
|
||||
|
||||
|
|
@ -136,7 +136,7 @@ namespace gui {
|
|||
{
|
||||
if (!_instance)
|
||||
{
|
||||
lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, 0);
|
||||
lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -153,7 +153,7 @@ namespace gui {
|
|||
{
|
||||
if (!_instance)
|
||||
{
|
||||
lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, 0);
|
||||
lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ namespace gui {
|
|||
|
||||
|
||||
|
||||
using lumiera::facade::LUMIERA_ERROR_FACADE_LIFECYCLE;
|
||||
using lumiera::error::LERR_(LIFECYCLE);
|
||||
|
||||
lib::Depend<NotificationService> _instance; ///< a backdoor for the C Language impl to access the actual SessionCommand implementation...
|
||||
|
||||
|
|
@ -223,7 +223,7 @@ namespace gui {
|
|||
, LUMIERA_INTERFACE_INLINE (displayInfo,
|
||||
void, (uint severity, const char* text),
|
||||
{
|
||||
if (!_instance) lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, text);
|
||||
if (!_instance) lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, text);
|
||||
else
|
||||
_instance().displayInfo (NotifyLevel(severity), text);
|
||||
}
|
||||
|
|
@ -231,7 +231,7 @@ namespace gui {
|
|||
, LUMIERA_INTERFACE_INLINE (markError,
|
||||
void, (LumieraUid element, const char* text),
|
||||
{
|
||||
if (!_instance) lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, text);
|
||||
if (!_instance) lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, text);
|
||||
else
|
||||
_instance().markError (reinterpret_cast<ID> (*element), text);
|
||||
}
|
||||
|
|
@ -239,7 +239,7 @@ namespace gui {
|
|||
, LUMIERA_INTERFACE_INLINE (markNote,
|
||||
void, (LumieraUid element, const char* text),
|
||||
{
|
||||
if (!_instance) lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, text);
|
||||
if (!_instance) lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, text);
|
||||
else
|
||||
_instance().markNote (reinterpret_cast<ID> (*element), text);
|
||||
}
|
||||
|
|
@ -247,7 +247,7 @@ namespace gui {
|
|||
, LUMIERA_INTERFACE_INLINE (mutate,
|
||||
void, (LumieraUid element, void* diff),
|
||||
{
|
||||
if (!_instance) lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, "passing diff message");
|
||||
if (!_instance) lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, "passing diff message");
|
||||
else
|
||||
_instance().mutate (reinterpret_cast<ID> (*element), move(*reinterpret_cast<MutationMessage*> (diff)));
|
||||
}
|
||||
|
|
@ -255,7 +255,7 @@ namespace gui {
|
|||
, LUMIERA_INTERFACE_INLINE (triggerGuiShutdown,
|
||||
void, (const char* cause),
|
||||
{
|
||||
if (!_instance) lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, cause);
|
||||
if (!_instance) lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, cause);
|
||||
else
|
||||
_instance().triggerGuiShutdown (cause);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -118,8 +118,7 @@ namespace lumiera {
|
|||
virtual Sink getHandle(LumieraDisplaySlot) =0;
|
||||
|
||||
|
||||
protected:
|
||||
virtual ~Display();
|
||||
virtual ~Display(); ///< this is an interface
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ namespace lumiera {
|
|||
|
||||
protected:
|
||||
virtual ~DummyPlayer();
|
||||
friend class lib::DependencyFactory<DummyPlayer>;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -76,6 +76,10 @@ namespace gui {
|
|||
*/
|
||||
class GuiNotification
|
||||
{
|
||||
protected:
|
||||
virtual ~GuiNotification() {} ///< this is an interface
|
||||
friend class lib::DependencyFactory<GuiNotification>;
|
||||
|
||||
public:
|
||||
static lib::Depend<GuiNotification> facade;
|
||||
|
||||
|
|
@ -108,9 +112,6 @@ namespace gui {
|
|||
*/
|
||||
virtual void triggerGuiShutdown (string const& cause) =0;
|
||||
|
||||
|
||||
protected:
|
||||
virtual ~GuiNotification() {}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -93,9 +93,11 @@
|
|||
#define LUMIERA_INTERFACE_PROXY_H
|
||||
|
||||
|
||||
#include "lib/error.hpp"
|
||||
#include "common/instancehandle.hpp"
|
||||
#include "lib/error.hpp"
|
||||
#include "lib/util.hpp"
|
||||
|
||||
using util::cStr;
|
||||
|
||||
namespace lumiera {
|
||||
namespace facade {
|
||||
|
|
@ -114,13 +116,12 @@ namespace facade {
|
|||
* to the service lifecycle.
|
||||
*/
|
||||
template<class IHA>
|
||||
class Binding;
|
||||
struct Binding;
|
||||
|
||||
template<class FA, class I>
|
||||
class Binding<InstanceHandle<I,FA>>
|
||||
struct Binding<InstanceHandle<I,FA>>
|
||||
: public FA
|
||||
{
|
||||
protected:
|
||||
typedef InstanceHandle<I,FA> IHandle;
|
||||
typedef Binding<IHandle> IBinding;
|
||||
|
||||
|
|
@ -132,6 +133,25 @@ namespace facade {
|
|||
};
|
||||
|
||||
|
||||
|
||||
template<class I, class FA>
|
||||
Link<I,FA>::Link (IH const& iha)
|
||||
: ServiceHandle<I,FA>{iha}
|
||||
{ }
|
||||
|
||||
template<class I, class FA>
|
||||
Link<I,FA>::~Link() { }
|
||||
|
||||
|
||||
template<class I, class FA>
|
||||
FA*
|
||||
Link<I,FA>::operator->() const
|
||||
{
|
||||
return ServiceHandle<I,FA>::operator->();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}} // namespace lumiera::facade
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -81,6 +81,9 @@ namespace lumiera {
|
|||
*/
|
||||
class Play
|
||||
{
|
||||
protected:
|
||||
virtual ~Play();
|
||||
friend class lib::DependencyFactory<Play>;
|
||||
public:
|
||||
|
||||
/** get an implementation instance of this service */
|
||||
|
|
@ -145,8 +148,6 @@ namespace lumiera {
|
|||
Controller perform(Clip);
|
||||
|
||||
protected:
|
||||
virtual ~Play();
|
||||
|
||||
/** core operation: create a new playback process
|
||||
* outputting to the given viewer/display */
|
||||
virtual Controller connect(ModelPorts, Output) =0;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,8 @@ namespace control {
|
|||
|
||||
|
||||
protected:
|
||||
virtual ~SessionCommand() {}
|
||||
virtual ~SessionCommand() {} ///< this is an interface
|
||||
friend class lib::DependencyFactory<SessionCommand>;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -40,17 +40,22 @@
|
|||
#include "include/session-command-facade.h"
|
||||
#include "include/interfaceproxy.hpp"
|
||||
|
||||
namespace proc {
|
||||
namespace control{
|
||||
/** static storage for the facade access front-end */
|
||||
lib::Depend<SessionCommand> SessionCommand::facade;
|
||||
}}
|
||||
namespace lumiera {
|
||||
namespace facade {
|
||||
|
||||
typedef InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_SessionCommand, 0)
|
||||
, proc::control::SessionCommand
|
||||
> IHandle_SessionCommand;
|
||||
using IHandle = InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_SessionCommand, 0)
|
||||
, proc::control::SessionCommand
|
||||
>;
|
||||
|
||||
|
||||
template<>
|
||||
class Proxy<IHandle_SessionCommand>
|
||||
: public Binding<IHandle_SessionCommand>
|
||||
class Proxy<IHandle>
|
||||
: public Binding<IHandle>
|
||||
{
|
||||
//----Proxy-Implementation-of-SessionCommand--------
|
||||
|
||||
|
|
@ -64,9 +69,12 @@ namespace facade {
|
|||
using IBinding::IBinding;
|
||||
};
|
||||
|
||||
|
||||
// template void openProxy<IHandle_SessionCommand> (IHandle_SessionCommand const&);
|
||||
// template void closeProxy<IHandle_SessionCommand> (void);
|
||||
|
||||
|
||||
}} // namespace lumiera::facade
|
||||
} //namespace facade
|
||||
|
||||
|
||||
// emit code for the proxy implementation here...
|
||||
template
|
||||
class InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_SessionCommand, 0)
|
||||
, proc::control::SessionCommand
|
||||
>;
|
||||
} // namespace lumiera
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ namespace control {
|
|||
|
||||
|
||||
|
||||
using lumiera::facade::LUMIERA_ERROR_FACADE_LIFECYCLE;
|
||||
using lumiera::error::LERR_(LIFECYCLE);
|
||||
|
||||
lib::Depend<SessionCommandService> _instance; ///< a backdoor for the C Language impl to access the actual SessionCommand implementation...
|
||||
|
||||
|
|
@ -203,7 +203,7 @@ namespace control {
|
|||
const char*, (const char* cmdID, const char* invocationID),
|
||||
{
|
||||
if (!_instance)
|
||||
return lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, cmdID);
|
||||
return lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, cmdID);
|
||||
else
|
||||
return _instance().cycle(cmdID, invocationID);
|
||||
}
|
||||
|
|
@ -211,7 +211,7 @@ namespace control {
|
|||
, LUMIERA_INTERFACE_INLINE (trigger,
|
||||
void, (const char* cmdID, const void* args),
|
||||
{
|
||||
if (!_instance) lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, cmdID);
|
||||
if (!_instance) lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, cmdID);
|
||||
else
|
||||
_instance().trigger(cmdID, *static_cast<Rec const *> (args));
|
||||
}
|
||||
|
|
@ -219,7 +219,7 @@ namespace control {
|
|||
, LUMIERA_INTERFACE_INLINE (bindArg,
|
||||
void, (const char* cmdID, const void* args),
|
||||
{
|
||||
if (!_instance) lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, cmdID);
|
||||
if (!_instance) lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, cmdID);
|
||||
else
|
||||
_instance().bindArg(cmdID, *static_cast<Rec const *> (args));
|
||||
}
|
||||
|
|
@ -227,7 +227,7 @@ namespace control {
|
|||
, LUMIERA_INTERFACE_INLINE (invoke,
|
||||
void, (const char* cmdID),
|
||||
{
|
||||
if (!_instance) lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, cmdID);
|
||||
if (!_instance) lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, cmdID);
|
||||
else
|
||||
_instance().invoke(cmdID);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,9 +41,9 @@
|
|||
** proxy used by the client code to access the interface).
|
||||
**
|
||||
** @see dummy-player-facade.hpp
|
||||
** @see dummy-player-service.hpp actual implementation within the Proc-Layer
|
||||
** @see dummy-player-service.hpp actual implementation within the Proc-Layer
|
||||
** @deprecated obsolete early design draft from 2009;
|
||||
** as of 2018 only kept in source to compile some likewise obsolete UI widgets.
|
||||
** as of 2018 only kept in source to compile some likewise obsolete UI widgets.
|
||||
*/
|
||||
|
||||
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
|
||||
/* ==================== DummyPlayer ======================================= */
|
||||
|
||||
|
||||
#include "include/dummy-player-facade.h"
|
||||
#include "include/interfaceproxy.hpp"
|
||||
|
||||
|
|
@ -61,20 +61,22 @@ namespace lumiera {
|
|||
// emit the vtable here into this translation unit within liblumieracommon.so ...
|
||||
DummyPlayer::~DummyPlayer() { }
|
||||
|
||||
/** static storage for the facade access front-end */
|
||||
lib::Depend<DummyPlayer> DummyPlayer::facade;
|
||||
|
||||
|
||||
|
||||
|
||||
namespace facade {
|
||||
|
||||
typedef lumiera::InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_DummyPlayer, 0)
|
||||
, lumiera::DummyPlayer
|
||||
> IHandle_DummyPlayer;
|
||||
using IHandle = InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_DummyPlayer, 0)
|
||||
, lumiera::DummyPlayer
|
||||
>;
|
||||
|
||||
|
||||
template<>
|
||||
class Proxy<IHandle_DummyPlayer>
|
||||
: public Binding<IHandle_DummyPlayer>
|
||||
class Proxy<IHandle>
|
||||
: public Binding<IHandle>
|
||||
{
|
||||
//----Proxy-Implementation-of-DummyPlayer--------
|
||||
typedef lumiera::DummyPlayer::Process Process;
|
||||
|
|
@ -106,13 +108,8 @@ namespace lumiera {
|
|||
using IBinding::IBinding;
|
||||
};
|
||||
|
||||
|
||||
// template void openProxy<IHandle_DummyPlayer> (IHandle_DummyPlayer const&);
|
||||
// template void closeProxy<IHandle_DummyPlayer> (void);
|
||||
|
||||
|
||||
} // namespace facade
|
||||
|
||||
|
||||
|
||||
/* === Forwarding function(s) on the Process handle === */
|
||||
|
||||
|
|
@ -128,4 +125,9 @@ namespace lumiera {
|
|||
|
||||
|
||||
|
||||
|
||||
template
|
||||
class InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_DummyPlayer, 0)
|
||||
, lumiera::DummyPlayer
|
||||
>;
|
||||
} // namespace lumiera
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ namespace proc {
|
|||
|
||||
|
||||
|
||||
using lumiera::facade::LUMIERA_ERROR_FACADE_LIFECYCLE;
|
||||
using lumiera::error::LERR_(LIFECYCLE);
|
||||
lib::Depend<DummyPlayerService> _instance; ///< a backdoor for the C Language impl to access the actual SessionCommand implementation...
|
||||
|
||||
typedef ProcessImpl* ProcP;
|
||||
|
|
@ -192,7 +192,7 @@ namespace proc {
|
|||
{
|
||||
if (!_instance)
|
||||
{
|
||||
lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, 0);
|
||||
lumiera_error_set (LUMIERA_ERROR_LIFECYCLE, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -204,7 +204,7 @@ namespace proc {
|
|||
{
|
||||
if (!_instance)
|
||||
{
|
||||
lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, 0);
|
||||
lumiera_error_set(LUMIERA_ERROR_LIFECYCLE, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -219,7 +219,7 @@ namespace proc {
|
|||
{
|
||||
if (!_instance)
|
||||
{
|
||||
lumiera_error_set(LUMIERA_ERROR_FACADE_LIFECYCLE, 0);
|
||||
lumiera_error_set(LUMIERA_ERROR_LIFECYCLE, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,9 @@
|
|||
#include <memory>
|
||||
|
||||
|
||||
namespace lumiera {
|
||||
class Play;
|
||||
}
|
||||
namespace proc {
|
||||
namespace play {
|
||||
|
||||
|
|
@ -54,14 +57,9 @@ namespace play {
|
|||
//using std::shared_ptr;
|
||||
using std::unique_ptr;
|
||||
|
||||
|
||||
class Play;
|
||||
class PlayService;
|
||||
|
||||
|
||||
//typedef lib::ScopedPtrVect<DisplayerSlot> DisplayerTab;
|
||||
|
||||
|
||||
|
||||
/**************************************************//**
|
||||
* Management of external Output connections.
|
||||
|
|
@ -73,7 +71,7 @@ namespace play {
|
|||
, public lib::Sync<>
|
||||
{
|
||||
using SigTerm = lumiera::Subsys::SigTerm;
|
||||
using PlayServiceHandle = lib::DependInject<Play>::ServiceInstance<PlayService>;
|
||||
using PlayServiceHandle = lib::DependInject<lumiera::Play>::ServiceInstance<PlayService>;
|
||||
|
||||
PlayServiceHandle player_;
|
||||
///////TODO more components and connections to manage here...
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ namespace lumiera {
|
|||
|
||||
Play::~Play() { } // emit VTables here...
|
||||
|
||||
/** static storage for the facade access front-end */
|
||||
lib::Depend<Play> Play::facade;
|
||||
|
||||
}//(End) namespace lumiera
|
||||
|
||||
|
|
|
|||
|
|
@ -68,7 +68,6 @@ namespace proc {
|
|||
namespace play {
|
||||
|
||||
using std::string;
|
||||
using lumiera::facade::InterfaceFacadeLink;
|
||||
//using lumiera::Subsys;
|
||||
//using lumiera::Display;
|
||||
//using lumiera::DummyPlayer;
|
||||
|
|
|
|||
|
|
@ -28508,8 +28508,8 @@
|
|||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1522697230906" ID="ID_1495746023" MODIFIED="1522697253419" TEXT="alle Bindings sind vom Instance-Handle zu entkoppeln"/>
|
||||
<node CREATED="1522697255215" ID="ID_1841184306" MODIFIED="1522697273416" TEXT="für jedes Binding soll eine TranslationUnit frei wählbar sein"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522697350106" ID="ID_138544872" MODIFIED="1522697365816" TEXT="Technik zur Entkoppelung benötigt">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1522697350106" ID="ID_138544872" MODIFIED="1522724906505" TEXT="Technik zur Entkoppelung benötigt">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -28551,14 +28551,14 @@
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522697646161" ID="ID_1020206021" MODIFIED="1522697654713" TEXT="Technologie">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1522697675229" ID="ID_1605136526" MODIFIED="1522697732617" STYLE="fork" TEXT="Indirektion notwendig">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522697690651" ID="ID_1244533717" MODIFIED="1522697720935" TEXT="Erzeugung">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1522697690651" ID="ID_1244533717" MODIFIED="1522724892373" TEXT="Erzeugung">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522697699297" ID="ID_891061833" MODIFIED="1522697720295" TEXT="Zerstörung">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1522697699297" ID="ID_891061833" MODIFIED="1522724893954" TEXT="Zerstörung">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522697702521" ID="ID_1874387796" MODIFIED="1522697719559" TEXT="Zugriff auf Facade(Proxy)">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1522697702521" ID="ID_1874387796" MODIFIED="1522724895488" TEXT="Zugriff auf Facade(Proxy)">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1522697743604" ID="ID_829814208" MODIFIED="1522697751286" TEXT="mögliche Lösungen">
|
||||
|
|
@ -28657,6 +28657,18 @@
|
|||
</node>
|
||||
<node CREATED="1522709579398" ID="ID_1445259032" MODIFIED="1522709595885" TEXT="kann man spezialisieren und zugleich Instantiieren?">
|
||||
<icon BUILTIN="help"/>
|
||||
<node CREATED="1522720815569" ID="ID_1906873483" MODIFIED="1522720817589" TEXT="nein"/>
|
||||
<node CREATED="1522720818625" ID="ID_693558811" MODIFIED="1522720821985" TEXT="wie schade">
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1522724948516" ID="ID_1547993807" MODIFIED="1522724964722" TEXT="explizite Instantiierung notwendig">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1522724966777" ID="ID_650754221" MODIFIED="1522724973013" TEXT="häßlich und umständlich"/>
|
||||
<node CREATED="1522724973625" ID="ID_1016558302" MODIFIED="1522724976780" TEXT="Code dupliziert"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1522724977440" ID="ID_686663661" MODIFIED="1522724991255" TEXT="bessere Lösung?">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -28711,23 +28723,25 @@
|
|||
<font ITALIC="true" NAME="SansSerif" SIZE="12"/>
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node CREATED="1522709629935" ID="ID_151551561" MODIFIED="1522709645169" TEXT="Lösung zum Entkoppeln der Proxy-Definition"/>
|
||||
<node COLOR="#338800" CREATED="1522709629935" ID="ID_151551561" MODIFIED="1522724915985" TEXT="Lösung zum Entkoppeln der Proxy-Definition">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522709654308" ID="ID_1059248114" MODIFIED="1522709793386" TEXT="bestehenden Code umschreiben">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522709669498" ID="ID_9288802" MODIFIED="1522709700910" TEXT="alle bestehenden Proxies">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522635397309" ID="ID_590180071" MODIFIED="1522709705713" TEXT="SessionCommandService">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1522709669498" ID="ID_9288802" MODIFIED="1522724927071" TEXT="alle bestehenden Proxies">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1522635397309" ID="ID_590180071" MODIFIED="1522724921600" TEXT="SessionCommandService">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522635417932" ID="ID_1711611771" MODIFIED="1522709706659" TEXT="DisplayService">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1522635417932" ID="ID_1711611771" MODIFIED="1522724922888" TEXT="DisplayService">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522635433910" ID="ID_444280759" MODIFIED="1522709723772" TEXT="GuiNotification">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1522635433910" ID="ID_444280759" MODIFIED="1522724924183" TEXT="GuiNotification">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1522635450269" ID="ID_1963184158" MODIFIED="1522709725003" TEXT="DummyPlayerService">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1522635450269" ID="ID_1963184158" MODIFIED="1522724925717" TEXT="DummyPlayerService">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1522709729297" ID="ID_1293938610" MODIFIED="1522717901995" TEXT="Facade-Accessoren auf lib::Depend umstellen">
|
||||
|
|
|
|||
Loading…
Reference in a new issue