Started implementation of first event/message passing system
This commit is contained in:
		
							
								
								
									
										25
									
								
								BarinkEngine/EventSystem/EventEmitter.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								BarinkEngine/EventSystem/EventEmitter.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
			
		||||
#include "../Include/EventSystem/EventEmitter.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void EventEmitter::Subscribe(EventListener& subscriber)
 | 
			
		||||
{
 | 
			
		||||
  subscribers.push_back(&subscriber);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EventEmitter::Unsubscribe(EventListener& subscriber)
 | 
			
		||||
{
 | 
			
		||||
  subscribers.remove(&subscriber);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void EventEmitter::EmitEvent(Event& incident)
 | 
			
		||||
{
 | 
			
		||||
	// Notify all subscribers an event has taken place 
 | 
			
		||||
	for (auto it = subscribers.begin(); it != subscribers.end(); ++it)
 | 
			
		||||
	{
 | 
			
		||||
		(*it)->ReceiveEvent(incident);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
EventEmitter::EventEmitter() {
 | 
			
		||||
	subscribers = std::list<EventListener*>{};
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user