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 //%/////////////////////////////////////////////////////////////////////////////
33
34 kumpf 1.1
35 #include <Pegasus/Common/OperationContext.h>
36 #include <Pegasus/Client/CIMClient.h>
37
38 #include "CIMOMHandleRep.h"
39
40 PEGASUS_NAMESPACE_BEGIN
41
42 /**
43 ClientCIMOMHandleRep is a CIMOMHandle implementation that communicates
44 with the CIM Server through the use of a CIMClient object. This
45 implementation is intended for use with Out-of-Process Providers, for
46 which communication with the CIM Server must be serialized over an
47 interprocess connection.
48 */
49 class ClientCIMOMHandleRep : public CIMOMHandleRep
50 {
51 public:
52 ClientCIMOMHandleRep();
53 virtual ~ClientCIMOMHandleRep();
54
55 kumpf 1.1 virtual CIMClass getClass(
56 const OperationContext & context,
57 const CIMNamespaceName& nameSpace,
58 const CIMName& className,
59 Boolean localOnly,
60 Boolean includeQualifiers,
61 Boolean includeClassOrigin,
62 const CIMPropertyList& propertyList);
63
64 virtual Array<CIMClass> enumerateClasses(
65 const OperationContext & context,
66 const CIMNamespaceName& nameSpace,
67 const CIMName& className,
68 Boolean deepInheritance,
69 Boolean localOnly,
70 Boolean includeQualifiers,
71 Boolean includeClassOrigin);
72
73 virtual Array<CIMName> enumerateClassNames(
74 const OperationContext & context,
75 const CIMNamespaceName& nameSpace,
76 kumpf 1.1 const CIMName& className,
77 Boolean deepInheritance);
78
79 virtual void createClass(
80 const OperationContext & context,
81 const CIMNamespaceName& nameSpace,
82 const CIMClass& newClass);
83
84 virtual void modifyClass(
85 const OperationContext & context,
86 const CIMNamespaceName& nameSpace,
87 const CIMClass& modifiedClass);
88
89 virtual void deleteClass(
90 const OperationContext & context,
91 const CIMNamespaceName& nameSpace,
92 const CIMName& className);
93
94 virtual CIMInstance getInstance(
95 const OperationContext & context,
96 const CIMNamespaceName& nameSpace,
97 kumpf 1.1 const CIMObjectPath& instanceName,
98 Boolean localOnly,
99 Boolean includeQualifiers,
100 Boolean includeClassOrigin,
101 const CIMPropertyList& propertyList);
102
103 virtual Array<CIMInstance> enumerateInstances(
104 const OperationContext & context,
105 const CIMNamespaceName& nameSpace,
106 const CIMName& className,
107 Boolean deepInheritance,
108 Boolean localOnly,
109 Boolean includeQualifiers,
110 Boolean includeClassOrigin,
111 const CIMPropertyList& propertyList);
112
113 virtual Array<CIMObjectPath> enumerateInstanceNames(
114 const OperationContext & context,
115 const CIMNamespaceName& nameSpace,
116 const CIMName& className);
117
118 kumpf 1.1 virtual CIMObjectPath createInstance(
119 const OperationContext & context,
120 const CIMNamespaceName& nameSpace,
121 const CIMInstance& newInstance);
122
123 virtual void modifyInstance(
124 const OperationContext & context,
125 const CIMNamespaceName& nameSpace,
126 const CIMInstance& modifiedInstance,
127 Boolean includeQualifiers,
128 const CIMPropertyList& propertyList);
129
130 virtual void deleteInstance(
131 const OperationContext & context,
132 const CIMNamespaceName& nameSpace,
133 const CIMObjectPath& instanceName);
134
135 virtual Array<CIMObject> execQuery(
136 const OperationContext & context,
137 const CIMNamespaceName& nameSpace,
138 const String& queryLanguage,
139 kumpf 1.1 const String& query);
140
141 virtual Array<CIMObject> associators(
142 const OperationContext & context,
143 const CIMNamespaceName& nameSpace,
144 const CIMObjectPath& objectName,
145 const CIMName& assocClass,
146 const CIMName& resultClass,
147 const String& role,
148 const String& resultRole,
149 Boolean includeQualifiers,
150 Boolean includeClassOrigin,
151 const CIMPropertyList& propertyList);
152
153 virtual Array<CIMObjectPath> associatorNames(
154 const OperationContext & context,
155 const CIMNamespaceName& nameSpace,
156 const CIMObjectPath& objectName,
157 const CIMName& assocClass,
158 const CIMName& resultClass,
159 const String& role,
160 kumpf 1.1 const String& resultRole);
161
162 virtual Array<CIMObject> references(
163 const OperationContext & context,
164 const CIMNamespaceName& nameSpace,
165 const CIMObjectPath& objectName,
166 const CIMName& resultClass,
167 const String& role,
168 Boolean includeQualifiers,
169 Boolean includeClassOrigin,
170 const CIMPropertyList& propertyList);
171
172 virtual Array<CIMObjectPath> referenceNames(
173 const OperationContext & context,
174 const CIMNamespaceName& nameSpace,
175 const CIMObjectPath& objectName,
176 const CIMName& resultClass,
177 const String& role);
178
179 // property operations
180 virtual CIMValue getProperty(
181 kumpf 1.1 const OperationContext & context,
182 const CIMNamespaceName& nameSpace,
183 const CIMObjectPath& instanceName,
184 const CIMName& propertyName);
185
186 virtual void setProperty(
187 const OperationContext & context,
188 const CIMNamespaceName& nameSpace,
189 const CIMObjectPath& instanceName,
190 const CIMName& propertyName,
191 const CIMValue& newValue);
192
193 virtual CIMValue invokeMethod(
194 const OperationContext & context,
195 const CIMNamespaceName& nameSpace,
196 const CIMObjectPath& instanceName,
197 const CIMName& methodName,
198 const Array<CIMParamValue>& inParameters,
199 Array<CIMParamValue>& outParameters);
200
201 virtual OperationContext getResponseContext();
202 kumpf 1.1
203 #ifdef PEGASUS_OS_OS400
204 // This method has no meaning for CIMClient-based handles
205 virtual void setOS400ProfileHandle(const char* profileHandle) {}
206 #endif
207
208 private:
209 // Unimplemented
210 ClientCIMOMHandleRep(const ClientCIMOMHandleRep& rep);
211 // Unimplemented
212 ClientCIMOMHandleRep& operator=(const ClientCIMOMHandleRep &);
213
214 CIMClient* _client;
215 Mutex _clientMutex;
216 };
217
218 PEGASUS_NAMESPACE_END
|