blob: 3db4172d1a4d59b80774cb951f438322fb6e0446 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF 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
*
* 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
*
* XSECURIResolverXerces := Virtual Interface class that takes a URI and
* creates a binary input stream from it.
*
* $Id$
*
*/
#ifndef XSECURIRESOLVERXERCES_INCLUDE
#define XSECURIRESOLVERXERCES_INCLUDE
#include <xsec/framework/XSECURIResolver.hpp>
/**
* @ingroup pubsig
*/
/*\@{*/
/**
* @brief URIResolver implementation class based on Xerces functions.
*
* This class provides the default implementation of the XSECURIResolver
* class. If no other resolver is specified, the XSECProvider will
* install this into the Signatures that are created.
*
* The class is very simple - it calls on the Xerces functions
* to provide primitive URI resolving support.
*
*/
class XSEC_EXPORT XSECURIResolverXerces : public XSECURIResolver {
public:
/** @name Constructors and Destructors */
//@{
/**
* \brief Constructor
*
* @param baseURI Provide a URI that relative URIs can be
* matched to.
*/
XSECURIResolverXerces(const XMLCh * baseURI = 0);
virtual ~XSECURIResolverXerces();
//@}
/** @name Interface Methods */
//@{
/**
* \brief Create a BYTE_STREAM from a URI.
*
* The resolver is required to take the input URI and
* dereference it to an actual stream of octets.
*
* @param uri The string containing the URI to be de-referenced.
* @returns The octet stream corresponding to the URI.
*/
virtual XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream * resolveURI(const XMLCh * uri);
/**
* \brief Clone the resolver to be installed in a new object.
*
* When URIResolvers are passed into signatures and other
* objects, they are cloned and control of the original object
* is left with the caller.
*
*/
virtual XSECURIResolver * clone(void);
//@}
/** @name XSECURIResolverXerces Specific Methods */
//@{
/**
* \brief Set the base URI for relative URIs.
*
*/
void setBaseURI(const XMLCh * uri);
//@}
private:
XMLCh * mp_baseURI;
};
#endif /* XSECURIRESOLVERXERCES_INCLUDE */