Lockable* lock();
void unlock();
+ void setContext(const MetadataFilterContext*);
void init();
- void outputStatus(ostream& os) const;
+ void outputStatus(ostream&) 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;
+ const EntitiesDescriptor* getEntitiesDescriptor(const char*, bool requireValidMetadata=true) const;
+ pair<const EntityDescriptor*,const RoleDescriptor*> getEntityDescriptor(const Criteria&) const;
const Credential* resolve(const CredentialCriteria* criteria=nullptr) const;
- vector<const Credential*>::size_type resolve(vector<const Credential*>& results, const CredentialCriteria* criteria=nullptr) const;
+ vector<const Credential*>::size_type resolve(vector<const Credential*>&, const CredentialCriteria* criteria=nullptr) const;
string getCacheTag() const {
Lock lock(m_trackerLock);
m_log.error("error building MetadataProvider: %s", ex.what());
}
}
+ else {
+ m_log.error("MetadataProvider element missing type attribute");
+ }
e = XMLHelper::getNextSiblingElement(e, _MetadataProvider);
}
}
for_each(m_trackers.begin(), m_trackers.end(), xmltooling::cleanup<tracker_t>());
}
+void ChainingMetadataProvider::setContext(const MetadataFilterContext* ctx)
+{
+ for_each(m_providers.begin(), m_providers.end(), boost::bind(&MetadataProvider::setContext, _1, ctx));
+}
+
void ChainingMetadataProvider::init()
{
for (ptr_vector<MetadataProvider>::iterator i = m_providers.begin(); i != m_providers.end(); ++i) {
const EntitiesDescriptor* cur = nullptr;
for (ptr_vector<MetadataProvider>::iterator i = m_providers.begin(); i != m_providers.end(); ++i) {
tracker->lock_if(&(*i));
- if (cur=i->getEntitiesDescriptor(name,requireValidMetadata)) {
+ if ((cur = i->getEntitiesDescriptor(name,requireValidMetadata))) {
// Are we using a first match policy?
if (m_firstMatch) {
// Save locked provider.