-/*
- * Copyright 2001-2009 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.
*/
/**
* @file shibsp/SPConfig.h
*
- * Library configuration
+ * Library configuration.
*/
#ifndef __shibsp_config_h__
#include <string>
#ifndef SHIBSP_LITE
+# include <shibsp/TransactionLog.h>
# include <saml/binding/MessageDecoder.h>
# include <saml/binding/MessageEncoder.h>
#endif
class SHIBSP_API Handler;
class SHIBSP_API ListenerService;
class SHIBSP_API RequestMapper;
+ class SHIBSP_API ProtocolProvider;
class SHIBSP_API ServiceProvider;
class SHIBSP_API SessionCache;
class SHIBSP_API SessionInitiator;
class SHIBSP_API AttributeResolver;
class SHIBSP_API FilterPolicyContext;
class SHIBSP_API MatchFunctor;
+ class SHIBSP_API SecurityPolicyProvider;
#endif
#if defined (_MSC_VER)
*/
void setFeatures(unsigned long enabled);
+
+ /**
+ * Gets the bitmask of subsystems being activated.
+ *
+ * @return bitmask of component constants
+ */
+ unsigned long getFeatures() const;
+
/**
* Test whether a subsystem is enabled.
*
* @param feature subsystem/component to test
* @return true iff feature is enabled
*/
- bool isEnabled(components_t feature);
+ bool isEnabled(components_t feature) const;
/**
* Initializes library
* @param inst_prefix installation prefix for software
* @return true iff initialization was successful
*/
- virtual bool init(const char* catalog_path=NULL, const char* inst_prefix=NULL);
+ virtual bool init(const char* catalog_path=nullptr, const char* inst_prefix=nullptr);
/**
* Shuts down library
/**
* Returns the global ServiceProvider instance.
*
- * @return global ServiceProvider or NULL
+ * @return global ServiceProvider or nullptr
*/
ServiceProvider* getServiceProvider() const;
* @param rethrow true iff caught exceptions should be rethrown instead of just returning the status
* @return true iff instantiation was successful
*/
- virtual bool instantiate(const char* config=NULL, bool rethrow=false);
+ virtual bool instantiate(const char* config=nullptr, bool rethrow=false);
#ifndef SHIBSP_LITE
/**
/**
* Returns the global ArtifactResolver instance.
*
- * @return global ArtifactResolver or NULL
+ * @return global ArtifactResolver or nullptr
*/
const opensaml::MessageDecoder::ArtifactResolver* getArtifactResolver() const;
#endif
xmltooling::PluginManager<AttributeResolver,std::string,const xercesc::DOMElement*> AttributeResolverManager;
/**
+ * Manages factories for Event plugins.
+ */
+ xmltooling::PluginManager<TransactionLog::Event,std::string,void*> EventManager;
+
+ /**
* Manages factories for MatchFunctor plugins.
*/
xmltooling::PluginManager< MatchFunctor,xmltooling::QName,std::pair<const FilterPolicyContext*,const xercesc::DOMElement*> > MatchFunctorManager;
+
+ /**
+ * Manages factories for SecurityPolicyProvider plugins.
+ */
+ xmltooling::PluginManager<SecurityPolicyProvider,std::string,const xercesc::DOMElement*> SecurityPolicyProviderManager;
#endif
/**
xmltooling::PluginManager< Handler,std::string,std::pair<const xercesc::DOMElement*,const char*> > ManageNameIDServiceManager;
/**
+ * Manages factories for ProtocolProvider plugins.
+ */
+ xmltooling::PluginManager<ProtocolProvider,std::string,const xercesc::DOMElement*> ProtocolProviderManager;
+
+ /**
* Manages factories for RequestMapper plugins.
*/
xmltooling::PluginManager<RequestMapper,std::string,const xercesc::DOMElement*> RequestMapperManager;