13 kumpf 1.1 //
14 // Permission is hereby granted, free of charge, to any person obtaining a copy
15 // of this software and associated documentation files (the "Software"), to
16 // deal in the Software without restriction, including without limitation the
17 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18 // sell copies of the Software, and to permit persons to whom the Software is
19 // furnished to do so, subject to the following conditions:
20 //
21 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 //==============================================================================
31 //
32 // Author: Roger Kumpf, Hewlett-Packard Company (roger_kumpf@hp.com)
33 //
34 kumpf 1.1 // Modified By:
35 //
36 //%/////////////////////////////////////////////////////////////////////////////
37
38
39 #include <Pegasus/Common/OperationContext.h>
40 #include <Pegasus/Client/CIMClient.h>
41
42 #include "CIMOMHandleRep.h"
43
44 PEGASUS_NAMESPACE_BEGIN
45
46 /**
47 ClientCIMOMHandleRep is a CIMOMHandle implementation that communicates
48 with the CIM Server through the use of a CIMClient object. This
49 implementation is intended for use with Out-of-Process Providers, for
50 which communication with the CIM Server must be serialized over an
51 interprocess connection.
52 */
53 class ClientCIMOMHandleRep : public CIMOMHandleRep
54 {
55 kumpf 1.1 public:
56 ClientCIMOMHandleRep();
57 virtual ~ClientCIMOMHandleRep();
58
59 virtual CIMClass getClass(
60 const OperationContext & context,
61 const CIMNamespaceName& nameSpace,
62 const CIMName& className,
63 Boolean localOnly,
64 Boolean includeQualifiers,
65 Boolean includeClassOrigin,
66 const CIMPropertyList& propertyList);
67
68 virtual Array<CIMClass> enumerateClasses(
69 const OperationContext & context,
70 const CIMNamespaceName& nameSpace,
71 const CIMName& className,
72 Boolean deepInheritance,
73 Boolean localOnly,
74 Boolean includeQualifiers,
75 Boolean includeClassOrigin);
76 kumpf 1.1
77 virtual Array<CIMName> enumerateClassNames(
78 const OperationContext & context,
79 const CIMNamespaceName& nameSpace,
80 const CIMName& className,
81 Boolean deepInheritance);
82
83 virtual void createClass(
84 const OperationContext & context,
85 const CIMNamespaceName& nameSpace,
86 const CIMClass& newClass);
87
88 virtual void modifyClass(
89 const OperationContext & context,
90 const CIMNamespaceName& nameSpace,
91 const CIMClass& modifiedClass);
92
93 virtual void deleteClass(
94 const OperationContext & context,
95 const CIMNamespaceName& nameSpace,
96 const CIMName& className);
97 kumpf 1.1
98 virtual CIMInstance getInstance(
99 const OperationContext & context,
100 const CIMNamespaceName& nameSpace,
101 const CIMObjectPath& instanceName,
102 Boolean localOnly,
103 Boolean includeQualifiers,
104 Boolean includeClassOrigin,
105 const CIMPropertyList& propertyList);
106
107 virtual Array<CIMInstance> enumerateInstances(
108 const OperationContext & context,
109 const CIMNamespaceName& nameSpace,
110 const CIMName& className,
111 Boolean deepInheritance,
112 Boolean localOnly,
113 Boolean includeQualifiers,
114 Boolean includeClassOrigin,
115 const CIMPropertyList& propertyList);
116
117 virtual Array<CIMObjectPath> enumerateInstanceNames(
118 kumpf 1.1 const OperationContext & context,
119 const CIMNamespaceName& nameSpace,
120 const CIMName& className);
121
122 virtual CIMObjectPath createInstance(
123 const OperationContext & context,
124 const CIMNamespaceName& nameSpace,
125 const CIMInstance& newInstance);
126
127 virtual void modifyInstance(
128 const OperationContext & context,
129 const CIMNamespaceName& nameSpace,
130 const CIMInstance& modifiedInstance,
131 Boolean includeQualifiers,
132 const CIMPropertyList& propertyList);
133
134 virtual void deleteInstance(
135 const OperationContext & context,
136 const CIMNamespaceName& nameSpace,
137 const CIMObjectPath& instanceName);
138
139 kumpf 1.1 virtual Array<CIMObject> execQuery(
140 const OperationContext & context,
141 const CIMNamespaceName& nameSpace,
142 const String& queryLanguage,
143 const String& query);
144
145 virtual Array<CIMObject> associators(
146 const OperationContext & context,
147 const CIMNamespaceName& nameSpace,
148 const CIMObjectPath& objectName,
149 const CIMName& assocClass,
150 const CIMName& resultClass,
151 const String& role,
152 const String& resultRole,
153 Boolean includeQualifiers,
154 Boolean includeClassOrigin,
155 const CIMPropertyList& propertyList);
156
157 virtual Array<CIMObjectPath> associatorNames(
158 const OperationContext & context,
159 const CIMNamespaceName& nameSpace,
160 kumpf 1.1 const CIMObjectPath& objectName,
161 const CIMName& assocClass,
162 const CIMName& resultClass,
163 const String& role,
164 const String& resultRole);
165
166 virtual Array<CIMObject> references(
167 const OperationContext & context,
168 const CIMNamespaceName& nameSpace,
169 const CIMObjectPath& objectName,
170 const CIMName& resultClass,
171 const String& role,
172 Boolean includeQualifiers,
173 Boolean includeClassOrigin,
174 const CIMPropertyList& propertyList);
175
176 virtual Array<CIMObjectPath> referenceNames(
177 const OperationContext & context,
178 const CIMNamespaceName& nameSpace,
179 const CIMObjectPath& objectName,
180 const CIMName& resultClass,
181 kumpf 1.1 const String& role);
182
183 // property operations
184 virtual CIMValue getProperty(
185 const OperationContext & context,
186 const CIMNamespaceName& nameSpace,
187 const CIMObjectPath& instanceName,
188 const CIMName& propertyName);
189
190 virtual void setProperty(
191 const OperationContext & context,
192 const CIMNamespaceName& nameSpace,
193 const CIMObjectPath& instanceName,
194 const CIMName& propertyName,
195 const CIMValue& newValue);
196
197 virtual CIMValue invokeMethod(
198 const OperationContext & context,
199 const CIMNamespaceName& nameSpace,
200 const CIMObjectPath& instanceName,
201 const CIMName& methodName,
202 kumpf 1.1 const Array<CIMParamValue>& inParameters,
203 Array<CIMParamValue>& outParameters);
204
205 virtual OperationContext getResponseContext();
206
207 #ifdef PEGASUS_OS_OS400
208 // This method has no meaning for CIMClient-based handles
209 virtual void setOS400ProfileHandle(const char* profileHandle) {}
210 #endif
211
212 private:
213 // Unimplemented
214 ClientCIMOMHandleRep(const ClientCIMOMHandleRep& rep);
215 // Unimplemented
216 ClientCIMOMHandleRep& operator=(const ClientCIMOMHandleRep &);
217
218 CIMClient* _client;
219 Mutex _clientMutex;
220 };
221
222 PEGASUS_NAMESPACE_END
|