Files
FC1/Editor/Util/FunctorMulticaster.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

56 lines
1.3 KiB
C++

////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2001.
// -------------------------------------------------------------------------
// File name: FunctorMulticaster.h
// Version: v1.00
// Created: 30/1/2002 by Timur.
// Compilers: Visual C++ 6.0
// Description: Multicast multiple functors.
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef __FunctorMulticaster_h__
#define __FunctorMulticaster_h__
#if _MSC_VER > 1000
#pragma once
#endif
//////////////////////////////////////////////////////////////////////////
template <class _event>
class FunctorMulticaster
{
public:
typedef Functor1<_event> callback;
FunctorMulticaster() {}
virtual ~FunctorMulticaster() {}
void AddListener( const callback &func )
{
m_listeners.push_back( func );
}
void RemoveListener( const callback &func )
{
m_listeners.remove( func );
}
void Call( _event evt )
{
std::list<callback>::iterator iter;
for (iter = m_listeners.begin(); iter != m_listeners.end(); ++iter) {
(*iter)( evt );
}
}
private:
std::list<callback> m_listeners;
};
#endif // __FunctorMulticaster_h__