Add API for status generation.
[shibboleth/cpp-opensaml.git] / saml / saml2 / metadata / impl / ChainingMetadataProvider.cpp
index 81f6bf1..5bb1f50 100644 (file)
@@ -33,6 +33,7 @@
 #include "saml2/metadata/MetadataCredentialCriteria.h"
 
 #include <memory>
+#include <functional>
 #include <xercesc/util/XMLUniDefs.hpp>
 #include <xmltooling/logging.h>
 #include <xmltooling/util/Threads.h>
@@ -64,6 +65,7 @@ namespace opensaml {
             Lockable* lock();
             void unlock();
             void init();
+            void outputStatus(ostream& os) const;
             const XMLObject* getMetadata() const;
             const EntitiesDescriptor* getEntitiesDescriptor(const char* name, bool requireValidMetadata=true) const;
             pair<const EntityDescriptor*,const RoleDescriptor*> getEntityDescriptor(const Criteria& criteria) const;
@@ -224,6 +226,13 @@ void ChainingMetadataProvider::init()
     m_feedTag = SAMLArtifact::toHex(m_feedTag);
 }
 
+void ChainingMetadataProvider::outputStatus(ostream& os) const
+{
+    for (vector<MetadataProvider*>::const_iterator i=m_providers.begin(); i!=m_providers.end(); ++i) {
+        (*i)->outputStatus(os);
+    }
+}
+
 Lockable* ChainingMetadataProvider::lock()
 {
     return this;   // we're not lockable ourselves...