/usr/include/srchilite/eventgenerator.h is in libsource-highlight-dev 3.1.8-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | //
// Author: Lorenzo Bettini <http://www.lorenzobettini.it>, (C) 2004-2008
//
// Copyright: See COPYING file that comes with this distribution
//
#ifndef EVENTGENERATOR_H_
#define EVENTGENERATOR_H_
#include <list>
namespace srchilite {
/**
* A generic event generator, for listeners of type EventListener and events of
* type EventType. EventListener must implement the method notify(const EventType &)
*/
template <class EventListener, class EventType> class EventGenerator {
/// the list of listeners
std::list<EventListener *> listeners;
public:
void addListener(EventListener *listener) {
listeners.push_back(listener);
}
void removeListener(EventListener *listener) {
listeners.remove(listener);
}
bool hasListeners() const {
return listeners.size();
}
/**
* Notifies all listeners of a specific event
* @param event the event
*/
void notify(const EventType &event) {
for (typename std::list<EventListener *>::const_iterator it =
listeners.begin(); it != listeners.end(); ++it) {
(*it)->notify(event);
}
}
};
}
#endif /*EVENTGENERATOR_H_*/
|