9 #ifndef __DIADES__AUTOMATA__EXPERIMENTAL__EVENTINSERTER__HH__ 10 #define __DIADES__AUTOMATA__EXPERIMENTAL__EVENTINSERTER__HH__ 16 namespace Experimental
30 template<
typename Fsm>
35 using EventId =
typename Fsm::EventPropertyId;
36 using EventMap = std::unordered_map<EventId, EventId>;
102 auto it = _eventOf.find(evt);
103 if(it == _eventOf.end())
106 _target->insertEventPropertyId(it->second);
122 virtual typename EventMap::iterator
126 return _eventOf.emplace(evt, evt).first;
140 template<
typename _Fsm,
typename _EventManager>
146 using EM = _EventManager;
195 const EM& sourceManager,
196 EM & targetManager) :
EI(source, target),
197 _sourceManager(
Diades::Utils::
Ptr<
EM>::get(sourceManager)),
198 _targetManager(
Diades::Utils::
Ptr<
EM>::get(targetManager))
213 virtual typename EI::EventMap::iterator
221 return EI::_eventOf.emplace(evt, _targetManager->eventId(_sourceManager->getEvent(evt))).first;
Diades::Utils::Ptr< EM >::ConstP _sourceManager
FaultyEventStateMachine< CandidateId, EventInfoId > Fsm
typename Diades::Utils::Ptr< _Fsm >::P TargetPtr
EventInserter(const Fsm &source, Fsm &target)
typename Diades::Utils::Ptr< _Fsm >::ConstP SourcePtr
virtual EI::EventMap::iterator generateEvent(typename EI::EventId evt)
std::unordered_map< EventId, EventId > EventMap
EventId insertEvent(EventId evt)
typename _Fsm ::EventPropertyId EventId
Diades::Utils::Ptr< EM >::P _targetManager
Namespace of the Diades project.
ManagedEventInserter(const Fsm &source, Fsm &target, const EM &sourceManager, EM &targetManager)
virtual EventMap::iterator generateEvent(EventId evt)
EventInserter & operator=(EventInserter const &other)=default