X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fsaml2%2Fmetadata%2FMetadataProvider.h;h=05d2493f62f89d3f99cffaea9285d0b78731f11e;hp=811eb8148510bec6d9f162f23f9d819cd0366e6f;hb=208928133db000b055b99fcbabc245295adb0d48;hpb=e9554c255ad3c91c7c4976e7a1a54905903e66a2 diff --git a/saml/saml2/metadata/MetadataProvider.h b/saml/saml2/metadata/MetadataProvider.h index 811eb81..05d2493 100644 --- a/saml/saml2/metadata/MetadataProvider.h +++ b/saml/saml2/metadata/MetadataProvider.h @@ -1,17 +1,21 @@ -/* - * Copyright 2001-2010 Internet2 +/** + * Licensed to the University Corporation for Advanced Internet + * Development, Inc. (UCAID) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for + * additional information regarding copyright ownership. * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * UCAID licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the + * License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. */ /** @@ -26,6 +30,8 @@ #include #include +#include +#include #include #include @@ -92,6 +98,13 @@ namespace opensaml { virtual ~MetadataProvider(); /** + * Returns an identifier for the provider for logging/status purposes. + * + * @return an identifier, or null + */ + virtual const char* getId() const; + + /** * Adds a metadata filter to apply to any resolved metadata. Will not be applied * to metadata that is already loaded. * @@ -117,6 +130,14 @@ namespace opensaml { 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. * @@ -230,7 +251,7 @@ namespace opensaml { void doFilters(xmltooling::XMLObject& xmlObject) const; private: - std::vector m_filters; + boost::ptr_vector m_filters; }; #if defined (_MSC_VER) @@ -251,6 +272,9 @@ namespace opensaml { /** MetadataProvider that wraps a sequence of metadata providers. */ #define CHAINING_METADATA_PROVIDER "Chaining" + /** MetadataProvider that loads a directory of files. */ + #define FOLDER_METADATA_PROVIDER "Folder" + /** MetadataProvider that returns an empty "dummy" entity descriptor. */ #define NULL_METADATA_PROVIDER "Null"