https://issues.shibboleth.net/jira/browse/CPPOST-68
[shibboleth/cpp-opensaml.git] / saml / saml2 / metadata / impl / ObservableMetadataProvider.cpp
index b89f450..a2a7248 100644 (file)
@@ -47,7 +47,13 @@ ObservableMetadataProvider::~ObservableMetadataProvider()
 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
@@ -74,3 +80,8 @@ ObservableMetadataProvider::Observer::Observer()
 ObservableMetadataProvider::Observer::~Observer()
 {
 }
+
+void ObservableMetadataProvider::Observer::onEvent(const ObservableMetadataProvider& provider, const EntityDescriptor&) const
+{ 
+    onEvent(provider);
+}