11#ifndef IFWSLM_BASE_LOOP_ACTIONS_HPP
12#define IFWSLM_BASE_LOOP_ACTIONS_HPP
20#include <rad/configurableActionGroup.hpp>
21#include <rad/application.hpp>
22#include <scxml4cpp/Context.h>
49 rad::Application& appl,
50 rad::ConfigurableActionMgr& action_mgr,
53 std::shared_ptr<LoopCompletionHandler> completion_handler =
nullptr);
58 void Configure(
const std::vector<std::string>& keys)
override;
64 virtual void Init(scxml4cpp::Context* c);
65 virtual void Execute(scxml4cpp::Context* c);
66 virtual void Complete(scxml4cpp::Context* c);
67 virtual void Abort(scxml4cpp::Context* c);
92 T
GetLoopParam(
const std::string& name,
const T& default_value)
const {
157 T
GetLoopParam(
const std::string& name,
const T& default_value)
const {
206 rad::Application& appl,
207 rad::ConfigurableActionMgr& action_mgr,
210 std::shared_ptr<LoopCompletionHandler> completion_handler =
nullptr);
215 void Configure(
const std::vector<std::string>& keys)
override;
217 virtual void Execute(scxml4cpp::Context* c);
218 virtual void Complete(scxml4cpp::Context* c);
219 virtual void Abort(scxml4cpp::Context* c);
247template<
int LOOP_INDEX>
253 rad::Application& appl,
254 rad::ConfigurableActionMgr& action_mgr,
257 std::shared_ptr<LoopCompletionHandler> completion_handler)
258 :
base_type(name, appl, action_mgr, data, loop_index, completion_handler) {
261 "Creating ActionsLoop" << LOOP_INDEX <<
"Suspended");
268 void Execute(scxml4cpp::Context* c)
override {
271 "Loop " <<
m_loop_index <<
" Suspended - Execute called");
278 "Loop " <<
m_loop_index <<
" Suspended - Complete called");
282 void Abort(scxml4cpp::Context* c)
override {
302 rad::Application& appl,
303 rad::ConfigurableActionMgr& action_mgr,
306 std::shared_ptr<LoopCompletionHandler> completion_handler =
nullptr);
311 void Configure(
const std::vector<std::string>& keys)
override;
313 virtual void Execute(scxml4cpp::Context* c);
314 virtual void Complete(scxml4cpp::Context* c);
315 virtual void Abort(scxml4cpp::Context* c);
317 virtual void CycleError(scxml4cpp::Context* c);
331 T
GetLoopParam(
const std::string& name,
const T& default_value)
const {
Definition baseLoopActions.hpp:248
ActionsLoopSuspended(const std::string &name, rad::Application &appl, rad::ConfigurableActionMgr &action_mgr, DataContext &data, int loop_index, std::shared_ptr< LoopCompletionHandler > completion_handler)
Definition baseLoopActions.hpp:252
ActionsLoopSuspended & operator=(const ActionsLoopSuspended &)=delete
BaseLoopSuspendedActions base_type
Definition baseLoopActions.hpp:250
void Abort(scxml4cpp::Context *c) override
Definition baseLoopActions.hpp:282
ActionsLoopSuspended(const ActionsLoopSuspended &)=delete
~ActionsLoopSuspended() override
Definition baseLoopActions.hpp:264
void Complete(scxml4cpp::Context *c) override
Definition baseLoopActions.hpp:275
void Execute(scxml4cpp::Context *c) override
Definition baseLoopActions.hpp:268
virtual void Abort(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:67
rad::Application & m_appl
Definition baseLoopActions.hpp:97
T GetLoopParam(const std::string &name, const T &default_value) const
Definition baseLoopActions.hpp:92
DataContext & m_data
Definition baseLoopActions.hpp:99
int m_loop_index
Definition baseLoopActions.hpp:100
rad::ConfigurableActionMgr & m_action_mgr
Definition baseLoopActions.hpp:98
std::shared_ptr< LoopCompletionHandler > m_completion_handler
Definition baseLoopActions.hpp:101
virtual void OnLoopOpen()
Definition baseLoopActions.cpp:79
virtual ~BaseLoopActions()=default
virtual void Complete(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:61
void Configure(const std::vector< std::string > &keys) override
Definition baseLoopActions.cpp:40
BaseLoopActions(const std::string &name, rad::Application &appl, rad::ConfigurableActionMgr &action_mgr, DataContext &data, int loop_index, std::shared_ptr< LoopCompletionHandler > completion_handler=nullptr)
Definition baseLoopActions.cpp:20
virtual void OnLoopSuspend()
Definition baseLoopActions.cpp:89
virtual void Execute(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:49
BaseLoopActions & operator=(const BaseLoopActions &)=delete
virtual void OnLoopClose()
Definition baseLoopActions.cpp:84
T GetLoopParam(const std::string &name) const
Definition baseLoopActions.hpp:87
BaseLoopActions(const BaseLoopActions &)=delete
virtual void OnCycleError()
Definition baseLoopActions.cpp:102
void Initialize() override
Definition baseLoopActions.cpp:36
virtual void OnCycleComplete(bool success)
Definition baseLoopActions.cpp:98
virtual void InstallTimer(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:73
virtual bool DoExecute()
Definition baseLoopActions.cpp:54
virtual void OnCycleStart()
Definition baseLoopActions.cpp:93
LoopStateData m_loop_state
Definition baseLoopActions.hpp:102
virtual void Init(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:44
rad::Application & m_appl
Definition baseLoopActions.hpp:336
BaseLoopCloseActions & operator=(const BaseLoopCloseActions &)=delete
T GetLoopParam(const std::string &name, const T &default_value) const
Definition baseLoopActions.hpp:331
virtual void InstallTimer(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:231
BaseLoopCloseActions(const std::string &name, rad::Application &appl, rad::ConfigurableActionMgr &action_mgr, DataContext &data, int loop_index, std::shared_ptr< LoopCompletionHandler > completion_handler=nullptr)
Definition baseLoopActions.cpp:185
virtual void OnCycleComplete(bool success)
Definition baseLoopActions.cpp:257
virtual void OnLoopOpen()
Definition baseLoopActions.cpp:238
T GetLoopParam(const std::string &name) const
Definition baseLoopActions.hpp:326
virtual void CycleError(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:265
virtual void OnCycleError()
Definition baseLoopActions.cpp:261
int m_loop_index
Definition baseLoopActions.hpp:339
virtual void Complete(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:215
virtual void Abort(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:222
BaseLoopCloseActions(const BaseLoopCloseActions &)=delete
void Initialize() override
Definition baseLoopActions.cpp:201
virtual void OnLoopSuspend()
Definition baseLoopActions.cpp:248
rad::ConfigurableActionMgr & m_action_mgr
Definition baseLoopActions.hpp:337
virtual void OnCycleStart()
Definition baseLoopActions.cpp:252
void Configure(const std::vector< std::string > &keys) override
Definition baseLoopActions.cpp:205
LoopStateData m_loop_state
Definition baseLoopActions.hpp:341
DataContext & m_data
Definition baseLoopActions.hpp:338
virtual ~BaseLoopCloseActions()=default
virtual void OnLoopClose()
Definition baseLoopActions.cpp:243
std::shared_ptr< LoopCompletionHandler > m_completion_handler
Definition baseLoopActions.hpp:340
virtual void Execute(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:209
Definition baseLoopActions.hpp:120
rad::SMAdapter & m_sm
Definition baseLoopActions.hpp:188
virtual bool DoExecute()=0
DataContext & m_data
Definition baseLoopActions.hpp:189
virtual ~BaseLoopExecuteActivity()=default
log4cplus::Logger m_logger
Definition baseLoopActions.hpp:195
BaseLoopExecuteActivity(const BaseLoopExecuteActivity &)=delete
int m_loop_index
Definition baseLoopActions.hpp:190
LoopCompletionHandler * m_completion_handler
Definition baseLoopActions.hpp:192
bool ReadLoopOldb(const std::string &name, T &out) const
Definition baseLoopActions.hpp:168
void Run() override
Definition baseLoopActions.cpp:311
LoopStateData m_loop_state
Definition baseLoopActions.hpp:191
BaseLoopExecuteActivity & operator=(const BaseLoopExecuteActivity &)=delete
BaseLoopExecuteActivity(const std::string &id, rad::SMAdapter &sm, DataContext &data, int loop_index, LoopCompletionHandler *completion_handler=nullptr)
Definition baseLoopActions.cpp:297
T GetLoopParam(const std::string &name, const T &default_value) const
Definition baseLoopActions.hpp:157
T GetLoopParam(const std::string &name) const
Definition baseLoopActions.hpp:149
int m_loop_index
Definition baseLoopActions.hpp:229
virtual ~BaseLoopSuspendedActions()=default
virtual void OnLoopClose()
Definition baseLoopActions.cpp:161
LoopStateData m_loop_state
Definition baseLoopActions.hpp:231
std::shared_ptr< LoopCompletionHandler > m_completion_handler
Definition baseLoopActions.hpp:230
virtual void OnLoopOpen()
Definition baseLoopActions.cpp:156
rad::Application & m_appl
Definition baseLoopActions.hpp:226
virtual void InstallTimer(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:150
virtual void Execute(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:132
BaseLoopSuspendedActions & operator=(const BaseLoopSuspendedActions &)=delete
virtual void OnCycleStart()
Definition baseLoopActions.cpp:170
virtual void OnCycleComplete(bool success)
Definition baseLoopActions.cpp:175
virtual void Complete(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:139
void Initialize() override
Definition baseLoopActions.cpp:124
virtual void OnCycleError()
Definition baseLoopActions.cpp:179
BaseLoopSuspendedActions(const std::string &name, rad::Application &appl, rad::ConfigurableActionMgr &action_mgr, DataContext &data, int loop_index, std::shared_ptr< LoopCompletionHandler > completion_handler=nullptr)
Definition baseLoopActions.cpp:108
rad::ConfigurableActionMgr & m_action_mgr
Definition baseLoopActions.hpp:227
BaseLoopSuspendedActions(const BaseLoopSuspendedActions &)=delete
virtual void OnLoopSuspend()
Definition baseLoopActions.cpp:166
DataContext & m_data
Definition baseLoopActions.hpp:228
virtual void Abort(scxml4cpp::Context *c)
Definition baseLoopActions.cpp:144
void Configure(const std::vector< std::string > &keys) override
Definition baseLoopActions.cpp:128
Definition dataContext.hpp:29
KillableThreadActivity(const KillableThreadActivity &)=delete
Interface for handling loop completion events.
Definition loopCompletionHandler.hpp:32
Definition loopStateData.hpp:22
DataContext class header file.
KillableThreadActivity - a thread-based activity with timed join.
LoopStateData class for managing per-loop OLDB runtime state.
Definition actionMgr.cpp:29
ActionsLoopSuspended< 3 > ActionsLoop3S
Definition baseLoopActions.hpp:355
ActionsLoopSuspended< 4 > ActionsLoop4S
Definition baseLoopActions.hpp:356
T GetLoopParamFromConfig(const rad::Config &config, int loop_index, const std::string &name)
Definition slConfig.hpp:217
ActionsLoopSuspended< 1 > ActionsLoop1S
Definition baseLoopActions.hpp:353
std::string GetLoopOldbKey(int loop_index, const std::string ¶m_name)
Definition oldbInterface.cpp:23
ActionsLoopSuspended< 7 > ActionsLoop7S
Definition baseLoopActions.hpp:359
ActionsLoopSuspended< 5 > ActionsLoop5S
Definition baseLoopActions.hpp:357
ActionsLoopSuspended< 6 > ActionsLoop6S
Definition baseLoopActions.hpp:358
log4cplus::Logger & GetLogger()
Definition logger.cpp:14
ActionsLoopSuspended< 9 > ActionsLoop9S
Definition baseLoopActions.hpp:361
const std::string LOGGER_NAME
Definition logger.hpp:19
ActionsLoopSuspended< 8 > ActionsLoop8S
Definition baseLoopActions.hpp:360
ActionsLoopSuspended< 2 > ActionsLoop2S
Definition baseLoopActions.hpp:354
Secondary Loop configuration constants and helper functions.