X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=saml%2Fsaml2%2Fmetadata%2Fimpl%2FMetadataProvider.cpp;h=4d8d6b13e85863c7539682c0bdc823a8bff92a9f;hb=d8a4f024b89272eae00618fc39e6127b6c191edd;hp=c3015c5e1366e458dab863a6400a2af7c35cc24d;hpb=9f10292e987cc822929bb83f9462e21874b9863a;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/saml2/metadata/impl/MetadataProvider.cpp b/saml/saml2/metadata/impl/MetadataProvider.cpp index c3015c5..4d8d6b1 100644 --- a/saml/saml2/metadata/impl/MetadataProvider.cpp +++ b/saml/saml2/metadata/impl/MetadataProvider.cpp @@ -17,7 +17,7 @@ /** * MetadataProvider.cpp * - * Registration of factories for built-in providers. + * Supplies an individual source of metadata. */ #include "internal.h" @@ -133,6 +133,22 @@ MetadataProvider::~MetadataProvider() for_each(m_filters.begin(),m_filters.end(),xmltooling::cleanup()); } +void MetadataProvider::addMetadataFilter(MetadataFilter* newFilter) +{ + m_filters.push_back(newFilter); +} + +MetadataFilter* MetadataProvider::removeMetadataFilter(MetadataFilter* oldFilter) +{ + for (vector::iterator i=m_filters.begin(); i!=m_filters.end(); i++) { + if (oldFilter==(*i)) { + m_filters.erase(i); + return oldFilter; + } + } + return NULL; +} + void MetadataProvider::doFilters(XMLObject& xmlObject) const { #ifdef _DEBUG @@ -150,3 +166,46 @@ const EntitiesDescriptor* MetadataProvider::getEntitiesDescriptor(const XMLCh* n auto_ptr_char temp(name); return getEntitiesDescriptor(temp.get(),strict); } + +MetadataProvider::Criteria::Criteria() + : entityID_unicode(NULL), entityID_ascii(NULL), artifact(NULL), role(NULL), protocol(NULL), protocol2(NULL), validOnly(true) +{ +} + +MetadataProvider::Criteria::Criteria(const XMLCh* id, const xmltooling::QName* q, const XMLCh* prot, bool valid) + : entityID_unicode(id), entityID_ascii(NULL), artifact(NULL), role(q), protocol(prot), protocol2(NULL), validOnly(valid) +{ +} + +MetadataProvider::Criteria::Criteria(const char* id, const xmltooling::QName* q, const XMLCh* prot, bool valid) + : entityID_unicode(NULL), entityID_ascii(id), artifact(NULL), role(q), protocol(prot), protocol2(NULL), validOnly(valid) +{ +} + +MetadataProvider::Criteria::Criteria(const SAMLArtifact* a, const xmltooling::QName* q, const XMLCh* prot, bool valid) + : entityID_unicode(NULL), entityID_ascii(NULL), artifact(a), role(q), protocol(prot), protocol2(NULL), validOnly(valid) +{ +} + +MetadataProvider::Criteria::~Criteria() +{ +} + +void MetadataProvider::Criteria::reset() +{ + entityID_unicode=NULL; + entityID_ascii=NULL; + artifact=NULL; + role=NULL; + protocol=NULL; + protocol2=NULL; + validOnly=true; +} + +MetadataFilter::MetadataFilter() +{ +} + +MetadataFilter::~MetadataFilter() +{ +}