EventInfo.cc revision 10447
112340Szulian@eit.uni-kl.de#include "model/EventInfo.h"
212340Szulian@eit.uni-kl.de
312340Szulian@eit.uni-kl.de#include "model/PortInfo.h"
412340Szulian@eit.uni-kl.de#include "model/TransitionInfo.h"
512340Szulian@eit.uni-kl.de
612340Szulian@eit.uni-kl.denamespace DSENT
712340Szulian@eit.uni-kl.de{
812340Szulian@eit.uni-kl.de    EventInfo::EventInfo(const String& event_name_, const Map<PortInfo*>* port_infos_)
912340Szulian@eit.uni-kl.de        : m_event_name_(event_name_)
1012340Szulian@eit.uni-kl.de    {
1112340Szulian@eit.uni-kl.de        m_trans_info_map_ = new Map<TransitionInfo>;
1212340Szulian@eit.uni-kl.de
1312340Szulian@eit.uni-kl.de        // Get the name of each input port and add a transition info for it
1412340Szulian@eit.uni-kl.de        Map<PortInfo*>::ConstIterator it_begin = port_infos_->begin();
1512340Szulian@eit.uni-kl.de        Map<PortInfo*>::ConstIterator it_end = port_infos_->end();
1612340Szulian@eit.uni-kl.de        Map<PortInfo*>::ConstIterator it;
1712340Szulian@eit.uni-kl.de        for(it = it_begin; it != it_end; ++it)
1812340Szulian@eit.uni-kl.de        {
1912340Szulian@eit.uni-kl.de            const String& port_name = it->first;
2012340Szulian@eit.uni-kl.de            m_trans_info_map_->set(port_name, TransitionInfo());
2112340Szulian@eit.uni-kl.de        }
2212340Szulian@eit.uni-kl.de    }
2312340Szulian@eit.uni-kl.de
2412340Szulian@eit.uni-kl.de    EventInfo::~EventInfo()
2512340Szulian@eit.uni-kl.de    {
2612340Szulian@eit.uni-kl.de        delete m_trans_info_map_;
2712340Szulian@eit.uni-kl.de    }
2812340Szulian@eit.uni-kl.de
2912340Szulian@eit.uni-kl.de    const String& EventInfo::getEventName() const
3012340Szulian@eit.uni-kl.de    {
3112340Szulian@eit.uni-kl.de        return m_event_name_;
3212340Szulian@eit.uni-kl.de    }
3312340Szulian@eit.uni-kl.de
3412340Szulian@eit.uni-kl.de    void EventInfo::setTransitionInfo(const String& port_name_, const TransitionInfo& trans_info_)
3512340Szulian@eit.uni-kl.de    {
3612340Szulian@eit.uni-kl.de        ASSERT(m_trans_info_map_->keyExist(port_name_), "[Error] " + getEventName() +
3712340Szulian@eit.uni-kl.de                " -> Port (" + port_name_ + ") does not exist!");
3812340Szulian@eit.uni-kl.de
3912340Szulian@eit.uni-kl.de        m_trans_info_map_->set(port_name_, trans_info_);
4012340Szulian@eit.uni-kl.de        return;
4112340Szulian@eit.uni-kl.de    }
4212340Szulian@eit.uni-kl.de
4312340Szulian@eit.uni-kl.de    void EventInfo::setStaticTransitionInfo(const String& port_name_)
4412340Szulian@eit.uni-kl.de    {
4512340Szulian@eit.uni-kl.de        ASSERT(m_trans_info_map_->keyExist(port_name_), "[Error] " + getEventName() +
4612340Szulian@eit.uni-kl.de                " -> Port (" + port_name_ + ") does not exist!");
4712340Szulian@eit.uni-kl.de
4812340Szulian@eit.uni-kl.de        m_trans_info_map_->set(port_name_, TransitionInfo(0.5, 0.0, 0.5));
4912340Szulian@eit.uni-kl.de        return;
5012340Szulian@eit.uni-kl.de    }
5112340Szulian@eit.uni-kl.de
5212340Szulian@eit.uni-kl.de    void EventInfo::setRandomTransitionInfos()
5312340Szulian@eit.uni-kl.de    {
5412340Szulian@eit.uni-kl.de        Map<TransitionInfo>::Iterator it_begin = m_trans_info_map_->begin();
5512340Szulian@eit.uni-kl.de        Map<TransitionInfo>::Iterator it_end = m_trans_info_map_->end();
5612340Szulian@eit.uni-kl.de        Map<TransitionInfo>::Iterator it;
5712340Szulian@eit.uni-kl.de        for(it = it_begin; it != it_end; ++it)
5812340Szulian@eit.uni-kl.de        {
5912340Szulian@eit.uni-kl.de            TransitionInfo& trans_info = it->second;
6012340Szulian@eit.uni-kl.de            trans_info = TransitionInfo();
6112340Szulian@eit.uni-kl.de        }
6212340Szulian@eit.uni-kl.de        return;
6312340Szulian@eit.uni-kl.de    }
6412340Szulian@eit.uni-kl.de
6512340Szulian@eit.uni-kl.de    void EventInfo::setStaticTransitionInfos()
6612340Szulian@eit.uni-kl.de    {
6712340Szulian@eit.uni-kl.de        Map<TransitionInfo>::Iterator it_begin = m_trans_info_map_->begin();
6812340Szulian@eit.uni-kl.de        Map<TransitionInfo>::Iterator it_end = m_trans_info_map_->end();
6912340Szulian@eit.uni-kl.de        Map<TransitionInfo>::Iterator it;
7012340Szulian@eit.uni-kl.de        for(it = it_begin; it != it_end; ++it)
7112340Szulian@eit.uni-kl.de        {
7212340Szulian@eit.uni-kl.de            TransitionInfo& trans_info = it->second;
7312340Szulian@eit.uni-kl.de            trans_info = TransitionInfo(0.5, 0.0, 0.5);
7412340Szulian@eit.uni-kl.de        }
7512340Szulian@eit.uni-kl.de        return;
7612340Szulian@eit.uni-kl.de    }
7712340Szulian@eit.uni-kl.de
7812340Szulian@eit.uni-kl.de    const TransitionInfo& EventInfo::getTransitionInfo(const String& port_name_) const
7912340Szulian@eit.uni-kl.de    {
8012340Szulian@eit.uni-kl.de        ASSERT(m_trans_info_map_->keyExist(port_name_), "[Error] " + getEventName() +
8112340Szulian@eit.uni-kl.de                " -> Port (" + port_name_ + ") does not exist!");
8212340Szulian@eit.uni-kl.de
8312340Szulian@eit.uni-kl.de        return m_trans_info_map_->get(port_name_);
84    }
85} // namespace DSENT
86
87