blob: 9519897987285d5934fb474f885626677a62f575 [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
*
* XKMSUseKeyWith := Interface for UseKeyWith Messages
*
* $Id$
*
*/
#ifndef XKMSUSEKEYWITH_INCLUDE
#define XKMSUSEKEYWITH_INCLUDE
// XSEC Includes
#include <xsec/framework/XSECDefs.hpp>
#ifdef XSEC_XKMS_ENABLED
/**
* @ingroup xkms
*/
/**
* @brief Interface definition UseKeyWith elements
*
* \<UseKeyWith\> elements are played insied KeyBinding elements and identify
* applications and application identifiers that correspond with the keys being
* found.
*
* The schema definition for UseKeyWith is as follows :
*
* \verbatim
<!-- UseKeyWith -->
<element name="UseKeyWith" type="xkms:UseKeyWithType"/>
<complexType name="UseKeyWithType">
<attribute name="Application" type="anyURI" use="required"/>
<attribute name="Identifier" type="string" use="required"/>
</complexType>
<!-- /UseKeyWith -->
\endverbatim
*/
class XSEC_EXPORT XKMSUseKeyWith {
/** @name Constructors and Destructors */
//@{
protected:
XKMSUseKeyWith() {};
public:
virtual ~XKMSUseKeyWith() {};
/** @name Getter Interface Methods */
//@{
/**
* \brief Return the element at the base of the message
*/
virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * getElement(void) const = 0;
/**
* \brief Obtain the URI associated with the application for which this
* identifier applies
*
* @returns a library owned XMLCh string containing the URI
*/
virtual const XMLCh * getApplication(void) const = 0;
/**
* \brief Obtain the identifier string that should be used to locate a key
*
* @returns a library owned XMLCh string containing the URI
*/
virtual const XMLCh * getIdentifier(void) const = 0;
//@}
/** @name Setter Interface Methods */
//@{
/**
* \brief Set the Application string
*
* param uri URI String identifying the application
*/
virtual void setApplication(const XMLCh * uri) = 0;
/**
* \brief Set the Identifier string
*
* param identifier String identifying the key
*/
virtual void setIdentifier(const XMLCh * identifier) = 0;
//@}
private:
// Unimplemented
XKMSUseKeyWith(const XKMSUseKeyWith &);
XKMSUseKeyWith & operator = (const XKMSUseKeyWith &);
};
#endif /* XSEC_XKMS_ENABLED */
#endif /* XKMSUSEKEYWITH_INCLUDE */