blob: e7a32a5db22b709848f09dfde8182ba64bd4fa6a [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 * * XKMSRequestAbstractType := Interface for base schema of XKMS Request messages * * \$Id\$ * */ #ifndef XKMSREQUESTABSTRACTTYPE_INCLUDE #define XKMSREQUESTABSTRACTTYPE_INCLUDE // XSEC Includes #include #ifdef XSEC_XKMS_ENABLED #include class XKMSRespondWith; class XKMSResponseMechanism; /** * @ingroup xkms */ /** * @brief Interface definition for the RequestAbstractType * * The \ is an abstract type on which all * XKMS Request messages are built. * * The schema definition for RequestAbstractType is as follows : * * \verbatim \endverbatim */ class XSEC_EXPORT XKMSRequestAbstractType : public XKMSMessageAbstractType { /** @name Constructors and Destructors */ //@{ protected: XKMSRequestAbstractType() {}; public: virtual ~XKMSRequestAbstractType() {}; /** @name Getter Interface Methods */ //@{ virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * getElement(void) const = 0; /** * \brief Get the Original Request Id for the Message * * For transactions that use multipt request/response sessions (e.g. * two stage commit or asyncronous processing), this attribute can be * used to identify the id of the original message that was processed. * * @returns a pointer to the Original Request Id string (owned by the library) */ virtual const XMLCh * getOriginalRequestId(void) const = 0; /** * \brief Get the ResponseLimit size * * A client can limit the number of keys to be returned by the service by * setting this value to the required limit. * * @returns Value of the ResponseLimit within the message. 0 if none was set */ virtual unsigned int getResponseLimit(void) const = 0; //@} /** @name Setter interface methods */ //@{ /** * \brief Set the Original Reqeust Id for the Message * * Allows a calling application to set a new original request Id for the * message * * @param id The Id to set as the OriginalRequestId */ virtual void setOriginalRequestId(const XMLCh * id) = 0; /** * \brief Set the ResponseLimit size * * A client can limit the number of keys to be returned by the service by * setting this value to the required limit. * * @param limit Value to set the ResponseLimit within the message */ virtual void setResponseLimit(unsigned int limit) = 0; //@} /** @name \ handling */ //@{ /** * \brief Number of RespondWith elements in this Request * * Returns the number of RespondWith elements held within this request * * @returns Number of RespondWith elements */ virtual int getRespondWithSize(void) = 0; /** * \brief Get the nth item in the RespondWith list * * @param item The item to return * @returns the nth item in the RespondWith list. * */ virtual XKMSRespondWith * getRespondWithItem(int item) = 0; /** * \brief Get the string of the nth item in the RespondWith list * * @param item The item whose string is to be returned * @returns the string of the nth item in the RespondWith list. * */ virtual const XMLCh * getRespondWithItemStr(int item) = 0; /** * \brief Append an item to the RespondWith list * * @param item XKMSRespondWith object to append to the list. * @note Once passed in, this item will be owned by the library. */ virtual void appendRespondWithItem(XKMSRespondWith * item) = 0; /** * \brief Shortcut for appending an item to the RespondWith list * * @param item String to create a RespondWith element around and * append to the list. */ virtual void appendRespondWithItem(const XMLCh * item) = 0; //@} /** @name \ handling */ //@{ /** * \brief Number of ResponseMechanism elements in this Request * * Returns the number of ResponseMechanism elements held within this request * * @returns Number of ResponseMechanism elements */ virtual int getResponseMechanismSize(void) = 0; /** * \brief Get the nth item in the ResponseMechanism list * * @param item The item to return * @returns the nth item in the ResponseMechanism list. * */ virtual XKMSResponseMechanism * getResponseMechanismItem(int item) = 0; /** * \brief Get the string of the nth item in the ResponseMechanism list * * @param item The item whose string is to be returned * @returns the string of the nth item in the RespondWith list. * */ virtual const XMLCh * getResponseMechanismItemStr(int item) = 0; /** * \brief Append an item to the ResponseMechanism list * * @param item XKMSResponseMechanism object to append to the list. * @note Once passed in, this item will be owned by the library. */ virtual void appendResponseMechanismItem(XKMSResponseMechanism * item) = 0; /** * \brief Shortcut for appending an item to the ResponseMechanism list * * @param item String to create a ResponseMechanism element around and * append to the list. */ virtual void appendResponseMechanismItem(const XMLCh * item) = 0; /** * \brief Remove a ResponseMechanism * * Removes the identified ResponseMechanism from the item * * @param item Item to remove */ virtual void removeResponseMechanismItem(int item) = 0; //@} private: // Unimplemented XKMSRequestAbstractType(const XKMSRequestAbstractType &); XKMSRequestAbstractType & operator = (const XKMSRequestAbstractType &); }; #endif /* XSEC_XKMS_ENABLED */ #endif /* XKMSREQUESTABSTRACTTYPE_INCLUDE */