void ObservableMetadataProvider::emitChangeEvent() const
{
Lock lock(m_observerLock);
- for_each(m_observers.begin(), m_observers.end(), boost::bind(&Observer::onEvent, _1, boost::ref(*this)));
+ for_each(m_observers.begin(), m_observers.end(), boost::bind(&Observer::onEvent, _1, boost::cref(*this)));
+}
+
+void ObservableMetadataProvider::emitChangeEvent(const EntityDescriptor& entity) const
+{
+ Lock lock(m_observerLock);
+ for_each(m_observers.begin(), m_observers.end(), boost::bind(&Observer::onEvent, _1, boost::cref(*this), boost::cref(entity)));
}
void ObservableMetadataProvider::addObserver(const Observer* newObserver) const
ObservableMetadataProvider::Observer::~Observer()
{
}
+
+void ObservableMetadataProvider::Observer::onEvent(const ObservableMetadataProvider& provider, const EntityDescriptor&) const
+{
+ onEvent(provider);
+}