EventInfo.cc revision 10447
110447Snilay@cs.wisc.edu#include "model/EventInfo.h" 210447Snilay@cs.wisc.edu 310447Snilay@cs.wisc.edu#include "model/PortInfo.h" 410447Snilay@cs.wisc.edu#include "model/TransitionInfo.h" 510447Snilay@cs.wisc.edu 610447Snilay@cs.wisc.edunamespace DSENT 710447Snilay@cs.wisc.edu{ 810447Snilay@cs.wisc.edu EventInfo::EventInfo(const String& event_name_, const Map<PortInfo*>* port_infos_) 910447Snilay@cs.wisc.edu : m_event_name_(event_name_) 1010447Snilay@cs.wisc.edu { 1110447Snilay@cs.wisc.edu m_trans_info_map_ = new Map<TransitionInfo>; 1210447Snilay@cs.wisc.edu 1310447Snilay@cs.wisc.edu // Get the name of each input port and add a transition info for it 1410447Snilay@cs.wisc.edu Map<PortInfo*>::ConstIterator it_begin = port_infos_->begin(); 1510447Snilay@cs.wisc.edu Map<PortInfo*>::ConstIterator it_end = port_infos_->end(); 1610447Snilay@cs.wisc.edu Map<PortInfo*>::ConstIterator it; 1710447Snilay@cs.wisc.edu for(it = it_begin; it != it_end; ++it) 1810447Snilay@cs.wisc.edu { 1910447Snilay@cs.wisc.edu const String& port_name = it->first; 2010447Snilay@cs.wisc.edu m_trans_info_map_->set(port_name, TransitionInfo()); 2110447Snilay@cs.wisc.edu } 2210447Snilay@cs.wisc.edu } 2310447Snilay@cs.wisc.edu 2410447Snilay@cs.wisc.edu EventInfo::~EventInfo() 2510447Snilay@cs.wisc.edu { 2610447Snilay@cs.wisc.edu delete m_trans_info_map_; 2710447Snilay@cs.wisc.edu } 2810447Snilay@cs.wisc.edu 2910447Snilay@cs.wisc.edu const String& EventInfo::getEventName() const 3010447Snilay@cs.wisc.edu { 3110447Snilay@cs.wisc.edu return m_event_name_; 3210447Snilay@cs.wisc.edu } 3310447Snilay@cs.wisc.edu 3410447Snilay@cs.wisc.edu void EventInfo::setTransitionInfo(const String& port_name_, const TransitionInfo& trans_info_) 3510447Snilay@cs.wisc.edu { 3610447Snilay@cs.wisc.edu ASSERT(m_trans_info_map_->keyExist(port_name_), "[Error] " + getEventName() + 3710447Snilay@cs.wisc.edu " -> Port (" + port_name_ + ") does not exist!"); 3810447Snilay@cs.wisc.edu 3910447Snilay@cs.wisc.edu m_trans_info_map_->set(port_name_, trans_info_); 4010447Snilay@cs.wisc.edu return; 4110447Snilay@cs.wisc.edu } 4210447Snilay@cs.wisc.edu 4310447Snilay@cs.wisc.edu void EventInfo::setStaticTransitionInfo(const String& port_name_) 4410447Snilay@cs.wisc.edu { 4510447Snilay@cs.wisc.edu ASSERT(m_trans_info_map_->keyExist(port_name_), "[Error] " + getEventName() + 4610447Snilay@cs.wisc.edu " -> Port (" + port_name_ + ") does not exist!"); 4710447Snilay@cs.wisc.edu 4810447Snilay@cs.wisc.edu m_trans_info_map_->set(port_name_, TransitionInfo(0.5, 0.0, 0.5)); 4910447Snilay@cs.wisc.edu return; 5010447Snilay@cs.wisc.edu } 5110447Snilay@cs.wisc.edu 5210447Snilay@cs.wisc.edu void EventInfo::setRandomTransitionInfos() 5310447Snilay@cs.wisc.edu { 5410447Snilay@cs.wisc.edu Map<TransitionInfo>::Iterator it_begin = m_trans_info_map_->begin(); 5510447Snilay@cs.wisc.edu Map<TransitionInfo>::Iterator it_end = m_trans_info_map_->end(); 5610447Snilay@cs.wisc.edu Map<TransitionInfo>::Iterator it; 5710447Snilay@cs.wisc.edu for(it = it_begin; it != it_end; ++it) 5810447Snilay@cs.wisc.edu { 5910447Snilay@cs.wisc.edu TransitionInfo& trans_info = it->second; 6010447Snilay@cs.wisc.edu trans_info = TransitionInfo(); 6110447Snilay@cs.wisc.edu } 6210447Snilay@cs.wisc.edu return; 6310447Snilay@cs.wisc.edu } 6410447Snilay@cs.wisc.edu 6510447Snilay@cs.wisc.edu void EventInfo::setStaticTransitionInfos() 6610447Snilay@cs.wisc.edu { 6710447Snilay@cs.wisc.edu Map<TransitionInfo>::Iterator it_begin = m_trans_info_map_->begin(); 6810447Snilay@cs.wisc.edu Map<TransitionInfo>::Iterator it_end = m_trans_info_map_->end(); 6910447Snilay@cs.wisc.edu Map<TransitionInfo>::Iterator it; 7010447Snilay@cs.wisc.edu for(it = it_begin; it != it_end; ++it) 7110447Snilay@cs.wisc.edu { 7210447Snilay@cs.wisc.edu TransitionInfo& trans_info = it->second; 7310447Snilay@cs.wisc.edu trans_info = TransitionInfo(0.5, 0.0, 0.5); 7410447Snilay@cs.wisc.edu } 7510447Snilay@cs.wisc.edu return; 7610447Snilay@cs.wisc.edu } 7710447Snilay@cs.wisc.edu 7810447Snilay@cs.wisc.edu const TransitionInfo& EventInfo::getTransitionInfo(const String& port_name_) const 7910447Snilay@cs.wisc.edu { 8010447Snilay@cs.wisc.edu ASSERT(m_trans_info_map_->keyExist(port_name_), "[Error] " + getEventName() + 8110447Snilay@cs.wisc.edu " -> Port (" + port_name_ + ") does not exist!"); 8210447Snilay@cs.wisc.edu 8310447Snilay@cs.wisc.edu return m_trans_info_map_->get(port_name_); 8410447Snilay@cs.wisc.edu } 8510447Snilay@cs.wisc.edu} // namespace DSENT 8610447Snilay@cs.wisc.edu 87