blob: d158644043e9b82eb5c77da797376452045aed8a [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
*
* XKMSRequestAbstractTypeImpl := Implementation class for XKMS Request messages
*
* $Id$
*
*/
#ifndef XKMSREQUESTABSTRACTTYPEIMPL_INCLUDE
#define XKMSREQUESTABSTRACTTYPEIMPL_INCLUDE
// XSEC Includes
#include <xsec/framework/XSECDefs.hpp>
#include <xsec/xkms/XKMSRequestAbstractType.hpp>
#ifdef XSEC_XKMS_ENABLED
#include "XKMSMessageAbstractTypeImpl.hpp"
#include <vector>
class XKMSRespondWithImpl;
class XKMSResponseMechanismImpl;
class XKMSRequestAbstractTypeImpl : public XKMSRequestAbstractType {
public:
XKMSMessageAbstractTypeImpl m_msg;
public:
/* Constructors and Destructors */
XKMSRequestAbstractTypeImpl(
const XSECEnv * env
);
XKMSRequestAbstractTypeImpl(
const XSECEnv * env,
XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * node
);
virtual ~XKMSRequestAbstractTypeImpl();
virtual void load(void);
// Create from scratch - tag is the element name to create
XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *
createBlankRequestAbstractType(
const XMLCh * tag,
const XMLCh * service,
const XMLCh * id = NULL);
/* Getter Interface Methods */
virtual const XMLCh * getOriginalRequestId(void) const;
virtual void setOriginalRequestId(const XMLCh * id);
virtual unsigned int getResponseLimit(void) const;
/* Set interface methods */
virtual void setResponseLimit(unsigned int limit);
/* RespondWith handling */
virtual int getRespondWithSize(void);
virtual XKMSRespondWith * getRespondWithItem(int item);
virtual const XMLCh * getRespondWithItemStr(int item);
virtual void appendRespondWithItem(XKMSRespondWith * item);
virtual void appendRespondWithItem(const XMLCh * item);
/* ResponseMechanism handling */
virtual int getResponseMechanismSize(void);
virtual XKMSResponseMechanism * getResponseMechanismItem(int item);
virtual const XMLCh * getResponseMechanismItemStr(int item);
virtual void appendResponseMechanismItem(XKMSResponseMechanism * item);
virtual void appendResponseMechanismItem(const XMLCh * item);
virtual void removeResponseMechanismItem(int item);
/* Inherited from XKMSMessageType */
virtual messageType getMessageType(void) {return XKMSMessageAbstractType::None;}
/* Forced inheritance from XKMSMessageAbstractTypeImpl */
XKMS_MESSAGEABSTRACTYPE_IMPL_METHODS
#if 0
virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * getElement(void) const
{return XKMSMessageAbstractTypeImpl::getElement();}
virtual bool isSigned(void) const
{return XKMSMessageAbstractTypeImpl::isSigned();}
virtual DSIGSignature * getSignature(void) const
{return XKMSMessageAbstractTypeImpl::getSignature();}
virtual const XMLCh * getId(void) const
{return XKMSMessageAbstractTypeImpl::getId();}
virtual const XMLCh * getService(void) const
{return XKMSMessageAbstractTypeImpl::getService();}
virtual const XMLCh * getNonce(void) const
{return XKMSMessageAbstractTypeImpl::getNonce();}
virtual void setId(const XMLCh * id)
{XKMSMessageAbstractTypeImpl::setId(id);}
virtual void setService(const XMLCh * service)
{XKMSMessageAbstractTypeImpl::setService(service);}
virtual void setNonce(const XMLCh * uri)
{XKMSMessageAbstractTypeImpl::setNonce(uri);}
#endif
private:
#if defined(XSEC_NO_NAMESPACES)
typedef vector<XKMSRespondWithImpl *> RespondWithVectorType;
#else
typedef std::vector<XKMSRespondWithImpl *> RespondWithVectorType;
#endif
#if defined(XSEC_NO_NAMESPACES)
typedef vector<XKMSResponseMechanismImpl *> ResponseMechanismVectorType;
#else
typedef std::vector<XKMSResponseMechanismImpl *> ResponseMechanismVectorType;
#endif
RespondWithVectorType m_respondWithList; // List of m_respondWith elements
ResponseMechanismVectorType m_responseMechanismList;// List of responseMechanism elements
XERCES_CPP_NAMESPACE_QUALIFIER DOMAttr
* mp_originalRequestIdAttr;
XERCES_CPP_NAMESPACE_QUALIFIER DOMAttr
* mp_responseLimitAttr;
// Unimplemented
XKMSRequestAbstractTypeImpl(void);
XKMSRequestAbstractTypeImpl(const XKMSRequestAbstractTypeImpl &);
XKMSRequestAbstractTypeImpl & operator = (const XKMSRequestAbstractTypeImpl &);
};
#define XKMS_REQUESTABSTRACTYPE_IMPL_METHODS \
virtual const XMLCh * getOriginalRequestId(void) const \
{return m_request.getOriginalRequestId();} \
virtual void setOriginalRequestId(const XMLCh * id) \
{m_request.setOriginalRequestId(id);} \
virtual int getRespondWithSize(void) \
{return m_request.getRespondWithSize();} \
virtual XKMSRespondWith * getRespondWithItem(int item) \
{return m_request.getRespondWithItem(item);} \
virtual const XMLCh * getRespondWithItemStr(int item) \
{return m_request.getRespondWithItemStr(item);} \
virtual void appendRespondWithItem(XKMSRespondWith * item) \
{m_request.appendRespondWithItem(item);} \
virtual void appendRespondWithItem(const XMLCh * item) \
{m_request.appendRespondWithItem(item);} \
virtual int getResponseMechanismSize(void) \
{return m_request.getResponseMechanismSize();} \
virtual XKMSResponseMechanism * getResponseMechanismItem(int item) \
{return m_request.getResponseMechanismItem(item);} \
virtual const XMLCh * getResponseMechanismItemStr(int item) \
{return m_request.getResponseMechanismItemStr(item);} \
virtual void appendResponseMechanismItem(XKMSResponseMechanism * item) \
{m_request.appendResponseMechanismItem(item);} \
virtual void appendResponseMechanismItem(const XMLCh * item) \
{m_request.appendResponseMechanismItem(item);} \
virtual void removeResponseMechanismItem(int item) \
{m_request.removeResponseMechanismItem(item);} \
virtual unsigned int getResponseLimit(void) const \
{return m_request.getResponseLimit();} \
virtual void setResponseLimit(unsigned int limit) \
{m_request.setResponseLimit(limit);}
#endif /* XSEC_XKMS_ENABLED */
#endif /* XKMSREQUESTABSTRACTTYPEIMPL_INCLUDE */