#include <saml/base.h>
#include <vector>
+#include <iostream>
#include <xmltooling/exceptions.h>
#include <xmltooling/security/CredentialResolver.h>
virtual void init()=0;
/**
+ * Generate an XML representation of the provider's status. The XML must be
+ * well-formed, but is otherwise arbitrary.
+ *
+ * @param os stream to write status information to
+ */
+ virtual void outputStatus(std::ostream& os) const;
+
+ /**
* Gets the entire metadata tree, after the registered filter has been applied.
* The caller MUST unlock the provider when finished with the data.
*
#include "saml2/metadata/MetadataCredentialCriteria.h"
#include <memory>
+#include <functional>
#include <xercesc/util/XMLUniDefs.hpp>
#include <xmltooling/logging.h>
#include <xmltooling/util/Threads.h>
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;
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...