1 #include "model/EventInfo.h"
3 #include "model/PortInfo.h"
4 #include "model/TransitionInfo.h"
8 EventInfo::EventInfo(const String
& event_name_
, const Map
<PortInfo
*>* port_infos_
)
9 : m_event_name_(event_name_
)
11 m_trans_info_map_
= new Map
<TransitionInfo
>;
13 // Get the name of each input port and add a transition info for it
14 Map
<PortInfo
*>::ConstIterator it_begin
= port_infos_
->begin();
15 Map
<PortInfo
*>::ConstIterator it_end
= port_infos_
->end();
16 Map
<PortInfo
*>::ConstIterator it
;
17 for(it
= it_begin
; it
!= it_end
; ++it
)
19 const String
& port_name
= it
->first
;
20 m_trans_info_map_
->set(port_name
, TransitionInfo());
24 EventInfo::~EventInfo()
26 delete m_trans_info_map_
;
29 const String
& EventInfo::getEventName() const
34 void EventInfo::setTransitionInfo(const String
& port_name_
, const TransitionInfo
& trans_info_
)
36 ASSERT(m_trans_info_map_
->keyExist(port_name_
), "[Error] " + getEventName() +
37 " -> Port (" + port_name_
+ ") does not exist!");
39 m_trans_info_map_
->set(port_name_
, trans_info_
);
43 void EventInfo::setStaticTransitionInfo(const String
& port_name_
)
45 ASSERT(m_trans_info_map_
->keyExist(port_name_
), "[Error] " + getEventName() +
46 " -> Port (" + port_name_
+ ") does not exist!");
48 m_trans_info_map_
->set(port_name_
, TransitionInfo(0.5, 0.0, 0.5));
52 void EventInfo::setRandomTransitionInfos()
54 Map
<TransitionInfo
>::Iterator it_begin
= m_trans_info_map_
->begin();
55 Map
<TransitionInfo
>::Iterator it_end
= m_trans_info_map_
->end();
56 Map
<TransitionInfo
>::Iterator it
;
57 for(it
= it_begin
; it
!= it_end
; ++it
)
59 TransitionInfo
& trans_info
= it
->second
;
60 trans_info
= TransitionInfo();
65 void EventInfo::setStaticTransitionInfos()
67 Map
<TransitionInfo
>::Iterator it_begin
= m_trans_info_map_
->begin();
68 Map
<TransitionInfo
>::Iterator it_end
= m_trans_info_map_
->end();
69 Map
<TransitionInfo
>::Iterator it
;
70 for(it
= it_begin
; it
!= it_end
; ++it
)
72 TransitionInfo
& trans_info
= it
->second
;
73 trans_info
= TransitionInfo(0.5, 0.0, 0.5);
78 const TransitionInfo
& EventInfo::getTransitionInfo(const String
& port_name_
) const
80 ASSERT(m_trans_info_map_
->keyExist(port_name_
), "[Error] " + getEventName() +
81 " -> Port (" + port_name_
+ ") does not exist!");
83 return m_trans_info_map_
->get(port_name_
);