RTC Toolkit 6.0.0-pre2
Loading...
Searching...
No Matches
businessLogic.hpp
Go to the documentation of this file.
1
12
13#ifndef RTCTK_EXAMPLEDATATASK_BUSINESSLOGIC_HPP
14#define RTCTK_EXAMPLEDATATASK_BUSINESSLOGIC_HPP
15
16#include "computation.hpp"
17
22
23namespace rtctk::exampleDataTask {
24
25using namespace rtctk::componentFramework;
26
28
29class BusinessLogic : public LifeCycle::BizLogicIf, public Computation::ResultIf {
30public:
32
33 BusinessLogic(const std::string& name, ServiceContainer& services);
34
35 // activities
36 void ActivityStarting(StopToken st) override;
38 void ActivityEnabling(StopToken st) override;
39 void ActivityDisabling(StopToken st) override;
41 void ActivityGoingIdle(StopToken st) override;
42 void ActivityRunning(StopToken st) override;
43 void ActivityRecovering(StopToken st) override;
44 void ActivityUpdating(StopToken st, const JsonPayload& args) override;
45
46private:
47 void OnResultAvailable(const Computation::Result& result) override;
48
49 std::string m_name;
50 ServiceContainer& m_services;
51 RuntimeRepoIf& m_rtr;
52 EventServiceIf& m_esv;
53
54 // event publisher for all kinds of configuration events
55 std::unique_ptr<EventPublisherIf> m_ev_pub;
56
57 // rtr datapoints (inputs)
58 DataPointPath m_dp_queue_name;
59 DataPointPath m_dp_thread_policies;
60 DataPointPath m_dp_samples_to_read;
61 DataPointPath m_dp_samples_to_skip;
62 DataPointPath m_dp_sample_timeout;
63 DataPointPath m_dp_slopes;
64 DataPointPath m_dp_modes;
65 DataPointPath m_dp_s2m;
66
67 // rtr datapoints (outputs)
68 DataPointPath m_dp_avg_slopes;
69 DataPointPath m_dp_avg_modes;
70
71 std::unique_ptr<Computation> m_computation;
72};
73
74} // namespace rtctk::exampleDataTask
75
76#endif // RTCTK_EXAMPLEDATATASK_BUSINESSLOGIC_HPP
This class provides a wrapper for a data point path.
Definition dataPointPath.hpp:77
Interface class for providing pub/sub facilities for JSON events.
Definition eventServiceIf.hpp:29
Base interface for all Runtime Configuration Repository adapters.
Definition runtimeRepoIf.hpp:27
Container class that holds services of any type.
Definition serviceContainer.hpp:39
Definition businessLogic.hpp:29
void ActivityEnabling(StopToken st) override
void ActivityGoingIdle(StopToken st) override
void ActivityStarting(StopToken st) override
void ActivityRunning(StopToken st) override
void ActivityInitialising(StopToken st) override
void ActivityGoingRunning(StopToken st) override
LifeCycle ComponentType
Definition businessLogic.hpp:31
void ActivityDisabling(StopToken st) override
void ActivityRecovering(StopToken st) override
void ActivityUpdating(StopToken st, const JsonPayload &args) override
BusinessLogic(const std::string &name, ServiceContainer &services)
Low-level interface of the event service.
rad::StopToken StopToken
Definition stopToken.hpp:20
nlohmann::json JsonPayload
Type requirements:
Definition jsonPayload.hpp:25
Definition businessLogic.cpp:27
Runnable< RtcComponent > LifeCycle
Definition businessLogic.hpp:27
Lifecycle of a basic 'RtcComponent'.
Lifecycle Extension that makes an RTC Component 'Runnable'.
Header file for RuntimeRepoIf, which defines the API for RuntimeRepoAdapters.
Life cycle extension to make RtcComponent Runnable.
Definition runnable.hpp:31
Definition computation.hpp:43
Computation class of the example data task.