X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fsaml2%2Fmetadata%2FChainingMetadataProvider.h;h=1310374344e7d862d84781d3c97f654349ca7cec;hp=19c1136ba5125bc0e306f900506d056b83a4ad9c;hb=75ca5258ff9bb2986d5f7c07d2ae47078d240722;hpb=932cfaae2176c2eba1a9938dc420591a9551a7f3 diff --git a/saml/saml2/metadata/ChainingMetadataProvider.h b/saml/saml2/metadata/ChainingMetadataProvider.h index 19c1136..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,11 +24,17 @@ #define __saml_chainmeta_h__ #include +#include #include namespace opensaml { namespace saml2md { - + +#if defined (_MSC_VER) + #pragma warning( push ) + #pragma warning( disable : 4251 ) +#endif + /** * MetadataProvider that uses multiple providers in sequence. */ @@ -48,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. @@ -81,21 +87,34 @@ namespace opensaml { return NULL; } + using MetadataProvider::getEntityDescriptor; + using MetadataProvider::getEntitiesDescriptor; + xmltooling::Lockable* lock(); void unlock(); void init(); - const xmlsignature::KeyResolver* getKeyResolver() const; 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( + std::vector& results, const xmltooling::CredentialCriteria* criteria=NULL + ) const; + private: + bool m_firstMatch; xmltooling::ThreadKey* m_tlsKey; std::vector m_providers; + xmltooling::logging::Category& m_log; }; - }; + +#if defined (_MSC_VER) + #pragma warning( pop ) +#endif + + }; }; #endif /* __saml_chainmeta_h__ */