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  * XKMSUseKeyWithImpl := Implementation of UseKeyWith Messages
24  *
25  * $Id: XKMSUseKeyWithImpl.hpp 1820685 2018-01-09 17:48:51Z scantor $
26  *
27  */
28 
29 #ifndef XKMSUSEKEYWITHIMPL_INCLUDE
30 #define XKMSUSEKEYWITHIMPL_INCLUDE
31 
32 // XSEC Includes
33 
34 #include <xsec/framework/XSECDefs.hpp>
35 #include <xsec/xkms/XKMSUseKeyWith.hpp>
36 
37 #ifdef XSEC_XKMS_ENABLED
38 
39 class XKMSUseKeyWithImpl : public XKMSUseKeyWith {
40 
41 public:
42 
43 	XKMSUseKeyWithImpl(
44 		const XSECEnv * env
45 	);
46 
47 	XKMSUseKeyWithImpl(
48 		const XSECEnv * env,
49 		XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * node
50 	);
51 
52 	virtual ~XKMSUseKeyWithImpl() ;
53 
54 	// Load
55 	void load(void);
56 
57 	// Create
58 	XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *
59 		createBlankUseKeyWith(
60 			const XMLCh * application,
61 			const XMLCh * identifier);
62 
63 
64 	// Interface methods
65 
66 	virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * getElement(void) const;
67 	virtual const XMLCh * getApplication(void) const;
68 	virtual const XMLCh * getIdentifier(void) const;
69 	virtual void setApplication(const XMLCh * uri);
70 	virtual void setIdentifier(const XMLCh * identifier);
71 
72 protected:
73 
74 	XERCES_CPP_NAMESPACE_QUALIFIER DOMElement
75 					* mp_useKeyWithElement;
76 	const XSECEnv	* mp_env;
77 
78 private:
79 
80 	XERCES_CPP_NAMESPACE_QUALIFIER DOMNode
81 					* mp_applicationAttr;
82 	XERCES_CPP_NAMESPACE_QUALIFIER DOMNode
83 					* mp_identifierAttr;
84 
85 	// Unimplemented
86 	XKMSUseKeyWithImpl(const XKMSUseKeyWithImpl &);
87 	XKMSUseKeyWithImpl & operator = (const XKMSUseKeyWithImpl &);
88 
89 };
90 
91 #endif /* XSEC_XKMS_ENABLED */
92 #endif /* XKMSUSEKEYWITHIMPL_INCLUDE */
93