38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
/*
|
|
* TwoActionLoggerInitializer.cpp
|
|
*
|
|
* Created on: 24 ÿíâ. 2022 ã.
|
|
* Author: sozonov
|
|
*/
|
|
|
|
#include "TwoSignalActionLogger.hh"
|
|
|
|
#include "../../systemic/ActionLogger.hpp"
|
|
#include "../../systemic/MemberFuntion.hpp"
|
|
|
|
application::log::TwoSignalActionLogger::TwoSignalActionLogger( const Links & links ) : links( links ) {}
|
|
|
|
|
|
bool application::log::TwoSignalActionLogger::input( Environment & env ) {
|
|
|
|
return ( ( signal_f = env.signals.get( links.first_signal ) ) and
|
|
( signal_s = env.signals.get( links.second_signal ) ) );
|
|
|
|
}
|
|
|
|
void application::log::TwoSignalActionLogger::build( Environment & env ) {
|
|
typedef systemic::TwoSignalActionLogger SigActionLogger;
|
|
|
|
SigActionLogger * loggable = memories::instance_object<SigActionLogger>( env.static_setup_ma, *signal_f, *signal_s );
|
|
|
|
|
|
env.rholder.share<logging::ILoggable>(*loggable, links.signals_log);
|
|
|
|
|
|
typedef systemic::detail::MemberFuntion<SigActionLogger, void, &SigActionLogger::logging > ActionLogging;
|
|
ActionLogging * action_log = memories::instance_object<ActionLogging>( env.static_setup_ma, *loggable );
|
|
env.rholder.share<Action>( *action_log, links.logging );
|
|
|
|
|
|
}
|