9 #include "appeventhandler.h"
12 #include <rtti/typeinfo.h>
14 #include <nap/datetime.h>
34 template<
typename APP,
typename HANDLER>
109 std::unique_ptr<APP> mApp =
nullptr;
110 std::unique_ptr<HANDLER> mHandler =
nullptr;
111 std::function<void(
double)> mUpdateCall;
121 template<
typename APP,
typename HANDLER>
128 template<
typename APP,
typename HANDLER>
135 template<
typename APP,
typename HANDLER>
139 assert(RTTI_OF(APP).is_derived_from(RTTI_OF(
BaseApp)));
145 mApp = std::make_unique<APP>(core);
146 mHandler = std::make_unique<HANDLER>(*mApp);
150 template<
typename APP,
typename HANDLER>
157 if (!mCore.initializeEngine(error))
159 error.fail(
"Unable to initialize engine");
165 mServicesHandle = mCore.initializeServices(error);
166 if (mServicesHandle ==
nullptr)
169 #ifdef NAP_ENABLE_PYTHON
170 if (!mCore.initializePython(error))
175 if(!error.check(app.
init(error),
"Unable to initialize application"))
179 app_event_handler.
start();
182 mUpdateCall = std::bind(&APP::update, mApp.get(), std::placeholders::_1);
192 template<
typename APP,
typename HANDLER>
200 mCore.update(mUpdateCall);
204 template<
typename APP,
typename HANDLER>
216 mServicesHandle.reset(
nullptr);
223 template<
typename APP,
typename HANDLER>
HANDLER & getHandler()
Definition: servicerunner.h:129
virtual void start()
Definition: appeventhandler.h:48
Definition: servicerunner.h:35
ServiceRunner(nap::Core &core)
Definition: servicerunner.h:136
virtual void process()
Definition: appeventhandler.h:56
int shutdown()
Definition: servicerunner.h:205
APP & getApp()
Definition: servicerunner.h:122
Definition: errorstate.h:19
Definition: appeventhandler.h:19
const Core & getCore() const
Definition: servicerunner.h:100
void update()
Definition: servicerunner.h:193
virtual bool init(utility::ErrorState &error)
Definition: app.h:51
virtual int shutdown()
Definition: app.h:80
int exitCode() const
Definition: servicerunner.h:85
Definition: templateapp.h:17
virtual void shutdown()
Definition: appeventhandler.h:61
ServiceRunner & operator=(const ServiceRunner &)=delete
virtual ~ServiceRunner()
Definition: servicerunner.h:224
Core & getCore()
Definition: servicerunner.h:95
std::unique_ptr< Services > ServicesHandle
Definition: core.h:89
bool init(utility::ErrorState &error)
Definition: servicerunner.h:151