X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2Fsaml2%2Fmetadata%2FChainingMetadataProvider.h;h=1310374344e7d862d84781d3c97f654349ca7cec;hb=0d5e6d568cd0945e18a8b54b7d75e9f5a352c41b;hp=2de6229a023819508c76bf4b06d4038ff2de784e;hpb=b1614d3c1fc1f4230ab2a123f43994127c25462c;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/saml2/metadata/ChainingMetadataProvider.h b/saml/saml2/metadata/ChainingMetadataProvider.h index 2de6229..1310374 100644 --- a/saml/saml2/metadata/ChainingMetadataProvider.h +++ b/saml/saml2/metadata/ChainingMetadataProvider.h @@ -15,7 +15,7 @@ */ /** - * @file saml/security/ChainingMetadataProvider.h + * @file saml/saml2/metadata/ChainingMetadataProvider.h * * MetadataProvider that uses multiple providers in sequence. */ @@ -24,6 +24,7 @@ #define __saml_chainmeta_h__ #include +#include #include namespace opensaml { @@ -53,7 +54,7 @@ namespace opensaml { * * @param e DOM to supply configuration for provider */ - ChainingMetadataProvider(const DOMElement* e=NULL); + ChainingMetadataProvider(const xercesc::DOMElement* e=NULL); /** * Destructor will delete any embedded engines. @@ -86,14 +87,16 @@ namespace opensaml { return NULL; } + using MetadataProvider::getEntityDescriptor; + using MetadataProvider::getEntitiesDescriptor; + xmltooling::Lockable* lock(); void unlock(); void init(); const xmltooling::XMLObject* getMetadata() const; const EntitiesDescriptor* getEntitiesDescriptor(const char* name, bool requireValidMetadata=true) const; - const EntityDescriptor* getEntityDescriptor(const char* id, bool requireValidMetadata=true) const; - const EntityDescriptor* getEntityDescriptor(const SAMLArtifact* artifact) const; - void onEvent(MetadataProvider& provider); + std::pair getEntityDescriptor(const Criteria& criteria) const; + void onEvent(const ObservableMetadataProvider& provider) const; const xmltooling::Credential* resolve(const xmltooling::CredentialCriteria* criteria=NULL) const; std::vector::size_type resolve( @@ -101,8 +104,10 @@ namespace opensaml { ) const; private: + bool m_firstMatch; xmltooling::ThreadKey* m_tlsKey; std::vector m_providers; + xmltooling::logging::Category& m_log; }; #if defined (_MSC_VER)