示例#1
0
EventTypeList EventManager::GetTypeList() const
{
	if (m_typeList.size() == 0)
		return EventTypeList();                  // no types have been registered

	EventTypeList result;
	result.reserve(m_typeList.size());

	for (EventTypeSet::const_iterator i = m_typeList.begin(); i != m_typeList.end(); ++i)
		result.push_back(*i);

	return result;
}
示例#2
0
	// /////////////////////////////////////////////////////////////////
	// 
	// /////////////////////////////////////////////////////////////////
	EventTypeList EventManager::GetTypeList (void) const
	{
		// no entries, so sad
		if ( m_typeList.size() == 0 )
			return EventTypeList();

		EventTypeList result;

		result.reserve( m_typeList.size() );

		for ( EventTypeSet::const_iterator it = m_typeList.begin(),
				  itEnd = m_typeList.end(); it != itEnd; it++ )
		{
			result.push_back( it->first );
		}
		
		return result;
	}
示例#3
0
bool EventManagerImpl::VAddEventListener(const EventListenerPtr& p_listener, const EventTypeList p_types)
{
    for (auto itTypes = p_types.begin(); itTypes != p_types.end(); ++itTypes)
    {
        EventType currType = *itTypes;
        EventListenerList& eventListenerList = m_eventListeners[currType];
        for (auto itListener = eventListenerList.begin(); itListener != eventListenerList.end(); ++itListener)
        {
            if (p_listener == (*itListener))
            {
                //TODO add Log
                return false;
            }

            eventListenerList.push_back(p_listener);
        }
    }
    return true;
}
示例#4
0
///
///  イベントタイプの一覧を取得
EventTypeList EventManager::getTypeList() {
    
    if (type_list_.empty()) {
        //  タイプリストが空
        return EventTypeList();
    }
    
    //  イベントタイプのリストを別インスタンスとして作成して返す
    EventTypeList result;
    result.reserve(type_list_.size());
    
    auto it = type_list_.begin();
    auto end = type_list_.end();
    
    for (; it != end; ++it) {
        //  もどす用のリストにリスナーのリスト内容をコピー
        result.push_back(*it);
    }
    
    return result;
}