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  * XKMSRevokeResultImpl := Implementation of RegisterResult Messages
24  *
25  * $Id: XKMSRevokeResultImpl.hpp 351366 2005-06-04 11:44:55Z blautenb $
26  *
27  */
28 
29 #ifndef XKMSREVOKERESULTIMPL_INCLUDE
30 #define XKMSREVOKERESULTIMPL_INCLUDE
31 
32 // XSEC Includes
33 
34 #include <xsec/framework/XSECDefs.hpp>
35 #include <xsec/xkms/XKMSRevokeResult.hpp>
36 
37 #ifdef XSEC_XKMS_ENABLED
38 
39 #include "XKMSResultTypeImpl.hpp"
40 
41 #include <vector>
42 
43 class XKMSKeyBindingImpl;
44 
45 class XKMSRevokeResultImpl : public XKMSRevokeResult {
46 
47 public:
48 	XKMSResultTypeImpl m_result;
49 	XKMSMessageAbstractTypeImpl &m_msg;
50 public:
51 
52 	XKMSRevokeResultImpl(
53 		const XSECEnv * env
54 	);
55 
56 	XKMSRevokeResultImpl(
57 		const XSECEnv * env,
58 		XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * node
59 	);
60 
61 	virtual ~XKMSRevokeResultImpl();
62 
63 	// Load elements
64 	void load();
65 
66 	// Creation
67 	XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *
68 		createBlankRevokeResult(
69 		const XMLCh * service,
70 		const XMLCh * id,
71 		ResultMajor rmaj,
72 		ResultMinor rmin);
73 
74 	// Interface methods
75 	virtual int getKeyBindingSize(void) const;
76 	virtual XKMSKeyBinding * getKeyBindingItem(int item) const;
77 	virtual XKMSKeyBinding * appendKeyBindingItem(XKMSStatus::StatusValue status);
78 
79 
80 	/* Implemented from MessageAbstractType */
81 	virtual messageType getMessageType(void);
82 
83 	/* Forced inheritance from XKMSMessageAbstractTypeImpl */
84 	XKMS_MESSAGEABSTRACTYPE_IMPL_METHODS
85 
86 	/* Forced inheritance from XKMSResultTypeImpl */
87 	XKMS_RESULTTYPE_IMPL_METHODS
88 
89 private:
90 
91 #if defined(XSEC_NO_NAMESPACES)
92 	typedef vector<XKMSKeyBindingImpl *>		KeyBindingVectorType;
93 #else
94 	typedef std::vector<XKMSKeyBindingImpl *>	KeyBindingVectorType;
95 #endif
96 
97 	KeyBindingVectorType	m_keyBindingList;
98 
99 	// Unimplemented
100 	XKMSRevokeResultImpl(void);
101 	XKMSRevokeResultImpl(const XKMSRevokeResultImpl &);
102 	XKMSRevokeResultImpl & operator = (const XKMSRevokeResultImpl &);
103 
104 };
105 
106 #endif /* XSEC_XKMS_ENABLED */
107 #endif /* XKMSREVOKERESULTIMPL_INCLUDE */
108