/* * Copyright 2003-2005 The Apache Software Foundation. * * 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 * * 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. */ /* * XSEC * * XSECAlgorithmMapper := Provides a table of AlgorithmHandlers * Mapped by Type URI * * $Id: XSECAlgorithmMapper.hpp 420035 2006-07-08 02:02:02Z blautenb $ * */ #ifndef XSECALGMAPPER_INCLUDE #define XSECALGMAPPER_INCLUDE // XSEC Includes #include #include class XSECAlgorithmHandler; /** * @ingroup internal *\@{*/ /** * @brief Holder class for mapping Algorithms to Handlers * */ class DSIG_EXPORT XSECAlgorithmMapper { public: /** @name Constructors and Destructors */ //@{ XSECAlgorithmMapper(void); ~XSECAlgorithmMapper(); //@} /** @name Default mapping strings */ //@{ static const XMLCh s_defaultEncryptionMapping[]; /** @name Map Methods */ //@{ /** * \brief Map a URI to a handler */ XSECAlgorithmHandler * mapURIToHandler(const XMLCh * URI) const; //@} /** @name Registration Methods */ //@{ /** * \brief Register a new handler */ void registerHandler(const XMLCh * URI, const XSECAlgorithmHandler & handler); //@} private: struct MapperEntry { XMLCh * mp_uri; XSECAlgorithmHandler * mp_handler; }; MapperEntry * findEntry(const XMLCh * URI) const; #if defined(XSEC_NO_NAMESPACES) typedef vector MapperEntryVectorType; #else typedef std::vector MapperEntryVectorType; #endif mutable MapperEntryVectorType m_mapping; }; /*\@}*/ #endif /* XSECALGMAPPER_INCLUDE */