1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  */
19 
20 /*
21  * XSEC
22  *
23  * XKMSResponseMechanismImpl := Implementation of XKMSResponseMechanism
24  *
25  * $Id: XKMSResponseMechanismImpl.hpp 1820685 2018-01-09 17:48:51Z scantor $
26  *
27  */
28 
29 #ifndef XKMSRESPONSEMECHANISMIMPL_INCLUDE
30 #define XKMSRESPONSEMECHANISMIMPL_INCLUDE
31 
32 // XSEC Includes
33 
34 #include <xsec/framework/XSECDefs.hpp>
35 #include <xsec/xkms/XKMSResponseMechanism.hpp>
36 
37 #ifdef XSEC_XKMS_ENABLED
38 
39 class XSECEnv;
40 
41 class XKMSResponseMechanismImpl : public XKMSResponseMechanism {
42 
43 public:
44 
45 	XKMSResponseMechanismImpl(const XSECEnv * env);
46 	XKMSResponseMechanismImpl(
47 		const XSECEnv * env,
48 		XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * node
49 	);
50 
51 	virtual ~XKMSResponseMechanismImpl();
52 
53 	// load
54 	void load(void);
55 
56 	XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *
57 		createBlankResponseMechanism(
58 		const XMLCh * item);
59 
60 	/* Getter Interface Methods */
61 
getElement(void) const62 	virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * getElement(void) const {
63 		return mp_responseMechanismElement;
64 	}
65 
66 	virtual const XMLCh * getResponseMechanismString(void) const;
67 
68 	/* Setter interface methods */
69 
70 	virtual void setResponseMechanismString(const XMLCh * str);
71 
72 	//@}
73 
74 
75 private:
76 
77 	const XSECEnv			* mp_env;
78 	XERCES_CPP_NAMESPACE_QUALIFIER DOMElement
79 							* mp_responseMechanismElement;
80 	XERCES_CPP_NAMESPACE_QUALIFIER DOMNode
81 							* mp_responseMechanismTextNode;
82 
83 	// Unimplemented
84 	XKMSResponseMechanismImpl(const XKMSResponseMechanismImpl &);
85 	XKMSResponseMechanismImpl & operator = (const XKMSResponseMechanismImpl &);
86 
87 };
88 
89 #endif /* XSEC_XKMS_ENABLED */
90 #endif /* XKMSRESPONSEMECHANISMIMPL_INCLUDE */
91