ifw-slm 0.1.2
 
Loading...
Searching...
No Matches
ifw::slm::MalRequestLoopActivity< Interface > Class Template Reference

#include <malRequestActivity.hpp>

Inheritance diagram for ifw::slm::MalRequestLoopActivity< Interface >:
ifw::slm::BaseLoopExecuteActivity ifw::slm::KillableThreadActivity

Public Member Functions

 MalRequestLoopActivity (const std::string &id, rad::SMAdapter &sm, DataContext &data, int loop_index, LoopCompletionHandler *completion_handler=nullptr, const std::string &endpoint_param="params/cmd_endpoint", int connect_timeout_ms=5000, int reply_timeout_ms=20000)
 
- Public Member Functions inherited from ifw::slm::BaseLoopExecuteActivity
 BaseLoopExecuteActivity (const std::string &id, rad::SMAdapter &sm, DataContext &data, int loop_index, LoopCompletionHandler *completion_handler=nullptr)
 
virtual ~BaseLoopExecuteActivity ()=default
 
void Run () override
 
 BaseLoopExecuteActivity (const BaseLoopExecuteActivity &)=delete
 
BaseLoopExecuteActivityoperator= (const BaseLoopExecuteActivity &)=delete
 
template<typename T>
GetLoopParam (const std::string &name) const
 
template<typename T>
GetLoopParam (const std::string &name, const T &default_value) const
 
template<typename T>
bool ReadLoopOldb (const std::string &name, T &out) const
 
- Public Member Functions inherited from ifw::slm::KillableThreadActivity
 KillableThreadActivity (const KillableThreadActivity &)=delete
 
KillableThreadActivityoperator= (const KillableThreadActivity &)=delete
 
pthread_t GetNativeHandle () const override
 
bool IsThreadJoined () const override
 

Protected Member Functions

std::string Endpoint () const
 
auto Remote ()
 
rad::cii::Requestor< Interface > & Requestor ()
 
- Protected Member Functions inherited from ifw::slm::BaseLoopExecuteActivity
virtual bool DoExecute ()=0
 
- Protected Member Functions inherited from ifw::slm::KillableThreadActivity
void StartThread () override
 
void JoinThread () override
 

Additional Inherited Members

- Protected Attributes inherited from ifw::slm::BaseLoopExecuteActivity
rad::SMAdapter & m_sm
 
DataContextm_data
 
int m_loop_index
 
LoopStateData m_loop_state
 
LoopCompletionHandlerm_completion_handler
 
log4cplus::Logger m_logger = log4cplus::Logger::getInstance(LOGGER_NAME + ".BaseLoopExecuteActivity")
 
- Protected Attributes inherited from ifw::slm::KillableThreadActivity
std::atomic< bool > m_killed {false}
 
std::atomic< int > m_thread_generation {0}
 

Detailed Description

template<class Interface>
class ifw::slm::MalRequestLoopActivity< Interface >

Execute-activity base that owns a rad::cii::Requestor<Interface>.

Template Parameters
InterfaceThe async MAL client interface (e.g. fcfif::AppCmdsAsync).

Constructor & Destructor Documentation

◆ MalRequestLoopActivity()

template<class Interface>
ifw::slm::MalRequestLoopActivity< Interface >::MalRequestLoopActivity ( const std::string & id,
rad::SMAdapter & sm,
DataContext & data,
int loop_index,
LoopCompletionHandler * completion_handler = nullptr,
const std::string & endpoint_param = "params/cmd_endpoint",
int connect_timeout_ms = 5000,
int reply_timeout_ms = 20000 )
inline
Parameters
endpoint_paramPer-loop config parameter holding the target URI (default "params/cmd_endpoint").
connect_timeout_msConnection timeout applied to the requestor.
reply_timeout_msReply timeout applied to the requestor.

Member Function Documentation

◆ Endpoint()

template<class Interface>
std::string ifw::slm::MalRequestLoopActivity< Interface >::Endpoint ( ) const
inlineprotected

Endpoint URI for the requestor. The configured value may be a literal MAL URI (used as-is) or a "service[/path]" reference resolved at runtime via Nomad/Consul (e.g. "fcs-req/AppCmds").

◆ Remote()

template<class Interface>
auto ifw::slm::MalRequestLoopActivity< Interface >::Remote ( )
inlineprotected

The remote interface proxy (creates the requestor on first use).

◆ Requestor()

template<class Interface>
rad::cii::Requestor< Interface > & ifw::slm::MalRequestLoopActivity< Interface >::Requestor ( )
inlineprotected

Lazily-created requestor for the subsystem interface.


The documentation for this class was generated from the following file: